diff options
Diffstat (limited to 'tests/ts/logger/errors')
-rwxr-xr-x | tests/ts/logger/errors | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/tests/ts/logger/errors b/tests/ts/logger/errors new file mode 100755 index 0000000..33c1057 --- /dev/null +++ b/tests/ts/logger/errors @@ -0,0 +1,114 @@ +#!/bin/bash + +# +# Copyright (C) 2015 Sami Kerola <kerolasa@iki.fi> +# +# This file is part of util-linux. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# + +TS_TOPDIR="${0%/*}/../.." +TS_DESC="errors" + +. $TS_TOPDIR/functions.sh + +ts_init "$*" + +ts_check_test_command "$TS_HELPER_LOGGER" + +export TZ="GMT" +export LOGGER_TEST_TIMEOFDAY="1234567890.123456" +export LOGGER_TEST_HOSTNAME="test-hostname" +export LOGGER_TEST_GETPID="98765" + +DEVLOG="$(mktemp "/tmp/ultest-$TS_COMPONENT-$TS_TESTNAME-XXXXXX")" \ + || ts_die "mktemp failed" +SOCKIN="${TS_OUTDIR}/${TS_TESTNAME}_socketin" +ts_init_socket_to_file $DEVLOG $SOCKIN +SOCAT_PID="$!" + +function logger_fun { + # 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 +} + +function logger_printf { + # logger without --no-act to write all data to the socket + local fmt="$1" + shift + echo "socket data, ${TS_SUBNAME}:" |socat -u - UNIX-CONNECT:$DEVLOG + printf "$fmt" | $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" +logger_fun -t "prio" -p kern.emerg "message" +ts_finalize_subtest + +ts_init_subtest "kern_priority_numeric" +logger_fun -t "prio" -p 0 "message" +ts_finalize_subtest + +ts_init_subtest "invalid_prio" +logger_fun -t "prio" -p 8 "message" +ts_finalize_subtest + +# should truncate +ts_init_subtest "rfc5424_exceed_size" +logger_fun -t "rfc5424_exceed_size" --rfc5424 --size 3 "abcd" +ts_finalize_subtest + +ts_init_subtest "id_with_space" +logger_fun -t "id_with_space" --id="A B" "message" +logger_fun -t "rfc5424_id_with_space" --rfc5424 --id="A B" "message" +logger_fun -t "id_with_space" --id="1 23" "message" +logger_fun -t "id_with_leading space" --id=" 123" "message" +logger_fun -t "id_with_trailing space" --id="123 " "message" + +ts_finalize_subtest + +# should not fail +ts_init_subtest "tag_with_space" +logger_fun -t "A B" "tag_with_space" +logger_fun -t "A B" --rfc5424 "tag_with_space_rfc5424" +ts_finalize_subtest + +ts_init_subtest "tcp" +logger_fun --tcp -t "tcp" "message" +ts_finalize_subtest + +ts_init_subtest "multi-line" +logger_printf "AAA\nBBB\nCCC\n" -t "multi" +ts_finalize_subtest + +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 +kill $SOCAT_PID +wait $SOCAT_PID &>/dev/null +cat "$SOCKIN" >> "$TS_OUTPUT" 2>&1 +rm -f "$DEVLOG" "$SOCKIN" +ts_finalize_subtest + +ts_finalize |