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


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
 
-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'"
+    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`
+$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

Reply via email to