I can't tell what the problem is, logger.sh is created with 755 mode in
the patch:
create mode 100755 tests/logger.sh

peter

On 03/14/2013 12:26 PM, Ivana Varekova wrote:
> 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