Re: [LTP] [PATCH] Add new testcases for cgroup

Shi Weihua
2009-08-27T00:06:45Z

Matt Helsley wrote:
> On Wed, Aug 26, 2009 at 08:04:53AM +0800, Shi Weihua wrote:
>> We has created some testcases for cgroup in the last year.
>> There are total 194 testcases that have been added. These testcases contain
>> the basis operation test, part functionality test and stress test of cgroup.
>>
>> How to run this test:
>> # runltp -f controllers
>>
>> Result:
>> Now, we start the test for cgroup...
>> cgroup_test_fj 1 TPASS : case1(function 1 1 1 1 1 2 3 2 1) PASS
>> cgroup_test_fj 1 TPASS : case2(function 1 2 1 1 1 2 3 2 1) PASS
>
> <snip>
>
>> cgroup_test_fj 1 TPASS : case93(function 12 1 1 8 1 2 3 2 1) PASS
>
> <snip>
>
>> diff -urpN ltp-full-20090731.orig/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh ltp-full-20090731.cg/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh
>> --- ltp-full-20090731.orig/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh 1969-12-31 19:00:00.000000000 -0500
>> +++ ltp-full-20090731.cg/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh 2009-08-23 10:15:08.000000000 -0400
>> @@ -0,0 +1,269 @@
>> +#! /bin/sh
>> +
>> +################################################################################
>> +## ##
>> +## Copyright (c) 2009 FUJITSU LIMITED ##
>> +## ##
>> +## This program is free software; you can redistribute it and#or modify ##
>> +## it under the terms of the GNU General Public License as published by ##
>> +## the Free Software Foundation; either version 2 of the License, or ##
>> +## (at your option) any later version. ##
>> +## ##
>> +## This program is distributed in the hope that it will be useful, but ##
>> +## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
>> +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
>> +## for more details. ##
>> +## ##
>> +## You should have received a copy of the GNU General Public License ##
>> +## along with this program; if not, write to the Free Software ##
>> +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ##
>> +## ##
>> +## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
>> +## ##
>> +################################################################################
>> +
>> +subsystem=$1
>> +remount_use=$2
>> +noprefix_use=$3
>> +release_agent_para=$4
>> +subgroup_exist=$5
>> +attach_operation=$6
>> +remove_operation=$7
>> +notify_on_release=$8
>> +release_agent_echo=$9
>> +
>> +subsystem_str="";
>> +remount_use_str="";
>> +noprefix_use_str="";
>> +release_agent_para_str="";
>> +notify_on_release_str="";
>> +release_agent_str="";
>> +
>> +expectted=1;
>> +
>> +# Create some processes and move them to cgroups
>> +pid=0;
>> +pid2=0;
>> +
>> +# not output debug info
>> +no_debug=0
>> +
>> +usage()
>> +{
>> + echo "usage of cgroup_fj_function.sh: "
>> + echo " ./cgroup_fj_function.sh -subsystem -remount_use -noprefix_use -release_agent_para"
>> + echo " -subgroup_exist -attach_operation -remove_operation"
>> + echo " -notify_on_release -release_agent_echo"
>> + echo " subsystem's usable number"
>> + echo " 1: debug"
>> + echo " 2: cpuset"
>> + echo " 3: ns"
>> + echo " 4: cpu"
>> + echo " 5: cpuacct"
>> + echo " 6: memory"
>> + echo " 7: all"
>> + echo " 8: (none)"
>> + echo " 9: debug,debug"
>> + echo " 10: (nonexistent subsystem), e.g. abc"
>> + echo " 11: freezer"
>> + echo " 11: devices"
>
> Looks like this should be 12.

Yes, here should be 12. Sorry for it.
The following small patch fixed it.

Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>
---
diff -urpN ltp-full-20090731.orig/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh ltp-full-20090731/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh
--- ltp-full-20090731.orig/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh 2009-08-27 04:09:41.000000000 -0400
+++ ltp-full-20090731/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh 2009-08-27 04:11:07.000000000 -0400
@@ -66,7 +66,7 @@ usage()
echo " 9: debug,debug"
echo " 10: (nonexistent subsystem), e.g. abc"
echo " 11: freezer"
- echo " 11: devices"
+ echo " 12: devices"
echo " remount_use's usable number"
echo " 1: do not use remount in "-o"'s parameter"
echo " 2: use it"

>
> Why not just use the subsystem names both to iterate over and to print
> out? Then it will be a little clearer what test has[n't] passed.
> e.g.:
>
> SUBSYSTEMS=( debug cpuset ns cpu cpuacct memory debug,debug freezer \
> devices nonexistent none all )
>
> Then when you're running the test cases or printing usage you could do:
>
> for SUBSYS in "${SUBSYSTEMS[@]}" ; do
> ...
> done
>
> Sadly I didn't have a close enough look at all of the code to tell if
> this is do-able. Is it? If you could similarly map the other numbers
> it may be easier to read the output and the code.

Thanks for your advice. Basically, I agree.
But using strings to instead of number will need one or more weeks, I will
do this improvement work base on August Release.

>
> Cheers,
> -Matt Helsley
>
>
>

--
Shi Weihua
79955-852