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<varek...@redhat.com>
Acked-By: Jan Safranek <jsafr...@redhat.com>

> ---
>
>   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
> Libcg-devel@lists.sourceforge.net
> 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
Libcg-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to