From bcf7e149393ee41af3e092a58dba643c8c091c28 Mon Sep 17 00:00:00 2001 From: Ruediger Meier Date: Thu, 26 Mar 2015 14:20:29 +0100 Subject: logger: --stderr and --no-act turn "auto-errors" on Signed-off-by: Ruediger Meier --- misc-utils/logger.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/misc-utils/logger.c b/misc-utils/logger.c index 6316a76fc..8908dfcc1 100644 --- a/misc-utils/logger.c +++ b/misc-utils/logger.c @@ -914,10 +914,9 @@ int main(int argc, char **argv) ctl.unix_socket_errors = 1; break; case AF_UNIX_ERRORS_AUTO: + ctl.unix_socket_errors = ctl.noact || ctl.stderr_printout; #ifdef HAVE_LIBSYSTEMD - ctl.unix_socket_errors = sd_booted(); -#else - ctl.unix_socket_errors = 0; + ctl.unix_socket_errors |= !!sd_booted(); #endif break; default: -- cgit v1.2.3-55-g7522 From 582aabe2586cf3674874c1a62ce89c6f85ed32f6 Mon Sep 17 00:00:00 2001 From: Ruediger Meier Date: Thu, 9 Apr 2015 17:00:26 +0200 Subject: tests: simplify common logger options Signed-off-by: Ruediger Meier --- tests/ts/logger/errors | 32 ++++++++++++++------------------ tests/ts/logger/formats | 26 ++++++++++++++------------ 2 files changed, 28 insertions(+), 30 deletions(-) diff --git a/tests/ts/logger/errors b/tests/ts/logger/errors index c50b3e56a..debce7eab 100755 --- a/tests/ts/logger/errors +++ b/tests/ts/logger/errors @@ -30,45 +30,41 @@ export LOGGER_TEST_TIMEOFDAY="1234567890.123456" export LOGGER_TEST_HOSTNAME="test-hostname" export LOGGER_TEST_GETPID="98765" +function logger_fun { + $TS_HELPER_LOGGER -s --no-act "$@" >> "$TS_OUTPUT" 2>&1 + echo "ret: $?" >> "$TS_OUTPUT" +} + ts_init_subtest "kern_priority" -$TS_HELPER_LOGGER --no-act -s -t "prio" -p kern.emerg "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "prio" -p kern.emerg "message" ts_finalize_subtest ts_init_subtest "kern_priority_numeric" -$TS_HELPER_LOGGER --no-act -s -t "prio" -p 0 "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "prio" -p 0 "message" ts_finalize_subtest ts_init_subtest "invalid_prio" -$TS_HELPER_LOGGER --no-act -s -t "prio" -p 8 "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "prio" -p 8 "message" ts_finalize_subtest # should truncate ts_init_subtest "rfc5424_exceed_size" -$TS_HELPER_LOGGER --no-act -s -t "rfc5424_exceed_size" --rfc5424 --size 3 "abcd" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "rfc5424_exceed_size" --rfc5424 --size 3 "abcd" ts_finalize_subtest ts_init_subtest "id_with_space" -$TS_HELPER_LOGGER --no-act -s -t "id_with_space" --id="A B" "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" -$TS_HELPER_LOGGER --no-act -s -t "rfc5424_id_with_space" --rfc5424 --id="A B" "message" >> "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "id_with_space" --id="A B" "message" +logger_fun -t "rfc5424_id_with_space" --rfc5424 --id="A B" "message" ts_finalize_subtest # should not fail ts_init_subtest "tag_with_space" -$TS_HELPER_LOGGER --no-act -s -t "A B" "tag_with_space" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" -$TS_HELPER_LOGGER --no-act -s -t "A B" --rfc5424 "tag_with_space_rfc5424" >> "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "A B" "tag_with_space" +logger_fun -t "A B" --rfc5424 "tag_with_space_rfc5424" ts_finalize_subtest ts_init_subtest "rfc5424_msgid_with_space" -$TS_HELPER_LOGGER --no-act -s -t "rfc5424_msgid_with_space" --rfc5424 --msgid="A B" "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "rfc5424_msgid_with_space" --rfc5424 --msgid="A B" "message" ts_finalize_subtest ts_finalize diff --git a/tests/ts/logger/formats b/tests/ts/logger/formats index a647b8159..d0e9d5c47 100755 --- a/tests/ts/logger/formats +++ b/tests/ts/logger/formats @@ -30,33 +30,35 @@ export LOGGER_TEST_TIMEOFDAY="1234567890.123456" export LOGGER_TEST_HOSTNAME="test-hostname" export LOGGER_TEST_GETPID="98765" +function logger_fun { + $TS_HELPER_LOGGER -s --no-act "$@" >> "$TS_OUTPUT" 2>&1 + echo "ret: $?" >> "$TS_OUTPUT" +} + ts_init_subtest "rfc3164" -$TS_HELPER_LOGGER -s --no-act -t "rfc3164" --rfc3164 "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "rfc3164" --rfc3164 "message" ts_finalize_subtest ts_init_subtest "rfc5424_simple" -$TS_HELPER_LOGGER -s --no-act -t "rfc5424" --rfc5424 "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "rfc5424" --rfc5424 "message" ts_finalize_subtest + ts_init_subtest "rfc5424_notime" -$TS_HELPER_LOGGER -s --no-act -t "rfc5424" --rfc5424=notime "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "rfc5424" --rfc5424=notime "message" ts_finalize_subtest + ts_init_subtest "rfc5424_nohost" -$TS_HELPER_LOGGER -s --no-act -t "rfc5424" --rfc5424=nohost "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "rfc5424" --rfc5424=nohost "message" ts_finalize_subtest + ts_init_subtest "rfc5424_msgid" -$TS_HELPER_LOGGER -s --no-act -t "rfc5424" --rfc5424 --msgid "MSGID" "message" > "$TS_OUTPUT" 2>&1 -echo "ret: $?" >> "$TS_OUTPUT" +logger_fun -t "rfc5424" --rfc5424 --msgid "MSGID" "message" ts_finalize_subtest ts_init_subtest "priorities" for facility in auth authpriv cron daemon ftp lpr mail news syslog user uucp local{0..7}; do for level in emerg alert crit err warning notice info debug; do - $TS_HELPER_LOGGER -s --no-act -t "prio" -p "$facility.$level" "$facility.$level" >> "$TS_OUTPUT" 2>&1 - echo "ret: $?" >> "$TS_OUTPUT" + logger_fun -t "prio" -p "$facility.$level" "$facility.$level" done done ts_finalize_subtest -- cgit v1.2.3-55-g7522 From c9813f2cbe1f4c92f5ebecdd5a22d9ff94affe82 Mon Sep 17 00:00:00 2001 From: Ruediger Meier Date: Thu, 9 Apr 2015 17:12:34 +0200 Subject: tests: logger with socat device Signed-off-by: Ruediger Meier --- tests/functions.sh | 29 +++++++++++++++++++++++++++++ tests/ts/logger/errors | 10 +++++++++- tests/ts/logger/formats | 10 +++++++++- tests/ts/logger/options | 16 ++++++++++++++-- 4 files changed, 61 insertions(+), 4 deletions(-) diff --git a/tests/functions.sh b/tests/functions.sh index 55b92738c..44e087cdb 100644 --- a/tests/functions.sh +++ b/tests/functions.sh @@ -652,3 +652,32 @@ function ts_resolve_host { test -n "$tmp" || return 1 echo "$tmp" | sort -R | head -n 1 } + +# listen to unix socket (background socat) +function ts_init_socket_to_file { + local socket=$1 + local outfile=$2 + local pid="0" + + ts_check_prog "socat" + rm -f "$socket" "$outfile" + + socat -u UNIX-LISTEN:$socket,fork,max-children=1,backlog=128 \ + STDOUT > "$outfile" & + pid=$! + + # check for running background process + if [ "$pid" -le "0" ] || ! kill -s 0 "$pid"; then + ts_skip "unable to run socat" + fi + # wait for the socket listener + if ! socat -u /dev/null UNIX-CONNECT:$socket,retry=30,interval=0.1; then + kill -9 "$pid" + ts_skip "timeout waiting for socket" + fi + # check socket again + if ! socat -u /dev/null UNIX-CONNECT:$socket; then + kill -9 "$pid" + ts_skip "socket stopped listening" + fi +} diff --git a/tests/ts/logger/errors b/tests/ts/logger/errors index debce7eab..2dfb4109c 100755 --- a/tests/ts/logger/errors +++ b/tests/ts/logger/errors @@ -30,8 +30,13 @@ export LOGGER_TEST_TIMEOFDAY="1234567890.123456" export LOGGER_TEST_HOSTNAME="test-hostname" export LOGGER_TEST_GETPID="98765" +DEVLOG="${TS_OUTDIR}/${TS_TESTNAME}_devlog" +SOCKIN="${TS_OUTDIR}/${TS_TESTNAME}_socketin" +ts_init_socket_to_file $DEVLOG $SOCKIN +SOCAT_PID="$!" + function logger_fun { - $TS_HELPER_LOGGER -s --no-act "$@" >> "$TS_OUTPUT" 2>&1 + $TS_HELPER_LOGGER -u $DEVLOG -s --no-act "$@" >> "$TS_OUTPUT" 2>&1 echo "ret: $?" >> "$TS_OUTPUT" } @@ -67,4 +72,7 @@ ts_init_subtest "rfc5424_msgid_with_space" logger_fun -t "rfc5424_msgid_with_space" --rfc5424 --msgid="A B" "message" ts_finalize_subtest +sleep 1 +kill $SOCAT_PID + ts_finalize diff --git a/tests/ts/logger/formats b/tests/ts/logger/formats index d0e9d5c47..203c4d6f6 100755 --- a/tests/ts/logger/formats +++ b/tests/ts/logger/formats @@ -30,8 +30,13 @@ export LOGGER_TEST_TIMEOFDAY="1234567890.123456" export LOGGER_TEST_HOSTNAME="test-hostname" export LOGGER_TEST_GETPID="98765" +DEVLOG="${TS_OUTDIR}/${TS_TESTNAME}_devlog" +SOCKIN="${TS_OUTDIR}/${TS_TESTNAME}_socketin" +ts_init_socket_to_file $DEVLOG $SOCKIN +SOCAT_PID="$!" + function logger_fun { - $TS_HELPER_LOGGER -s --no-act "$@" >> "$TS_OUTPUT" 2>&1 + $TS_HELPER_LOGGER -u $DEVLOG -s --no-act "$@" >> "$TS_OUTPUT" 2>&1 echo "ret: $?" >> "$TS_OUTPUT" } @@ -63,4 +68,7 @@ for facility in auth authpriv cron daemon ftp lpr mail news syslog user uucp loc done ts_finalize_subtest +sleep 1 +kill $SOCAT_PID + ts_finalize diff --git a/tests/ts/logger/options b/tests/ts/logger/options index 6bd323686..c77c65565 100755 --- a/tests/ts/logger/options +++ b/tests/ts/logger/options @@ -50,14 +50,26 @@ export LOGGER_TEST_TIMEOFDAY="1234567890.123456" export LOGGER_TEST_HOSTNAME="test-hostname" export LOGGER_TEST_GETPID="98765" +DEVLOG="${TS_OUTDIR}/${TS_TESTNAME}_devlog" +SOCKIN="${TS_OUTDIR}/${TS_TESTNAME}_socketin" +ts_init_socket_to_file $DEVLOG $SOCKIN +SOCAT_PID="$!" + +function logger_fun { + $TS_HELPER_LOGGER -u $DEVLOG --stderr --no-act "$@" >> "$TS_OUTPUT" 2>&1 + echo "ret: $?" >> "$TS_OUTPUT" +} + for i in "${tests_array[@]}"; do name="${i%%:*}" options="${i##*:}" ts_init_subtest "$name" - $TS_HELPER_LOGGER --stderr --no-act -t "test_tag" $options > "$TS_OUTPUT" 2>&1 - echo "ret: $?" >> "$TS_OUTPUT" + logger_fun -t "test_tag" $options ts_finalize_subtest done +sleep 1 +kill $SOCAT_PID + ts_finalize -- cgit v1.2.3-55-g7522 From effd66e38e845414afbed19793189672f783c4b1 Mon Sep 17 00:00:00 2001 From: Ruediger Meier Date: Thu, 9 Apr 2015 20:14:50 +0200 Subject: tests: logger, validate written socket data Actually there should be no data written to the socket because we are always using --no-act. Signed-off-by: Ruediger Meier --- tests/expected/logger/errors-check_socket | 1 + tests/expected/logger/formats-check_socket | 1 + tests/expected/logger/options-check_socket | 1 + tests/ts/logger/errors | 5 +++++ tests/ts/logger/formats | 5 +++++ tests/ts/logger/options | 5 +++++ 6 files changed, 18 insertions(+) create mode 100644 tests/expected/logger/errors-check_socket create mode 100644 tests/expected/logger/formats-check_socket create mode 100644 tests/expected/logger/options-check_socket diff --git a/tests/expected/logger/errors-check_socket b/tests/expected/logger/errors-check_socket new file mode 100644 index 000000000..fa36c4e5b --- /dev/null +++ b/tests/expected/logger/errors-check_socket @@ -0,0 +1 @@ +Check written socket data of all subtests. diff --git a/tests/expected/logger/formats-check_socket b/tests/expected/logger/formats-check_socket new file mode 100644 index 000000000..fa36c4e5b --- /dev/null +++ b/tests/expected/logger/formats-check_socket @@ -0,0 +1 @@ +Check written socket data of all subtests. diff --git a/tests/expected/logger/options-check_socket b/tests/expected/logger/options-check_socket new file mode 100644 index 000000000..fa36c4e5b --- /dev/null +++ b/tests/expected/logger/options-check_socket @@ -0,0 +1 @@ +Check written socket data of all subtests. diff --git a/tests/ts/logger/errors b/tests/ts/logger/errors index 2dfb4109c..8df97c834 100755 --- a/tests/ts/logger/errors +++ b/tests/ts/logger/errors @@ -72,7 +72,12 @@ ts_init_subtest "rfc5424_msgid_with_space" logger_fun -t "rfc5424_msgid_with_space" --rfc5424 --msgid="A B" "message" ts_finalize_subtest +ts_init_subtest "check_socket" +ts_log "Check written socket data of all subtests." sleep 1 kill $SOCAT_PID +wait $SOCAT_PID &>/dev/null +cat "$SOCKIN" >> "$TS_OUTPUT" 2>&1 +ts_finalize_subtest ts_finalize diff --git a/tests/ts/logger/formats b/tests/ts/logger/formats index 203c4d6f6..5957feae2 100755 --- a/tests/ts/logger/formats +++ b/tests/ts/logger/formats @@ -68,7 +68,12 @@ for facility in auth authpriv cron daemon ftp lpr mail news syslog user uucp loc done ts_finalize_subtest +ts_init_subtest "check_socket" +ts_log "Check written socket data of all subtests." sleep 1 kill $SOCAT_PID +wait $SOCAT_PID &>/dev/null +cat "$SOCKIN" >> "$TS_OUTPUT" 2>&1 +ts_finalize_subtest ts_finalize diff --git a/tests/ts/logger/options b/tests/ts/logger/options index c77c65565..afcf5f859 100755 --- a/tests/ts/logger/options +++ b/tests/ts/logger/options @@ -69,7 +69,12 @@ for i in "${tests_array[@]}"; do ts_finalize_subtest done +ts_init_subtest "check_socket" +ts_log "Check written socket data of all subtests." sleep 1 kill $SOCAT_PID +wait $SOCAT_PID &>/dev/null +cat "$SOCKIN" >> "$TS_OUTPUT" 2>&1 +ts_finalize_subtest ts_finalize -- cgit v1.2.3-55-g7522 From 307c82f35de265f0ee7021b65c1b23f1e0dcdaad Mon Sep 17 00:00:00 2001 From: Ruediger Meier Date: Thu, 9 Apr 2015 20:14:51 +0200 Subject: tests: logger/errors does not use --no-act Signed-off-by: Ruediger Meier --- tests/expected/logger/errors-check_socket | 18 ++++++++++++++++++ tests/ts/logger/errors | 5 ++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/tests/expected/logger/errors-check_socket b/tests/expected/logger/errors-check_socket index fa36c4e5b..76a877f6a 100644 --- a/tests/expected/logger/errors-check_socket +++ b/tests/expected/logger/errors-check_socket @@ -1 +1,19 @@ Check written socket data of all subtests. +socket data, kern_priority: +<8>Feb 13 23:31:30 prio: message +socket data, kern_priority_numeric: +<8>Feb 13 23:31:30 prio: message +socket data, invalid_prio: + +socket data, rfc5424_exceed_size: +<13>1 2009-02-13T23:31:30.123456+00:00 test-hostname rfc5424_exceed_size - - [timeQuality tzKnown="1" isSynced="0"] abc +socket data, id_with_space: + +socket data, id_with_space: + +socket data, tag_with_space: +<13>Feb 13 23:31:30 A B: tag_with_space +socket data, tag_with_space: +<13>1 2009-02-13T23:31:30.123456+00:00 test-hostname A B - - [timeQuality tzKnown="1" isSynced="0"] tag_with_space_rfc5424 +socket data, rfc5424_msgid_with_space: + diff --git a/tests/ts/logger/errors b/tests/ts/logger/errors index 8df97c834..e0a02dcdc 100755 --- a/tests/ts/logger/errors +++ b/tests/ts/logger/errors @@ -36,8 +36,11 @@ ts_init_socket_to_file $DEVLOG $SOCKIN SOCAT_PID="$!" function logger_fun { - $TS_HELPER_LOGGER -u $DEVLOG -s --no-act "$@" >> "$TS_OUTPUT" 2>&1 + # logger without --no-act to write all data to the socket + echo "socket data, ${TS_SUBNAME}:" |socat -u - UNIX-CONNECT:$DEVLOG + $TS_HELPER_LOGGER -u $DEVLOG --stderr "$@" >> "$TS_OUTPUT" 2>&1 echo "ret: $?" >> "$TS_OUTPUT" + echo |socat -u - UNIX-CONNECT:$DEVLOG } ts_init_subtest "kern_priority" -- cgit v1.2.3-55-g7522 From 23719c0759ab7e7fce98181f43f7ec4dcf4017fa Mon Sep 17 00:00:00 2001 From: Ruediger Meier Date: Fri, 10 Apr 2015 08:28:26 +0200 Subject: tests: add subtests for invalid logger devive Note --journald should not complain about invalid sockets. Signed-off-by: Ruediger Meier --- tests/expected/logger/errors-check_socket | 2 ++ tests/expected/logger/errors-invalid_socket | 2 ++ tests/ts/logger/errors | 4 ++++ tests/ts/logger/journald | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 tests/expected/logger/errors-invalid_socket diff --git a/tests/expected/logger/errors-check_socket b/tests/expected/logger/errors-check_socket index 76a877f6a..7367dc069 100644 --- a/tests/expected/logger/errors-check_socket +++ b/tests/expected/logger/errors-check_socket @@ -17,3 +17,5 @@ socket data, tag_with_space: <13>1 2009-02-13T23:31:30.123456+00:00 test-hostname A B - - [timeQuality tzKnown="1" isSynced="0"] tag_with_space_rfc5424 socket data, rfc5424_msgid_with_space: +socket data, invalid_socket: + diff --git a/tests/expected/logger/errors-invalid_socket b/tests/expected/logger/errors-invalid_socket new file mode 100644 index 000000000..5720afac6 --- /dev/null +++ b/tests/expected/logger/errors-invalid_socket @@ -0,0 +1,2 @@ +test_logger: socket /bad/boy: No such file or directory +ret: 1 diff --git a/tests/ts/logger/errors b/tests/ts/logger/errors index e0a02dcdc..0b232ecd1 100755 --- a/tests/ts/logger/errors +++ b/tests/ts/logger/errors @@ -75,6 +75,10 @@ ts_init_subtest "rfc5424_msgid_with_space" logger_fun -t "rfc5424_msgid_with_space" --rfc5424 --msgid="A B" "message" ts_finalize_subtest +ts_init_subtest "invalid_socket" +logger_fun -u /bad/boy -t "invalid_socket" "message" +ts_finalize_subtest + ts_init_subtest "check_socket" ts_log "Check written socket data of all subtests." sleep 1 diff --git a/tests/ts/logger/journald b/tests/ts/logger/journald index 81296f78e..c10824c0e 100755 --- a/tests/ts/logger/journald +++ b/tests/ts/logger/journald @@ -30,6 +30,6 @@ if ! $TS_HELPER_LOGGER --help | grep -q journald; then fi printf "%s\n%s\n%s\n" MESSAGE_ID=b8f74e14bc714bfc8040a5106dc9376a MESSAGE="a b c 1 2 3" | -$TS_HELPER_LOGGER --no-act --journald --stderr > "$TS_OUTPUT" 2>&1 +$TS_HELPER_LOGGER -u /bad/boy --no-act --journald --stderr > "$TS_OUTPUT" 2>&1 echo "ret: $?" >> "$TS_OUTPUT" ts_finalize -- cgit v1.2.3-55-g7522 From 432439a4655d887b03629c7f3ce20ed334467cb4 Mon Sep 17 00:00:00 2001 From: Ruediger Meier Date: Mon, 13 Apr 2015 13:29:26 +0200 Subject: travis: install socat >= 1.7.2 Signed-off-by: Ruediger Meier --- .travis-functions.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis-functions.sh b/.travis-functions.sh index 86146b0cd..e35d8708c 100755 --- a/.travis-functions.sh +++ b/.travis-functions.sh @@ -86,6 +86,13 @@ function travis_install_script gtk-doc-tools \ ntp \ || return + + # install/upgrade custom stuff from non-official sources + sudo add-apt-repository -y ppa:malcscott/socat || return + sudo apt-get -qq update || return + sudo apt-get install -qq >/dev/null \ + socat \ + || return } function travis_before_script -- cgit v1.2.3-55-g7522