I have a problem with logger.sh permissions I'm not sure whether the problem is 
not in my stgit package.
ok otherwise 

----- Original Message -----
> From: "Peter Schiffer" <pschi...@redhat.com>
> To: libcg-devel@lists.sourceforge.net
> Sent: Friday, March 8, 2013 5:10:17 PM
> Subject: [Libcg-devel] [PATCH 12/14] Added a test for the new logging
> 
> New simple tests, testing
>  - standard (stdout) callback
>  - custom application callback
>  - all loglevels
>  - automatic loglevel extraction from CGROUP_LOGLEVEL
> 
> Signed-off-by: Peter Schiffer <pschi...@redhat.com>
> ---
>  tests/Makefile.am |    7 ++-
>  tests/logger.c    |   53 +++++++++++++++++++++
>  tests/logger.sh   |  137
>  +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 194 insertions(+), 3 deletions(-)
>  create mode 100644 tests/logger.c
>  create mode 100755 tests/logger.sh
> 
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index 0b77b42..4d556aa 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -4,7 +4,7 @@ INCLUDES = -I$(top_srcdir)/include
>  LDADD = $(top_builddir)/src/.libs/libcgroup.la
>  
>  # compile the tests, but do not install them
> -noinst_PROGRAMS = libcgrouptest01 libcg_ba setuid walk_test
> read_stats walk_task get_controller get_mount_point proctest
> get_all_controller get_variable_names test_named_hierarchy get_procs
> wrapper_test
> +noinst_PROGRAMS = libcgrouptest01 libcg_ba setuid walk_test
> read_stats walk_task get_controller get_mount_point proctest
> get_all_controller get_variable_names test_named_hierarchy get_procs
> wrapper_test logger
>  
>  libcgrouptest01_SOURCES=libcgrouptest01.c test_functions.c
>  libcgrouptest.h
>  libcg_ba_SOURCES=libcg_ba.cpp
> @@ -20,7 +20,8 @@ get_variable_names_SOURCES=get_variable_names.c
>  test_named_hierarchy_SOURCES=test_named_hierarchy.c
>  get_procs_SOURCES=get_procs.c
>  wrapper_test_SOURCES=wrapper_test.c
> +logger_SOURCES=logger.c
>  
> -EXTRA_DIST = runlibcgrouptest.sh
> +EXTRA_DIST = runlibcgrouptest.sh logger.sh
>  
> -TESTS = wrapper_test runlibcgrouptest.sh
> +TESTS = wrapper_test runlibcgrouptest.sh logger.sh
> diff --git a/tests/logger.c b/tests/logger.c
> new file mode 100644
> index 0000000..b7f1b70
> --- /dev/null
> +++ b/tests/logger.c
> @@ -0,0 +1,53 @@
> +/*
> + * Copyright Red Hat Inc., 2012
> + *
> + * Author:   Jan Safranek <jsafr...@redhat.com>
> + *
> + * This program is free software; you can redistribute it and/or
> modify it
> + * under the terms of version 2.1 of the GNU Lesser General Public
> License
> + * as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it would be useful,
> but
> + * WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> + *
> + * Description: This file contains the test code for libcgroup
> logging.
> + */
> +
> +#include "config.h"
> +#include "libcgroup.h"
> +#include "../src/libcgroup-internal.h"
> +#include <string.h>
> +#include <stdlib.h>
> +
> +static void mylogger(void *userdata, int loglevel, const char *fmt,
> va_list ap)
> +{
> +     printf("custom: ");
> +     vprintf(fmt, ap);
> +}
> +
> +int main(int argc, char **argv)
> +{
> +     int custom = 0;
> +     int loglevel = -1;
> +     int i;
> +
> +     for (i = 1; i < argc; i++) {
> +             if (strcmp("custom", argv[i]) == 0)
> +                     custom = 1;
> +             else
> +                     loglevel = atoi(argv[i]);
> +     }
> +
> +     if (custom)
> +             cgroup_set_logger(mylogger, loglevel, NULL);
> +     else
> +             cgroup_set_default_logger(loglevel);
> +
> +     cgroup_dbg("DEBUG message\n");
> +     cgroup_info("INFO message\n");
> +     cgroup_warn("WARNING message\n");
> +     cgroup_err("ERROR message\n");
> +
> +     return 0;
> +}
> diff --git a/tests/logger.sh b/tests/logger.sh
> new file mode 100755
> index 0000000..6aef12f
> --- /dev/null
> +++ b/tests/logger.sh
> @@ -0,0 +1,137 @@
> +#!/bin/bash
> +# Test various log levels
> +
> +export LOGFILE=
> +export RET=0
> +unset CGROUP_LOGLEVEL
> +
> +function run_logger()
> +{
> +     LOGFILE=`mktemp`
> +     echo "Running CGROUP_LOGLEVEL=$CGROUP_LOGLEVEL logger $* >$LOGFILE"
> +     ./logger $* >$LOGFILE
> +}
> +
> +function assert_grep()
> +{
> +     if ! grep "$@" <$LOGFILE >/dev/null; then
> +             echo "Error: expecting $* in output"
> +             RET=1
> +     fi
> +}
> +
> +function assert_not_grep()
> +{
> +     if grep "$@" <$LOGFILE >/dev/null; then
> +             echo "Error: unexptected $* in output"
> +             RET=1
> +     fi
> +}
> +
> +# CGROUP_LOGLEVEL is case-insensitive
> +CGROUP_LOGLEVEL=DeBuG run_logger -1
> +assert_grep "^DEBUG message"
> +assert_grep "^INFO message"
> +assert_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# missing CGROUP_LOGLEVEL leads to WARNINGs only
> +run_logger -1
> +assert_not_grep "^DEBUG message"
> +assert_not_grep "^INFO message"
> +assert_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# wrong CGROUP_LOGLEVEL leads to WARNINGs only
> +CGROUP_LOGLEVEL=xyz run_logger -1
> +assert_not_grep "^DEBUG message"
> +assert_not_grep "^INFO message"
> +assert_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# numeric CGROUP_LOGLEVEL
> +CGROUP_LOGLEVEL=3 run_logger -1
> +assert_not_grep "^DEBUG message"
> +assert_grep "^INFO message"
> +assert_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# errors only CGROUP_LOGLEVEL
> +CGROUP_LOGLEVEL=ERROR run_logger -1
> +assert_not_grep "^DEBUG message"
> +assert_not_grep "^INFO message"
> +assert_not_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# no CGROUP_LOGLEVEL -> DEBUG
> +run_logger 4
> +assert_grep "^DEBUG message"
> +assert_grep "^INFO message"
> +assert_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# no CGROUP_LOGLEVEL -> INFO
> +run_logger 3
> +assert_not_grep "^DEBUG message"
> +assert_grep "^INFO message"
> +assert_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# no CGROUP_LOGLEVEL -> WARN
> +run_logger 2
> +assert_not_grep "^DEBUG message"
> +assert_not_grep "^INFO message"
> +assert_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# no CGROUP_LOGLEVEL -> ERROR
> +run_logger 1
> +assert_not_grep "^DEBUG message"
> +assert_not_grep "^INFO message"
> +assert_not_grep "^WARNING message"
> +assert_grep "^ERROR message"
> +rm $LOGFILE
> +
> +# no CGROUP_LOGLEVEL -> nothing
> +run_logger 0
> +assert_not_grep "^DEBUG message"
> +assert_not_grep "^INFO message"
> +assert_not_grep "^WARNING message"
> +assert_not_grep "^ERROR message"
> +rm $LOGFILE
> +
> +
> +# custom logger -> DEBUG
> +run_logger custom 4
> +assert_grep "^custom: DEBUG message"
> +assert_grep "^custom: INFO message"
> +assert_grep "^custom: WARNING message"
> +assert_grep "^custom: ERROR message"
> +rm $LOGFILE
> +
> +# custom logger -> INFO
> +run_logger custom 3
> +assert_not_grep "^custom: DEBUG message"
> +assert_grep "^custom: INFO message"
> +assert_grep "^custom: WARNING message"
> +assert_grep "^custom: ERROR message"
> +rm $LOGFILE
> +
> +# custom logger -> WARN
> +run_logger custom 2
> +assert_not_grep "^custom: DEBUG message"
> +assert_not_grep "^custom: INFO message"
> +assert_grep "^custom: WARNING message"
> +assert_grep "^custom: ERROR message"
> +rm $LOGFILE
> +
> +exit $RET
> +
> 
> 
> ------------------------------------------------------------------------------
> Symantec Endpoint Protection 12 positioned as A LEADER in The
> Forrester
> Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in
> the
> endpoint security space. For insight on selecting the right partner
> to
> tackle endpoint security challenges, access the full report.
> http://p.sf.net/sfu/symantec-dev2dev
> _______________________________________________
> Libcg-devel mailing list
> Libcg-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libcg-devel
> 

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Libcg-devel mailing list
Libcg-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to