On 03/08/2011 02:27 PM, Ivana Hutarova Varekova wrote: > This patch adds new test for cgconfig0parser tool > > This script tests the examples 1-4 from cgconfig.conf man pages - for each > one tests whether the configuration which is created using described > configuration file is identical with the example described below
The tests are very well done, unfortunately the style of the last one is not so good as the rest, would you mind some renaming? See below for details. > > > Signed-off-by: Ivana Hutarova Varekova <varek...@redhat.com> > --- > > tests/tools/cgconfigparser/Makefile.am | 4 > .../cgconfigparser_conf_files/cgconfig.conf.5.ex1 | 5 > .../cgconfigparser_conf_files/cgconfig.conf.5.ex2 | 36 +++ > .../cgconfigparser_conf_files/cgconfig.conf.5.ex3 | 11 + > .../cgconfigparser_conf_files/cgconfig.conf.5.ex4 | 21 ++ > .../cgconfigparser/cgconfigparser_conf_files_tests | 240 > ++++++++++++++++++++ > 6 files changed, 315 insertions(+), 2 deletions(-) > create mode 100644 > tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex1 > create mode 100644 > tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex2 > create mode 100644 > tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex3 > create mode 100644 > tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex4 > create mode 100755 tests/tools/cgconfigparser/cgconfigparser_conf_files_tests > > diff --git a/tests/tools/cgconfigparser/Makefile.am > b/tests/tools/cgconfigparser/Makefile.am > index cbb4112..6f18a89 100644 > --- a/tests/tools/cgconfigparser/Makefile.am > +++ b/tests/tools/cgconfigparser/Makefile.am > @@ -1,3 +1,3 @@ > -EXTRA_DIST = cgconfigparser_simple > +EXTRA_DIST = cgconfigparser_simple cgconfigparser_conf_files_tests The config files should be in EXTRA_DIST as well, i.e. EXTRA_DIST = cgconfigparser_simple \ cgconfigparser_conf_files_tests \ cgconfigparser_conf_files/cgconfig.conf.5.ex1 \ cgconfigparser_conf_files/cgconfig.conf.5.ex2 \ cgconfigparser_conf_files/cgconfig.conf.5.ex3 \ cgconfigparser_conf_files/cgconfig.conf.5.ex4 > -TESTS = cgconfigparser_simple > +TESTS = cgconfigparser_simple cgconfigparser_conf_files_tests > diff --git > a/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex1 > b/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex1 > new file mode 100644 > index 0000000..b8bb9f1 > --- /dev/null > +++ b/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex1 > @@ -0,0 +1,5 @@ > + mount { > + cpu = /TMP/cgroups/cpu; > + cpuacct = /TMP/cgroups/cpu; > + } > + > diff --git > a/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex2 > b/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex2 > new file mode 100644 > index 0000000..182290c > --- /dev/null > +++ b/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex2 > @@ -0,0 +1,36 @@ > + mount { > + cpu = /TMP/cgroups/cpu; > + cpuacct = /TMP/cgroups/cpu; > + } > + > + group daemons/www { > + perm { > + task { > + uid = root; > + gid = nobody; > + } > + admin { > + uid = root; > + gid = root; > + } > + } > + cpu { > + cpu.shares = "1000"; > + } > + } > + > + group daemons/ftp { > + perm { > + task { > + uid = root; > + gid = nobody; > + } > + admin { > + uid = root; > + gid = root; > + } > + } > + cpu { > + cpu.shares = "500"; > + } > + } > diff --git > a/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex3 > b/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex3 > new file mode 100644 > index 0000000..4e343e5 > --- /dev/null > +++ b/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex3 > @@ -0,0 +1,11 @@ > + mount { > + cpu = /TMP/cgroups/cpu; > + cpuacct = /TMP/cgroups/cpuacct; > + } > + > + group daemons { > + cpuacct{ > + } > + cpu { > + } > + } > > > diff --git > a/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex4 > b/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex4 > new file mode 100644 > index 0000000..16eb5f4 > --- /dev/null > +++ b/tests/tools/cgconfigparser/cgconfigparser_conf_files/cgconfig.conf.5.ex4 > @@ -0,0 +1,21 @@ > + mount { > + cpu = /TMP/cgroups/cpu; > + cpuacct = /TMP/cgroups/cpuacct; > + } > + > + group daemons { > + cpuacct{ > + } > + } > + > + group daemons/www { > + cpu { > + cpu.shares = "1000"; > + } > + } > + > + group daemons/ftp { > + cpu { > + cpu.shares = "500"; > + } > + } > diff --git a/tests/tools/cgconfigparser/cgconfigparser_conf_files_tests > b/tests/tools/cgconfigparser/cgconfigparser_conf_files_tests > new file mode 100755 > index 0000000..b9e2d95 > --- /dev/null > +++ b/tests/tools/cgconfigparser/cgconfigparser_conf_files_tests > @@ -0,0 +1,240 @@ > +#!/bin/bash > +# this script tests the examples 1-4 from cgconfig.conf man pages > +# - for each one tests whether the configuration which is created using > described configuration > +# file is identical with the example described below > +# TODO: Example 5 is missing now > + > + > +. `dirname $0`/../testenv.sh > + > +CONFDIR=$TESTDIR/tools/cgconfigparser/cgconfigparser_conf_files > + > +# all mount points are in /$TMP/cgroups > +mkdir /$TMP/cgroups/ 2>/dev/null > +#----------------------------------------------------------------------------- > +# EXAMPLE 1 > +#----------------------------------------------------------------------------- > +$TOOLSDIR/cgconfigparser -l `prepare_config $CONFDIR/cgconfig.conf.5.ex1` || > \ > + die "cgconfigparser -l $CONFDIR/cgconfig.conf.5.ex1 failed" > + > +$TOOLSDIR/cgsnapshot -b $CONFIGDIR/cgsnapshot_blacklist.conf -s \ > + >/$TMP/temp.conf || die "example1 cgsnapshot failed" > + > +lssubsys_1=`$TOOLSDIR/lssubsys -m` > + > +$TOOLSDIR/cgclear || \ > + die "example1 1st cgclear failed" > + > +# cgsnapshot sanity test > +$TOOLSDIR/cgconfigparser -l /$TMP/temp.conf || \ > + die "example1 cgconfigparser failed" > + > +lssubsys_2=`$TOOLSDIR/lssubsys -m` > + > +$TOOLSDIR/cgclear || \ > + die "example1 2st cgclear failed" > + > +if [ "$lssubsys_1" != "$lssubsys_2" ]; then > + echo "ERROR(example1): lssubsys_1='$lssubsys_1', > lssubsys_2='$lssubsys_2'" > + die "example1 failed" > +fi > + > +# cgconfigparser test > +mkdir /$TMP/cgroups/cpu 2>/dev/null > +mount -t cgroup -o cpu,cpuacct cpu $TMP/cgroups/cpu || die "example1 Mount > failed" > +lssubsys_3=`lssubsys -m` > +$TOOLSDIR/cgclear || die "example1 3rd cgclear failed" > + > +if [ "$lssubsys_1" != "$lssubsys_3" ]; then > + echo "ERROR(example1): lssubsys_1='$lssubsys_1', > lssubsys_3='$lssubsys_3'" > + die "example1 failed" > +fi > + > +#----------------------------------------------------------------------------- > +# EXAMPLE 2 > +#----------------------------------------------------------------------------- > +$TOOLSDIR/cgconfigparser -l `prepare_config $CONFDIR/cgconfig.conf.5.ex2` || > \ > + die "cgconfigparser -l $CONFDIR/cgconfig.conf.5.ex2 failed" > + > +val1=`$TOOLSDIR/cgget -nv -r cpu.shares daemons/ftp`; > +val2=`$TOOLSDIR/cgget -nv -r cpu.shares daemons/www`; > + > + > +if [ $val1 -ne 500 ]; then > + echo "ERROR(example2): bogus variable setting daemons/ftp/cpu.shares > $val1 "\ > + "(should be 500)" > + die "example2 failed" > +fi > + > +if [ $val2 -ne 1000 ]; then > + echo "ERROR(example2): bogus variable setting daemons/www/cpu.shares > $val2 "\ > + "(should be 1000)" > + die "example2 failed" > +fi > + > +$TOOLSDIR/cgsnapshot -b $CONFIGDIR/cgsnapshot_blacklist.conf -s >\ > + /$TMP/temp.conf || die "example2 cgsnapshot failed" > + > +lssubsys_1=`$TOOLSDIR/lssubsys -m` > +$TOOLSDIR/cgclear || die "example2 1st cgclear failed" > + > + > +# cgsnapshot sanity test > +$TOOLSDIR/cgconfigparser -l /$TMP/temp.conf || \ > + die "example2 cgconfigparser of cgsnapshot file failed" > + > +lssubsys_2=`$TOOLSDIR/lssubsys -m` > +val1=`$TOOLSDIR/cgget -nv -r cpu.shares daemons/ftp`; > +val2=`$TOOLSDIR/cgget -nv -r cpu.shares daemons/www`; > +$TOOLSDIR/cgclear || die "example2 2st cgclear failed" > + > +if [ "$lssubsys_1" != "$lssubsys_2" ]; then > + echo "ERROR(example2): lssubsys_1='$lssubsys_1', > lssubsys_2='$lssubsys_2'" > + die "example2 failed" > +fi > + > + > +if [ $val1 -ne 500 ]; then > + echo "ERROR(example2): bogus variable setting daemons/ftp/cpu.shares > $val1 "\ > + "(should be 500)" > + die "example2 failed" > +fi > + > +if [ $val2 -ne 1000 ]; then > + echo "ERROR(example2): bogus variable setting daemons/www/cpu.shares > $val2 "\ > + "(should be 1000)" > + die "example2 failed" > +fi > + > +# cgconfigparser test > +mkdir /$TMP/cgroups/cpu 2>/dev/null > +mount -t cgroup -o cpu,cpuacct cpu /$TMP/cgroups/cpu || > + die "example2 mount failed" > +mkdir /$TMP/cgroups/cpu/daemons 2>/dev/null > + > +mkdir /$TMP/cgroups/cpu/daemons/www 2>/dev/null > +echo 1000 > /$TMP/cgroups/cpu/daemons/www/cpu.shares || > + die "example2 var.setting failed" > + > +mkdir /$TMP/cgroups/cpu/daemons/ftp 2>/dev/null > +echo 500 > /$TMP/cgroups/cpu/daemons/ftp/cpu.shares || > + die "example2 var.setting failed" > + > +lssubsys_3=`$TOOLSDIR/lssubsys -m` > +$TOOLSDIR/cgclear || die "example2 3rd cgclear failed" > + > + > +if [ "$lssubsys_1" != "$lssubsys_3" ]; then > + echo "ERROR(example1): lssubsys_1='$lssubsys_1', lssubsys_3='lssubsys_3'" > + die "example2 failed" > +fi > + > +#----------------------------------------------------------------------------- > +# EXAMPLE 3 > +#----------------------------------------------------------------------------- > +$TOOLSDIR/cgconfigparser -l `prepare_config $CONFDIR/cgconfig.conf.5.ex3` || > \ > + die "cgconfigparser -l $CONFDIR/cgconfig.conf.5.ex3 failed" > + > +$TOOLSDIR/cgsnapshot -b $CONFIGDIR/cgsnapshot_blacklist.conf \ > + -s >/$TMP/temp.conf || die "example3 cgsnapshot failed" > +lssubsys_1=`$TOOLSDIR/lssubsys -m` > +lscg1=`$TOOLSDIR/lscgroup` > +$TOOLSDIR/cgclear || die "example3 1st cgclear failed" > + > +# cgsnapshot sanity test > +$TOOLSDIR/cgconfigparser -l /$TMP/temp.conf || die "example3 cgconfigparser > failed" > +lssubsys_2=`$TOOLSDIR/lssubsys -m` > +lscg2=`$TOOLSDIR/lscgroup` > +$TOOLSDIR/cgclear || die "example3 2st cgclear failed" > + > +if [ "$lssubsys_1" != "$lssubsys_2" ]; then > + echo "ERROR(example3): lssubsys_1='$lssubsys_1', lssubsys_='$lssubsys_2'" > + die "example3 failed" > +fi > + > + > +if [ "$lscg1" != "$lscg2" ]; then > + echo "ERROR(example3): lscg1='$lscg1', lscg2='$lscg2'" > + die "example3 failed" > +fi > + > +# cgconfigparser test > +mkdir /$TMP/cgroups/cpu 2>/dev/null > +mkdir /$TMP/cgroups/cpuacct 2>/dev/null > +mount -t cgroup -o cpu cpu /$TMP/cgroups/cpu || die "example3 Mount1 failed" > +mount -t cgroup -o cpuacct cpuacct /$TMP/cgroups/cpuacct || die "example3 > Mount2 failed" > + > +mkdir /$TMP/cgroups/cpu/daemons 2>/dev/null > +mkdir /$TMP/cgroups/cpuacct/daemons 2>/dev/null > + > +lssubsys_3=`$TOOLSDIR/lssubsys -m` > +lscg3=`$TOOLSDIR/lscgroup` > +$TOOLSDIR/cgclear || die "example3 3rd cgclear failed" > + > +if [ "$lssubsys_1" != "$lssubsys_3" ]; then > + echo "ERROR(example3): lssubsys_1='$lssubsys_1', pom3='$lssubsys_3'" s/pom3/lssubsys_3 > + die "example3 failed" > +fi > + > +if [ "$lscg1" != "$lscg3" ]; then > + echo "ERROR(example3): lscg1='$lscg1', lscg3='$lscg3'" > + die "example3 failed" > +fi > + > +#----------------------------------------------------------------------------- > +# EXAMPLE 4 > +#----------------------------------------------------------------------------- > +$TOOLSDIR/cgconfigparser -l `prepare_config $CONFDIR/cgconfig.conf.5.ex4` || > \ > + die "cgconfigparser -l $CONFDIR/cgconfig.conf.5.ex4 failed" > + > +$TOOLSDIR/cgsnapshot -b $CONFIGDIR/cgsnapshot_blacklist.conf -s \ > + >/$TMP/temp.conf || die "example4 cgsnapshot failed" > +pom1=`$TOOLSDIR/lssubsys -m` > +pomcg1=`$TOOLSDIR/lscgroup | sort` Ehm, no 'pom1' please (for foreigners, 'pom' means in Czech something like 'aux' (auxiliary)). You have used lssubsys_1 in all three tests above, why inventing something new? > +$TOOLSDIR/cgclear || die "example4 1st cgclear failed" > + > +# cgsnapshot sanity test > +$TOOLSDIR/cgconfigparser -l /$TMP/temp.conf || die "example4 cgconfigparser > failed" > +pom2=`$TOOLSDIR/lssubsys -m` > +pomcg2=`$TOOLSDIR/lscgroup| sort` > +$TOOLSDIR/cgclear || die "example4 2st cgclear failed" > + > +if [ "$pom1" != "$pom2" ]; then > + echo "ERROR(example4): pom1='$pom1', pom2='$pom2'" > + die "example4 failed" > +fi > + > +if [ "$pomcg1" != "$pomcg2" ]; then > + echo "ERROR(example4): pomcg1='$pomcg1', pomcg2='$pomcg2'" > + die "example4 failed" > +fi > + > +# cgconfigparser test > +mkdir /$TMP/cgroups/cpu 2>/dev/null > +mkdir /$TMP/cgroups/cpuacct 2>/dev/null > +mount -t cgroup -o cpu cpu /$TMP/cgroups/cpu || die "example4 Mount1 failed" > +mount -t cgroup -o cpuacct cpuacct /$TMP/cgroups/cpuacct || die "example4 > Mount2 failed" > + > +mkdir /$TMP/cgroups/cpuacct/daemons 2>/dev/null > +mkdir /$TMP/cgroups/cpu/daemons 2>/dev/null > +mkdir /$TMP/cgroups/cpu/daemons/www 2>/dev/null > +mkdir /$TMP/cgroups/cpu/daemons/ftp 2>/dev/null > + > +pom3=`$TOOLSDIR/lssubsys -m` > +pomcg3=`$TOOLSDIR/lscgroup | sort` > +cgclear || die "example3 3rd cgclear failed" > + > + > +if [ "$pom1" != "$pom3" ]; then > + echo "ERROR(example4): pom1='$pom1', pom3='$pom3'" > + die "example4 failed" > +fi > + > +if [ "$pomcg1" != "$pomcg3" ]; then > + echo "ERROR(example4): pomcg1='$pomcg1', pomcg3='$pomcg3'" > + die "example4 failed" > +fi > + > + > +cleanup > +exit 0 > \ No newline at end of file > > > ------------------------------------------------------------------------------ > What You Don't Know About Data Connectivity CAN Hurt You > This paper provides an overview of data connectivity, details > its effect on application quality, and explores various alternative > solutions. http://p.sf.net/sfu/progress-d2d > _______________________________________________ > Libcg-devel mailing list > Libcg-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/libcg-devel > ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel