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