From 048e04e4176e62e5c9196c662497d18dc19483a9 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Fri, 18 Sep 2020 14:29:15 +0200 Subject: [PATCH] tests: utils better handle ouf of disk space When the test exhausts all the available free space on storage device, then during the fail we cannot write anything as well - yet the teardown needs to finish it's work - otherwise we leave basicaly overfilled filesystem for all remaining tests. --- test/lib/utils.sh | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/test/lib/utils.sh b/test/lib/utils.sh index 2cd00dd30..3bf73bb4c 100644 --- a/test/lib/utils.sh +++ b/test/lib/utils.sh @@ -135,18 +135,23 @@ STACKTRACE() { # Get backtraces from coredumps if which gdb &>/dev/null; then - { - echo bt full - echo l - echo quit - } > gdb_commands.txt - # Check for all cores newer then TESTNAME file # Assume users keep prefix 'core' # TODO: possibly better integrate with coredumpctl & systemd while IFS= read -r i; do bin=$(gdb -batch -c "$i" 2>&1 | grep "generated by" | \ sed -e "s,.*generated by \`\([^ ']*\).*,\1,") || continue + { + echo bt full + echo l + echo quit + } > gdb_commands.txt || rm -f gdb_commands.txt + + if test ! -s gdb_commands.txt ; then + echo "Out of disk space, can't check coredump $i generated by $bin." + continue + fi + echo "## Checking coredump: $i generated by $bin." gdb -batch -c "$i" -x gdb_commands.txt "$(which "$bin")" 2>/dev/null | \ sed -e "s,^,## GDB: ," || continue @@ -171,10 +176,9 @@ STACKTRACE() { echo "<======== Strace debug log ========>" sed -e "s,^,## STRACE: ," strace.log fi - dmsetup info -c | grep1_ "$PREFIX" > out - if test "$(wc -l < out)" -gt 1 ; then + if dmsetup info -c | grep -q "$PREFIX" ; then echo "<======== Info ========>" - sed -e "s,^,## DMINFO: ," out + dmsetup info -c | grep1_ "$PREFIX"| sed -e "s,^,## DMINFO: ," echo "<======== Active table ========>" dmsetup table | grep "$PREFIX" | sed -e "s,^,## DMTABLE: ," echo "<======== Inactive table ========>"