--- /dev/null
+#!/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