summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2024-02-09 00:37:10 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2024-02-09 01:12:00 +0000
commit2f41198eceecdf4d478701ad5512b2bf9e6efce4 (patch)
treeff2bd4d2da40529ce71eea601d274c3ac13bcd69 /tests
parent6470e8646c002b516d18cee96f40606a69dfdf84 (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/lib35
1 files changed, 32 insertions, 3 deletions
diff --git a/tests/lib b/tests/lib
index 748a335..883912c 100644
--- a/tests/lib
+++ b/tests/lib
@@ -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