diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2024-02-09 00:37:10 +0000 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2024-02-09 01:12:00 +0000 |
commit | 2f41198eceecdf4d478701ad5512b2bf9e6efce4 (patch) | |
tree | ff2bd4d2da40529ce71eea601d274c3ac13bcd69 /tests | |
parent | 6470e8646c002b516d18cee96f40606a69dfdf84 (diff) |
tests: Avoid big logs when running under autopkgtest
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib | 35 |
1 files changed, 32 insertions, 3 deletions
@@ -1,7 +1,6 @@ # exec 2>&1 -set -x set -o pipefail . tests/lib-core @@ -25,21 +24,42 @@ END trap ' rc=$? set +x + redirected_log="$DGIT_TEST_REDIRECTED_LOG" + if [ "$redirected_log" ]; then + exec 2>&5 >&2 + unset DGIT_TEST_REDIRECTED_LOG + cat -- "$redirected_log" ||: + fi test $rc = 0 || echo " %%%%%%%%%%%%%%%%%%%% EXITING $rc %%%%%%%%%%%%%%%%%%%% Most relevant logs are just before assignment rc=$rc Will now do cleanup etc. " - set -x + if [ $rc != 0 ] || ! [ "$DGIT_TRAP_QUIET" ]; then + set -x + pwd + fi set +e - pwd [ "x$DGIT_TEST_KEEP_MUSTCLEAN" != x ] || \ [ "x$DGIT_TEST_TMP" = x ] || rm -rf $DGIT_TEST_TMP/must-clean set -e test $rc = 0 || t-report-failure ' EXIT +if [ "$AUTOPKGTEST_ARTIFACTS" ] && ! [ "$DGIT_TEST_REDIRECTED_LOG" ] \ + && ! [ "$DGIT_TEST_DIRECT_LOG" ]; then + # When running under real autopkgtest, don't spew our megabytes of + # logs unconditionally. Redirect them to a file, and print them + # only on failure. On success, t-save-artifacts comppresses them. + exec 5>&2 + export DGIT_TEST_REDIRECTED_LOG="$AUTOPKGTEST_ARTIFACTS"/"${0##*/}.log" + exec >"$DGIT_TEST_REDIRECTED_LOG" + exec 2>&1 +fi + +set -x + t-filter-out-git-hyphen-dir t-set-intree @@ -489,6 +509,14 @@ t-save-artifacts () { if [ x"tmp" = x ]; then return; fi GZIP=-1v tar -C "$tmp" -zc -f "$artifacts/${0##*/}.tar.gz" \ --exclude=\*.tar . + local logfile="$DGIT_TEST_REDIRECTED_LOG" + if [ "$logfile" ]; then + unset DGIT_TEST_REDIRECTED_LOG + set +x + DGIT_TRAP_QUIET=1 + exec >&5 2>&1 + gzip -f -- "$logfile" + fi } t-rm-dput-dropping () { @@ -624,6 +652,7 @@ t-setup-import () { simport="$1"; shift if [ -e "$simport" ]; then exit 0; fi env - "$@" \ + env -u DGIT_TEST_REDIRECTED_LOG \ "tests/setup/$setupname" ' x "$root" "$setupname" "$simport" fi |