summaryrefslogtreecommitdiffstats
path: root/tests/ts/logger
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 14:30:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 14:30:35 +0000
commit378c18e5f024ac5a8aef4cb40d7c9aa9633d144c (patch)
tree44dfb6ca500d32cabd450649b322a42e70a30683 /tests/ts/logger
parentInitial commit. (diff)
downloadutil-linux-378c18e5f024ac5a8aef4cb40d7c9aa9633d144c.tar.xz
util-linux-378c18e5f024ac5a8aef4cb40d7c9aa9633d144c.zip
Adding upstream version 2.38.1.upstream/2.38.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ts/logger')
-rwxr-xr-xtests/ts/logger/errors116
-rwxr-xr-xtests/ts/logger/formats85
-rwxr-xr-xtests/ts/logger/journald35
-rwxr-xr-xtests/ts/logger/options82
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..f808099
--- /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..82716c8
--- /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..9ed87ad
--- /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..30daea5
--- /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