On 04/06/2011 10:37 AM, Jan Safranek wrote:
> Two new tests:
> - Test cgsnapshot, cgconfigparser and lssubsys with hierarchies mounted
> several times.
> - Test all the above with *named* hierarchies mounted several times +
> also with named hierarchy with ordinary controllers.
>
> Signed-off-by: Jan Safranek<[email protected]>
Acked-by: Ivana Hutarova Varekova<[email protected]>
> ---
>
> configure.in | 1
> tests/tools/Makefile.am | 2 -
> tests/tools/multimount/Makefile.am | 3 +
> tests/tools/multimount/many_mp | 85 ++++++++++++++++++++++++++++++
> tests/tools/multimount/many_named | 101
> ++++++++++++++++++++++++++++++++++++
> 5 files changed, 191 insertions(+), 1 deletions(-)
> create mode 100644 tests/tools/multimount/Makefile.am
> create mode 100755 tests/tools/multimount/many_mp
> create mode 100755 tests/tools/multimount/many_named
>
> diff --git a/configure.in b/configure.in
> index 03b2731..d1f19a2 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -197,6 +197,7 @@ AC_CONFIG_FILES([Makefile
> tests/tools/Makefile
> tests/tools/cgconfigparser/Makefile
> tests/tools/cgclassify/Makefile
> + tests/tools/multimount/Makefile
> src/Makefile
> src/daemon/Makefile
> src/tools/Makefile
> diff --git a/tests/tools/Makefile.am b/tests/tools/Makefile.am
> index 4f2b1b0..45c1955 100644
> --- a/tests/tools/Makefile.am
> +++ b/tests/tools/Makefile.am
> @@ -1,2 +1,2 @@
> -SUBDIRS = cgconfigparser cgclassify
> +SUBDIRS = cgconfigparser cgclassify multimount
>
> diff --git a/tests/tools/multimount/Makefile.am
> b/tests/tools/multimount/Makefile.am
> new file mode 100644
> index 0000000..45fe043
> --- /dev/null
> +++ b/tests/tools/multimount/Makefile.am
> @@ -0,0 +1,3 @@
> +EXTRA_DIST = many_mp many_named
> +
> +TESTS = many_mp many_named
> diff --git a/tests/tools/multimount/many_mp b/tests/tools/multimount/many_mp
> new file mode 100755
> index 0000000..04659c1
> --- /dev/null
> +++ b/tests/tools/multimount/many_mp
> @@ -0,0 +1,85 @@
> +#!/bin/bash
> +# Test hierarchies mounted multiple times (one hierarchy mounted 99 times)
> +# - cgsnapshot
> +# - cgconfigparser
> +# - lssubsys
> +
> +. `dirname $0`/../testenv.sh
> +
> +# cgconfigparser cannot handle more than 100 mount points :-(
> +COUNT=99
> +
> +function check_config()
> +{
> + CONFIG=$1
> + # check basic sanity of generatet cgconfig.conf file
> + # - it has expected number of mount points
> + if [ `grep '='< $CONFIG | wc -l` -ne $(($COUNT*4)) ]; then
> + die "wrong number of mount points in $CONFIG"
> + fi
> +
> + # - it has mount section
> + grep "mount">/dev/null<$CONFIG \
> + || die "cgsnapshot failed, no mount section found in $CONFIG"
> +
> + # - it has 99 different mount points
> + for i in `seq $COUNT`; do
> + grep "cpuacct$i">/dev/null<$CONFIG \
> + || die "cgsnapshot failed, no cpuacct$i found in
> $CONFIG"
> + done
> +}
> +
> +for i in `seq $COUNT`; do
> + mkdir -p $TMP/cgroups/cpuacct$i 2>/dev/null
> + mount -t cgroup -o cpuacct,cpuset,memory,freezer cpuacct$i \
> + $TMP/cgroups/cpuacct$i \
> + || die "Mount $i failed"
> +done
> +
> +# check lssubsys
> +# plain lssubsys - only one line with 4 controllers is expected
> +$TOOLSDIR/lssubsys>$TMP/subsys1.out \
> + || die "plain lssubsys failed"
> +[ `wc -l<$TMP/subsys1.out` -eq 1 ] \
> + || die "unexpected output of plan lssubsys"
> +
> +# lssubsys -m - first mount point is returned
> +$TOOLSDIR/lssubsys -m>$TMP/subsys2.out \
> + || die "lssubsys -m failed"
> +[ `wc -l<$TMP/subsys2.out` -eq 1 ] \
> + || die "unexpected output of lssubsys -m"
> +grep<$TMP/subsys2.out cpuacct1>/dev/null \
> + || die "lssubsys -m does not show the first mount point"
> +
> +# lssubsys -M - all mount points are returned
> +$TOOLSDIR/lssubsys -M>$TMP/subsys3.out \
> + || die "lssubsys -M failed"
> +[ `wc -l<$TMP/subsys3.out` -eq $COUNT ] \
> + || die "unexpected output of lssubsys -M"
> +for i in `seq $COUNT`; do
> + grep<$TMP/subsys3.out cpuacct$i>/dev/null \
> + || die "lssubsys -m does not show cpuacct$i"
> +done
> +
> +# check cgsnapshot
> +$TOOLSDIR/cgsnapshot -b
> $CONFIGDIR/cgsnapshot_blacklist.conf>$TMP/snapshot.conf \
> + || die "cgsnapshot failed"
> +
> +check_config $TMP/snapshot.conf
> +
> +$TOOLSDIR/cgclear || die "cgclear 1 failed"
> +
> +# check cgconfigparser - try to parse the generated config
> +$TOOLSDIR/cgconfigparser -l $TMP/snapshot.conf \
> + || die "cgconfigparser failed to parse the snapshot"
> +
> +# and make its snapshot again
> +$TOOLSDIR/cgsnapshot -b
> $CONFIGDIR/cgsnapshot_blacklist.conf>$TMP/snapshot2.conf \
> + || die "cgsnapshot2 failed"
> +
> +check_config $TMP/snapshot2.conf
> +
> +$TOOLSDIR/cgclear
> +
> +cleanup
> +exit 0
> diff --git a/tests/tools/multimount/many_named
> b/tests/tools/multimount/many_named
> new file mode 100755
> index 0000000..9a72a88
> --- /dev/null
> +++ b/tests/tools/multimount/many_named
> @@ -0,0 +1,101 @@
> +#!/bin/bash
> +# Tests named hierarchies, mouted several times
> +# - cgsnapshot
> +# - cgconfigparser
> +# - lssubsys
> +
> +. `dirname $0`/../testenv.sh
> +
> +# 10 named hierarchies, each mounted 8 times
> +HIERARCHIES=10
> +COUNT=8
> +
> +function check_config()
> +{
> + # check basic sanity of the generated file
> + CONFIG=$1
> +
> + # it has expected nr. of mount points
> + if [ `grep '='<$CONFIG | wc -l` -ne $(($COUNT*$HIERARCHIES+3)) ];then
> + die "wrong number of mount points displayed in $CONFIG"
> + fi
> + # it has mount section
> + grep "mount">/dev/null<$CONFIG \
> + || die "cgsnapshot failed, no mount section found in $CONFIG"
> + # it has every hierarchy at least once
> + for i in `seq $HIERARCHIES`; do
> + grep "name=$i">/dev/null<$CONFIG \
> + || die "cgsnapshot failed, no name=$i found in $CONFIG"
> + done
> + # it has cpuacct,cpuset,name=cputest mount
> + grep "name=cputest">/dev/null<$CONFIG \
> + || die "cannot find name=cputest in $CONFIG"
> + grep "cpuacct">/dev/null<$CONFIG \
> + || die "cannot find cpuacct in $CONFIG"
> +}
> +
> +for i in `seq $HIERARCHIES`; do
> + for j in `seq $COUNT`; do
> + mkdir -p $TMP/cgroups/named$i-$j 2>/dev/null
> + mount -t cgroup -o none,name=$i named$i \
> + $TMP/cgroups/named$i-$j \
> + || die "Mount $i_$j failed"
> + done
> +done
> +
> +# add one named mount point with other controllers
> +mkdir -p $TMP/cgroups/cpu 2>/dev/null
> +mount -t cgroup -o cpuset,cpuacct,name=cputest test $TMP/cgroups/cpu \
> + || die "Mount cpu failed"
> +
> +# check lssubsys
> +# plain lssubsys - every hierarchy only once
> +$TOOLSDIR/lssubsys>$TMP/subsys1.out \
> + || die "plain lssubsys failed"
> +[ `wc -l<$TMP/subsys1.out` -eq $(( $HIERARCHIES+1 )) ] \
> + || die "unexpected output of plan lssubsys"
> +
> +# lssubsys -m - first mount point is returned
> +$TOOLSDIR/lssubsys -m>$TMP/subsys2.out \
> + || die "lssubsys -m failed"
> +[ `wc -l<$TMP/subsys2.out` -eq $(( $HIERARCHIES+1 )) ] \
> + || die "unexpected output of lssubsys -m"
> +grep<$TMP/subsys2.out cgroups/cpu>/dev/null \
> + || die "lssubsys -m does not show the first mount point for cputest"
> +for i in `seq $HIERARCHIES`; do
> + grep<$TMP/subsys2.out cgroups/named$i-1>/dev/null \
> + || die "lssubsys -m does not show cgroups/named$i-1"
> +done
> +
> +# lssubsys -M - all mount points are returned
> +$TOOLSDIR/lssubsys -M>$TMP/subsys3.out \
> + || die "lssubsys -M failed"
> +[ `wc -l<$TMP/subsys3.out` -eq $(( $COUNT*$HIERARCHIES+1)) ] \
> + || die "unexpected output of lssubsys -M"
> +for i in `seq $HIERARCHIES`; do
> + for j in `seq $COUNT`; do
> + grep<$TMP/subsys3.out cgroups/named$i-$j>/dev/null \
> + || die "lssubsys -m does not show cgroups/named$i-$j"
> + done
> +done
> +
> +$TOOLSDIR/cgsnapshot -b
> $CONFIGDIR/cgsnapshot_blacklist.conf>$TMP/snapshot.conf \
> + || die "cgsnapshot failed"
> +
> +check_config $TMP/snapshot.conf
> +
> +$TOOLSDIR/cgclear || die "cgclear 1 failed"
> +
> +# try to parse the config...
> +$TOOLSDIR/cgconfigparser -l $TMP/snapshot.conf \
> + || die "cgconfigparser failed to parse the snapshot"
> +# and make its snapshot again
> +$TOOLSDIR/cgsnapshot -b
> $CONFIGDIR/cgsnapshot_blacklist.conf>$TMP/snapshot2.conf \
> + || die "cgsnapshot2 failed"
> +
> +check_config $TMP/snapshot2.conf
> +
> +$TOOLSDIR/cgclear
> +
> +cleanup
> +exit 0
>
>
> ------------------------------------------------------------------------------
> Xperia(TM) PLAY
> It's a major breakthrough. An authentic gaming
> smartphone on the nation's most reliable network.
> And it wants your games.
> http://p.sf.net/sfu/verizon-sfdev
> _______________________________________________
> Libcg-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libcg-devel
------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve
application availability and disaster protection. Learn more about boosting
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel