#!/bin/bash # # Copyright (C) 2015 Sami Kerola # # 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