On 03/07/2011 11:48 AM, Ivana Hutarova Varekova wrote:
> changelog:
> * test moved to separate subdirectory tools
>
> changelog v2:
> * set the directory in makefile
> * add CONFIGDIR variable
>
> This patch create general functions and variables (made by Jan Safranek):
> functions:
> die:
> # Print an error message and exit
> # Usage:
> # cgclear || die "cgclear failed"
>
> cleanup()
> # Clear everything that was created at loading this script, i.e.
> # remove the temporary directory
> # Usage:
> # cleanup
>
> prepare_config
> # Copies a file to $TMP and replaces all occurrences of TMP in the file with
> # value of $TMP. The function prints the name of the new file to its std.
> # output.
> #
> # Usage:
> # cgconfigparser -l `prepare_config config/sample.conf`
>
> variables:
> TMP
> # unique temporary dir
> TOOLSDIR
> # tools directory
> CONFIGDIR
> # config files directory
>
>
> Signed-off-by: Ivana Hutarova Varekova<[email protected]>
Acked-By: Jan Safranek <[email protected]>
> ---
>
> configure.in | 1 +
> tests/tools/testenv.sh.in | 74
> +++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 75 insertions(+), 0 deletions(-)
> create mode 100644 tests/tools/testenv.sh.in
>
> diff --git a/configure.in b/configure.in
> index 936f113..46e2701 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -177,6 +177,7 @@ fi
>
> AC_CONFIG_FILES([Makefile
> tests/Makefile
> + tests/tools/testenv.sh
> src/Makefile
> src/daemon/Makefile
> src/tools/Makefile
> diff --git a/tests/tools/testenv.sh.in b/tests/tools/testenv.sh.in
> new file mode 100644
> index 0000000..464a440
> --- /dev/null
> +++ b/tests/tools/testenv.sh.in
> @@ -0,0 +1,74 @@
> +#!/bin/bash
> +
> +# Simple test framework for libcgroup.
> +# Upon loading it does following:
> +# - sets $TMP, where all temporary files should be stored.
> +# - backs-up /etc/cgrules.conf in the $TMP
> +# (so it does not interfere with tests)
> +#
> +# Function cleanup() or die() must be called to destroy this temporary
> +# directory and restore previous cgrules.conf!
> +#
> +# Usage:
> +# . ./testenv.sh
> +#<do some testing>
> +# cleanup
> +# exit 0
> +
> +# Print an error message and exit
> +# Usage:
> +# cgclear || die "cgclear failed"
> +function die()
> +{
> + echo $*
> + cgclear
> + mv $TMP/cgrules-backup.conf /etc/cgrules.conf&>/dev/null
> + rm -rf $TMP
> + unset TMP
> + exit 1
> +}
> +
> +# Clear everything that was created at loading this script, i.e.
> +# remove the temporary directory
> +# In addition, check that nothing remained mounted.
> +# Usage:
> +# cleanup
> +function cleanup()
> +{
> + RET=0
> + grep -v systemd</proc/mounts>$TMP/mounts
> + if grep "^cgroup" $TMP/mounts&>/dev/null; then
> + echo "Error: cleanup has found mounted cgroup:"
> + grep cgroup /proc/mounts
> + RET=1
> + cgclear
> + fi
> + mv $TMP/cgrules-backup.conf /etc/cgrules.conf&>/dev/null
> + rm -rf $TMP
> + unset TMP
> + [ -z $RET ] || exit $RET
> +}
> +
> +# Copies a file to $TMP and replaces all occurrences of TMP in the file with
> +# value of $TMP. The function prints the name of the new file to its std.
> +# output.
> +# Usage:
> +# cgconfigparser -l `prepare_config config/sample.conf`
> +function prepare_config()
> +{
> + INPUT=$1
> + OUTPUT=$TMP/`basename $INPUT`
> + # echo -n "m4_changequote()" | m4 -P -D "TMP=$TMP" - $FILE>$OUTPUT
> + sed -e "s!\bTMP\b!$TMP!g"<$INPUT>$OUTPUT || (
> + echo "Error: prepare config failed!">&2; exit 1
> + )
> + echo $OUTPUT
> +}
> +
> +export TMP=`mktemp --tmpdir -d libcgroup-tmp-XXXXXXX`
> +# store the rules on safe place, we don't want them to mess up the tests
> +mv /etc/cgrules.conf $TMP/cgrules-backup.conf&>/dev/null
> +# tools directory
> +export TOOLSDIR="@abs_top_srcdir@/libtool --mode=execute
> @abs_top_srcdir@/src/tools/"
> +# config files directory
> +export CONFIGDIR="@abs_top_srcdir@/samples"
>
>
> ------------------------------------------------------------------------------
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libcg-devel
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel