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

Reply via email to