| #!/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>&1 |
| echo "ret: $?" >> "$TS_OUTPUT" |
| } |
| |
| 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" |
| 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 |