From 45995c82673081fefd6b7224ff1c1f1a8fbd8a71 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Oct 04 2019 12:48:30 +0000 Subject: Merge STDOUT+STDERR to 1 logfile. Closes https://pagure.io/fedora-ci/general/issue/57 Signed-off-by: Andrei Stepanov --- diff --git a/roles/standard-test-basic/files/run-basic-test b/roles/standard-test-basic/files/run-basic-test index ef89791..601c330 100755 --- a/roles/standard-test-basic/files/run-basic-test +++ b/roles/standard-test-basic/files/run-basic-test @@ -142,7 +142,7 @@ clean_exit() { " result: $result" \ " logs:" \ >> "$results" - for log in "$logfile_stdout" "$logfile_stderr"; do + for log in "$logfile_stdout" "$logfile_stderr" "$logfile"; do if [ -f "$log" ]; then local prefixed_log="$STR_ARTIFACTS_DIR/${status}-$(basename $log)" mv -f "$log" "$prefixed_log" @@ -165,11 +165,13 @@ trap clean_exit SIGINT SIGTERM SIGABRT EXIT export PATH="$PATH:$STR_WORKDIR" mkdir -p "$STR_ARTIFACTS_DIR" # add str_ prefix to test logs -logfile_stdout="$STR_ARTIFACTS_DIR/$(echo "str_$STR_TEST_NAME" | sed -e 's/\//-/g').log" -logfile_stderr="$STR_ARTIFACTS_DIR/$(echo "str_$STR_TEST_NAME" | sed -e 's/\//-/g')-err.log" +logfile="$STR_ARTIFACTS_DIR/$(echo "str_$STR_TEST_NAME" | sed -e 's/\//-/g').log" +logfile_stdout="$STR_ARTIFACTS_DIR/$(echo "str_$STR_TEST_NAME" | sed -e 's/\//-/g')-stdout.log" +logfile_stderr="$STR_ARTIFACTS_DIR/$(echo "str_$STR_TEST_NAME" | sed -e 's/\//-/g')-stderr.log" +logfile="$(realpath "$logfile")" logfile_stdout="$(realpath "$logfile_stdout")" logfile_stderr="$(realpath "$logfile_stderr")" -exec 3>&1 4>&2 1> >(tee -a "$logfile_stdout" >&3) 2> >(tee -a "$logfile_stderr" >&4) +exec 3>&1 4>&2 1> >(tee -a "$logfile_stdout" "$logfile" >&3) 2> >(tee -a "$logfile_stderr" "$logfile" >&4) cd "$STR_WORKDIR" # Purpose to spawn new bash is to ignore -efu setting for current shell # Test command: run-basic-test -w wodir -c 'false; echo 123; echo 333 >&2; touch "123 123"; exit 43' -t my_test -a logs -v diff --git a/roles/standard-test-beakerlib/files/run-beakerlib-test b/roles/standard-test-beakerlib/files/run-beakerlib-test index 30d6680..62dfc1d 100755 --- a/roles/standard-test-beakerlib/files/run-beakerlib-test +++ b/roles/standard-test-beakerlib/files/run-beakerlib-test @@ -83,6 +83,8 @@ if [ -z "$STR_BKR_TEST" ] || [ -z "$STR_WORKDIR" ] || [ -z "$STR_ARTIFACTS_DIR" exit 0 fi +STR_ARTIFACTS_DIR="$(realpath "$STR_ARTIFACTS_DIR")" + debug "Test: $STR_BKR_TEST" debug "Work dir: $STR_WORKDIR" debug "Artifacts dir: $STR_ARTIFACTS_DIR" @@ -135,7 +137,7 @@ clean_exit() { " result: $result" \ " logs:" \ >> "$results" - for log in "$log_file_path" "$logfile_stdout" "$logfile_stderr"; do + for log in "$log_file_path" "$logfile_stdout" "$logfile_stderr" "$logfile"; do if [ -f "$log" ]; then local prefixed_log="$STR_ARTIFACTS_DIR/${status}-$(basename $log)" mv -f "$log" "$prefixed_log" @@ -150,11 +152,13 @@ trap clean_exit SIGINT SIGTERM SIGABRT EXIT # For beakerlib-libraries export PATH="$PATH:$STR_WORKDIR" mkdir -p "$STR_ARTIFACTS_DIR" -logfile_stdout="$STR_ARTIFACTS_DIR/$STR_BKR_TEST_DASHED.log" -logfile_stderr="$STR_ARTIFACTS_DIR/$STR_BKR_TEST_DASHED-err.log" +logfile_stdout="$STR_ARTIFACTS_DIR/$STR_BKR_TEST_DASHED-stdout.log" +logfile_stderr="$STR_ARTIFACTS_DIR/$STR_BKR_TEST_DASHED-stderr.log" +# STDOUT + STDERR +logfile="$STR_ARTIFACTS_DIR/$STR_BKR_TEST_DASHED.log" # OUTPUTFILE has influence on beakerlib-libraries output export OUTPUTFILE="$(realpath "$logfile_stdout")" -exec 3>&1 4>&2 1> >(tee -a "$logfile_stdout" >&3) 2> >(tee -a "$logfile_stderr" >&4) +exec 3>&1 4>&2 1> >(tee -a "$logfile_stdout" "$logfile" >&3) 2> >(tee -a "$logfile_stderr" "$logfile" >&4) mkdir -p "$STR_WORKDIR" cd "$STR_WORKDIR"