diff options
Diffstat (limited to 'tests/ts/logger')
-rwxr-xr-x | tests/ts/logger/errors | 116 | ||||
-rwxr-xr-x | tests/ts/logger/formats | 85 | ||||
-rwxr-xr-x | tests/ts/logger/journald | 35 | ||||
-rwxr-xr-x | tests/ts/logger/options | 82 |
4 files changed, 318 insertions, 0 deletions
diff --git a/tests/ts/logger/errors b/tests/ts/logger/errors new file mode 100755 index 0000000..f6d0d7b --- /dev/null +++ b/tests/ts/logger/errors @@ -0,0 +1,116 @@ +#!/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" +ts_check_prog "socat" +ts_check_prog "mktemp" + +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>> $TS_ERRLOG + 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>> $TS_ERRLOG + 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>> $TS_ERRLOG +rm -f "$DEVLOG" "$SOCKIN" +ts_finalize_subtest + +ts_finalize diff --git a/tests/ts/logger/formats b/tests/ts/logger/formats new file mode 100755 index 0000000..0c46b69 --- /dev/null +++ b/tests/ts/logger/formats @@ -0,0 +1,85 @@ +#!/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="formats" + +. "$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 { + $TS_HELPER_LOGGER -u $DEVLOG --stderr --no-act "$@" >> $TS_OUTPUT 2>> $TS_ERRLOG + echo "ret: $?" >> "$TS_ERRLOG" # keep all in stderr +} + +ts_init_subtest "rfc3164" +logger_fun -t "rfc3164" --rfc3164 "message" +ts_finalize_subtest + +ts_init_subtest "rfc5424_simple" +logger_fun -t "rfc5424" --rfc5424 "message" +ts_finalize_subtest + +ts_init_subtest "rfc5424_notime" +logger_fun -t "rfc5424" --rfc5424=notime "message" +ts_finalize_subtest + +ts_init_subtest "rfc5424_nohost" +logger_fun -t "rfc5424" --rfc5424=nohost "message" +ts_finalize_subtest + +ts_init_subtest "rfc5424_msgid" +logger_fun -t "rfc5424" --rfc5424 --msgid "MSGID" "message" +ts_finalize_subtest + +ts_init_subtest "octet_counting" +logger_fun -t "octen" --octet-count "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 + logger_fun -t "prio" -p "$facility.$level" "$facility.$level" + done +done +ts_finalize_subtest + +ts_init_subtest "check_socket" +# Check written socket data of all subtests +sleep 1 +kill $SOCAT_PID +wait $SOCAT_PID &>/dev/null +cat "$SOCKIN" >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f "$DEVLOG" "$SOCKIN" +ts_finalize_subtest + +ts_finalize diff --git a/tests/ts/logger/journald b/tests/ts/logger/journald new file mode 100755 index 0000000..abed3e7 --- /dev/null +++ b/tests/ts/logger/journald @@ -0,0 +1,35 @@ +#!/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="journald" + +. "$TS_TOPDIR"/functions.sh + +ts_init "$*" + +ts_check_test_command "$TS_HELPER_LOGGER" + +if ! $TS_HELPER_LOGGER --help | grep -q journald; then + ts_skip "unsupported" +fi + +printf "%s\n%s\n%s\n" MESSAGE_ID=b8f74e14bc714bfc8040a5106dc9376a MESSAGE="a b c 1 2 3" | +$TS_HELPER_LOGGER -u /bad/boy --no-act --journald --stderr >> $TS_OUTPUT 2>> $TS_ERRLOG +echo "ret: $?" >> $TS_ERRLOG # keep it on stderr too +ts_finalize diff --git a/tests/ts/logger/options b/tests/ts/logger/options new file mode 100755 index 0000000..c5a4c36 --- /dev/null +++ b/tests/ts/logger/options @@ -0,0 +1,82 @@ +#!/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="options" + +. "$TS_TOPDIR"/functions.sh + +ts_init "$*" + +ts_check_test_command "$TS_HELPER_LOGGER" + +# Create --file option input files. +echo {a..c}{1..5} > $TS_OUTDIR/input_simple +echo {a..c}{1..5} > $TS_OUTDIR/input_empty_line +echo "" >> $TS_OUTDIR/input_empty_line +echo {5..1}{c..1} >> $TS_OUTDIR/input_empty_line +echo "<66>" prio_prefix > $TS_OUTDIR/input_prio_prefix + +# bash 4 might not be available, use go-around hash +tests_array=( + "simple:test" + "log_pid:-i test" + "log_pid_long:--id test" + "log_pid_define:--id=12345 test" + "log_pid_no_arg:-is test" + "input_file_simple:-f $TS_OUTDIR/input_simple" + "input_file_empty_line:-f $TS_OUTDIR/input_empty_line" + "input_file_skip_empty:--file $TS_OUTDIR/input_empty_line -e" + "input_file_prio_prefix:--file $TS_OUTDIR/input_prio_prefix --skip-empty --prio-prefix" +) + +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 { + $TS_HELPER_LOGGER -u $DEVLOG --stderr --no-act "$@" >> $TS_OUTPUT 2>> $TS_ERRLOG + echo "ret: $?" >> "$TS_ERRLOG" # keep all on stderr +} + +for i in "${tests_array[@]}"; do + name="${i%%:*}" + options="${i##*:}" + + ts_init_subtest "$name" + logger_fun -t "test_tag" $options + ts_finalize_subtest +done + +ts_init_subtest "check_socket" +# Check written socket data of all subtests +sleep 1 +kill $SOCAT_PID +wait $SOCAT_PID &>/dev/null +cat "$SOCKIN" >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f "$DEVLOG" "$SOCKIN" +ts_finalize_subtest + +ts_finalize |