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
changelog: * variables renamed * added conf files to Makefile.am Signed-off-by: Ivana Hutarova Varekova <varek...@redhat.com> --- tests/tools/cgconfigparser/Makefile.am | 9 + .../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, 320 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..0866813 100644 --- a/tests/tools/cgconfigparser/Makefile.am +++ b/tests/tools/cgconfigparser/Makefile.am @@ -1,3 +1,8 @@ -EXTRA_DIST = cgconfigparser_simple +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..f733f57 --- /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..858bc14 --- /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', lssubsys_3='$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" +lssubsys_1=`$TOOLSDIR/lssubsys -m` +lscg1=`$TOOLSDIR/lscgroup | sort` +$TOOLSDIR/cgclear || die "example4 1st cgclear failed" + +# cgsnapshot sanity test +$TOOLSDIR/cgconfigparser -l /$TMP/temp.conf || die "example4 cgconfigparser failed" +lssubsys_2=`$TOOLSDIR/lssubsys -m` +lscg2=`$TOOLSDIR/lscgroup| sort` +$TOOLSDIR/cgclear || die "example4 2st cgclear failed" + +if [ "$lssubsys_1" != "$lssubsys_2" ]; then + echo "ERROR(example4): lssubsys_1='$lssubsys_1', lssubsys_2='$lssubsys_2'" + die "example4 failed" +fi + +if [ "$lscg1" != "$lscg2" ]; then + echo "ERROR(example4): lscg1='$lscg1', lscg2='$lscg2'" + 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 + +lssubsys_3=`$TOOLSDIR/lssubsys -m` +lscg3=`$TOOLSDIR/lscgroup | sort` +cgclear || die "example3 3rd cgclear failed" + + +if [ "$lssubsys_1" != "$lssubsys_3" ]; then + echo "ERROR(example4): lssubsys_1='$lssubsys_1', lssubsys_3='$lssubsys_3'" + die "example4 failed" +fi + +if [ "$lscg1" != "$lscg3" ]; then + echo "ERROR(example4): lscg1='$lscg1', lscg3='$lscg3'" + die "example4 failed" +fi + + +cleanup +exit 0 \ No newline at end of file ------------------------------------------------------------------------------ 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