From eae9482daf969c88afd9bb133cc7b2748642ea6d Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Tue, 27 Sep 2011 08:50:09 +0200 Subject: [PATCH] Added cgconfigparser test with fperm and dperm config options Signed-off-by: Jan Safranek --- tests/tools/cgconfigparser/Makefile.am | 5 ++- .../permissions.conf | 42 +++++++++++++++++++ tests/tools/cgconfigparser/permissions | 38 +++++++++++++++++ 3 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 tests/tools/cgconfigparser/cgconfigparser_conf_files/permissions.conf create mode 100755 tests/tools/cgconfigparser/permissions diff --git a/tests/tools/cgconfigparser/Makefile.am b/tests/tools/cgconfigparser/Makefile.am index 08668136..1bf0ef88 100644 --- a/tests/tools/cgconfigparser/Makefile.am +++ b/tests/tools/cgconfigparser/Makefile.am @@ -3,6 +3,7 @@ EXTRA_DIST = cgconfigparser_simple \ 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 + cgconfigparser_conf_files/cgconfig.conf.5.ex4 \ + cgconfigparser_conf_files/permissions.conf -TESTS = cgconfigparser_simple cgconfigparser_conf_files_tests +TESTS = cgconfigparser_simple cgconfigparser_conf_files_tests permissions diff --git a/tests/tools/cgconfigparser/cgconfigparser_conf_files/permissions.conf b/tests/tools/cgconfigparser/cgconfigparser_conf_files/permissions.conf new file mode 100644 index 00000000..e61f4e17 --- /dev/null +++ b/tests/tools/cgconfigparser/cgconfigparser_conf_files/permissions.conf @@ -0,0 +1,42 @@ + mount { + cpu = /TMP/cgroups/cpu; + cpuacct = /TMP/cgroups/cpu; + } + + group daemons/www { + perm { + task { + uid = root; + gid = nobody; + fperm = 750; + } + admin { + uid = root; + gid = root; + dperm = 770; + fperm = 777; + } + } + cpu { + cpu.shares = "1000"; + } + } + + group daemons/ftp { + perm { + task { + uid = root; + gid = nobody; + fperm = 274; + } + admin { + uid = root; + gid = root; + dperm = 742; + fperm = 427; + } + } + cpu { + cpu.shares = "500"; + } + } diff --git a/tests/tools/cgconfigparser/permissions b/tests/tools/cgconfigparser/permissions new file mode 100755 index 00000000..2caba3ff --- /dev/null +++ b/tests/tools/cgconfigparser/permissions @@ -0,0 +1,38 @@ +#!/bin/bash +# this script tests fperm and dperm configuration options + + +. `dirname $0`/../testenv.sh + +CONFDIR=$TESTDIR/tools/cgconfigparser/cgconfigparser_conf_files + +# all mount points are in /$TMP/cgroups +mkdir /$TMP/cgroups/ 2>/dev/null +$TOOLSDIR/cgconfigparser -l `prepare_config $CONFDIR/permissions.conf` || \ + die "cgconfigparser -l $CONFDIR/permissions.conf failed" + +# permissions test +function check_perm() +{ + STEP=$1 + FILENAME=$2 + EXPECTED=$3 + REAL=`stat -c "%a" $FILENAME` + if [ "$EXPECTED" != "$REAL" ]; then + die "$STEP: Wrong permissions of $FILENAME,"\ + " expected $EXPECTED, actual $REAL" + fi +} + +check_perm "STEP1" "/$TMP/cgroups/cpu/daemons/www" 770 +check_perm "STEP1" "/$TMP/cgroups/cpu/daemons/www/cpu.shares" 666 +check_perm "STEP1" "/$TMP/cgroups/cpu/daemons/www/tasks" 640 + +check_perm "STEP1" "/$TMP/cgroups/cpu/daemons/ftp" 742 +check_perm "STEP1" "/$TMP/cgroups/cpu/daemons/ftp/cpu.shares" 426 +check_perm "STEP1" "/$TMP/cgroups/cpu/daemons/ftp/tasks" 264 + +$TOOLSDIR/cgclear || die "cgclear failed" + +cleanup +exit 0 -- 2.47.2