From: Simon McVittie Date: Sun, 17 Apr 2016 09:57:06 +0100 Subject: libtest: show files' contents when assertions about them fail I've seen an intermittent test failure in an autobuilder (sbuild) environment where logs from failed builds cannot be retrieved, but I can no longer reproduce it. Put the contents of the offending file in the test's failing output so that if the failure comes back, it can be debugged. Signed-off-by: Simon McVittie Forwarded: https://github.com/ostreedev/ostree/pull/264 Applied-upstream: 2016.6, commit:24cab773a2c849a8153529e3eb5f967302339f68 --- tests/libtest.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/libtest.sh b/tests/libtest.sh index 572f023..afdf364 100755 --- a/tests/libtest.sh +++ b/tests/libtest.sh @@ -100,13 +100,17 @@ assert_has_dir () { assert_not_has_file () { if test -f "$1"; then - echo 1>&2 "File '$1' exists"; exit 1 + sed -e 's/^/# /' < "$1" >&2 + echo 1>&2 "File '$1' exists" + exit 1 fi } assert_not_file_has_content () { if grep -q -e "$2" "$1"; then - echo 1>&2 "File '$1' incorrectly matches regexp '$2'"; exit 1 + sed -e 's/^/# /' < "$1" >&2 + echo 1>&2 "File '$1' incorrectly matches regexp '$2'" + exit 1 fi } @@ -118,13 +122,17 @@ assert_not_has_dir () { assert_file_has_content () { if ! grep -q -e "$2" "$1"; then - echo 1>&2 "File '$1' doesn't match regexp '$2'"; exit 1 + sed -e 's/^/# /' < "$1" >&2 + echo 1>&2 "File '$1' doesn't match regexp '$2'" + exit 1 fi } assert_file_empty() { if test -s "$1"; then - echo 1>&2 "File '$1' is not empty"; exit 1 + sed -e 's/^/# /' < "$1" >&2 + echo 1>&2 "File '$1' is not empty" + exit 1 fi }