From 22ac12b2c4060aa4dbbb2da07f4191d966738103 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 2 Sep 2015 11:31:32 +0200 Subject: tests: collect more details about failed checkdiffs Git-Dch: Ignore --- test/integration/framework | 66 ++++++++++------------------ test/integration/test-apt-ftparchive-cachedb | 15 +++---- 2 files changed, 30 insertions(+), 51 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index ec5d7c491..18bfec7ed 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -66,6 +66,9 @@ msgtest() { msgprintf "${CINFO}%s" "${CCMD}%s${CINFO}" "…${CNORMAL} " "$@"; } msgpass() { printf "${CPASS}PASS${CNORMAL}\n"; } msgskip() { if [ -n "$MSGTEST_MSG" ]; then + if [ -n "$MSGTEST_GRP" ] && [ "$MSGTEST_GRP" != 'NEXT' ] && [ "$MSGTEST_GRP" != "$MSGTEST_MSG" ]; then + echo "Part of the test group: $MSGTEST_GRP" + fi echo -n "$MSGTEST_MSG" unset MSGTEST_MSG fi @@ -1241,6 +1244,19 @@ checkdiff() { fi } +testoutputequal() { + local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testoutputequal.output" + local COMPAREFILE="$1" + shift + if "$@" 2>&1 | checkdiff $COMPAREFILE - >"$OUTPUT" 2>&1; then + msgpass + else + echo "=== content of file we compared with (${COMPAREFILE}) ===" >>"${OUTPUT}" + cat "$COMPAREFILE" >>"${OUTPUT}" + msgfailoutput '' "$OUTPUT" "$@" + fi +} + testfileequal() { msggroup "$0" local MSG='Test for correctness of file' @@ -1255,17 +1271,9 @@ testfileequal() { fi local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testfileequal.output" if [ -z "$*" ]; then - if echo -n "" | checkdiff - $FILE >"$OUTPUT" 2>&1; then - msgpass - else - msgfailoutput '' "$OUTPUT" - fi + testoutputequal "$FILE" echo -n '' else - if echo "$*" | checkdiff - $FILE >"$OUTPUT" 2>&1; then - msgpass - else - msgfailoutput '' "$OUTPUT" - fi + testoutputequal "$FILE" echo "$*" fi msggroup } @@ -1277,7 +1285,7 @@ testempty() { if "$@" >$COMPAREFILE 2>&1 && test ! -s $COMPAREFILE; then msgpass else - msgfailoutput '' "$COMPAREFILE" + msgfailoutput '' "$COMPAREFILE" "$@" fi aptautotest 'testempty' "$@" msggroup @@ -1298,12 +1306,7 @@ testequal() { if [ -n "$MSG" ]; then msgtest "$MSG" "$*" fi - local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testequal.output" - if "$@" 2>&1 | checkdiff $COMPAREFILE - >"$OUTPUT" 2>&1; then - msgpass - else - msgfailoutput '' "$OUTPUT" - fi + testoutputequal "$COMPAREFILE" "$@" aptautotest 'testequal' "$@" msggroup } @@ -1352,11 +1355,7 @@ N: No packages found" local ARCH="$(getarchitecture 'native')" echo "$VIRTUAL" | sed -e "s/:$ARCH//" -e 's/:all//' >"$COMPAREFILE" local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testshowvirtual.output" - if aptcache show -q=0 "$PACKAGE" 2>&1 | checkdiff "$COMPAREFILE" - >"$OUTPUT" 2>&1; then - msgpass - else - msgfailoutput '' "$OUTPUT" - fi + testoutputequal "$COMPAREFILE" aptcache show -q=0 "$PACKAGE" msggroup } @@ -1414,12 +1413,7 @@ testmarkedauto() { msgtest 'Test for correctly marked as auto-installed' 'no package' echo -n > $COMPAREFILE fi - local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testmarkedauto.output" - if aptmark showauto 2>&1 | checkdiff $COMPAREFILE - >"$OUTPUT" 2>&1; then - msgpass - else - msgfailoutput '' "$OUTPUT" - fi + testoutputequal "$COMPAREFILE" aptmark showauto msggroup } testmarkedmanual() { @@ -1432,12 +1426,7 @@ testmarkedmanual() { msgtest 'Test for correctly marked as manually installed' 'no package' echo -n > $COMPAREFILE fi - local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testmarkedmanual.output" - if aptmark showmanual 2>&1 | checkdiff $COMPAREFILE - >"$OUTPUT" 2>&1; then - msgpass - else - msgfailoutput '' "$OUTPUT" - fi + testoutputequal "$COMPAREFILE" aptmark showmanual msggroup } @@ -1618,14 +1607,7 @@ testfailuremsg() { msgtest 'Check that the output of the previous failed command has expected' 'failures and warnings' local COMPAREFILE="${TMPWORKINGDIRECTORY}/rootdir/tmp/testfailuremsg.comparefile" grep '^\(W\|E\):' "${TMPWORKINGDIRECTORY}/rootdir/tmp/testfailure.output" > "$COMPAREFILE" 2>&1 || true - local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testfailuremsg.output" - if echo "$CMP" | checkdiff - "${COMPAREFILE}" >"$OUTPUT" 2>&1; then - msgpass - else - echo '### Complete output ###' >"$OUTPUT" - cat "${TMPWORKINGDIRECTORY}/rootdir/tmp/testfailure.output" >"$OUTPUT" - msgfailoutput '' "$OUTPUT" - fi + testoutputequal "$COMPAREFILE" echo "$CMP" msggroup } diff --git a/test/integration/test-apt-ftparchive-cachedb b/test/integration/test-apt-ftparchive-cachedb index 962095320..4edf26c22 100755 --- a/test/integration/test-apt-ftparchive-cachedb +++ b/test/integration/test-apt-ftparchive-cachedb @@ -73,18 +73,16 @@ testsuccess aptftparchive generate ftparchive.conf -q=0 -o APT::FTPArchive::Show cp rootdir/tmp/testsuccess.output stats-out.txt ensure_correct_packages_file ensure_correct_contents_file -testsuccess grep Misses stats-out.txt -testfileequal 'rootdir/tmp/testsuccess.output' ' Misses in Cache: 2 - dists/test/Contents-i386: New 402 B Misses in Cache: 0' +testsuccessequal ' Misses in Cache: 2 + dists/test/Contents-i386: New 402 B Misses in Cache: 0' grep Misses stats-out.txt # generate again testsuccess aptftparchive generate ftparchive.conf -q=0 -o APT::FTPArchive::ShowCacheMisses=1 cp rootdir/tmp/testsuccess.output stats-out.txt ensure_correct_packages_file ensure_correct_contents_file -testsuccess grep Misses stats-out.txt -testfileequal 'rootdir/tmp/testsuccess.output' ' Misses in Cache: 0 - dists/test/Contents-i386: Misses in Cache: 0' +testsuccessequal ' Misses in Cache: 0 + dists/test/Contents-i386: Misses in Cache: 0' grep Misses stats-out.txt # and again (with removing the Packages file) rm -f ./aptarchive/dists/test/main/binary-i386/* @@ -93,9 +91,8 @@ testsuccess aptftparchive generate ftparchive.conf -q=0 -o APT::FTPArchive::Show cp rootdir/tmp/testsuccess.output stats-out.txt ensure_correct_packages_file ensure_correct_contents_file -testsuccess grep Misses stats-out.txt -testfileequal 'rootdir/tmp/testsuccess.output' ' Misses in Cache: 0 - dists/test/Contents-i386: New 402 B Misses in Cache: 0' +testsuccessequal ' Misses in Cache: 0 + dists/test/Contents-i386: New 402 B Misses in Cache: 0' grep Misses stats-out.txt # and clean rm -rf aptarchive/pool/main/* -- cgit v1.2.3