summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-11-17 13:43:08 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2015-11-18 11:38:43 +0100
commit671a55ba455dcf4e5ce6d86b202761666f54d5c6 (patch)
tree3e9429fcf94cf58f56c4048c93c43e632f7b42e3
parent2ff2a12a0967da0bcda4e45146f39826558ffb6c (diff)
tests: fail testsuccess if notices are shown, too
Notices are just hints, but if they are printed in tests, they should be expected and if not the test should fail. No current test has this problem, so that is just potential future proving. Git-Dch: Ignore
-rw-r--r--test/integration/framework66
1 files changed, 50 insertions, 16 deletions
diff --git a/test/integration/framework b/test/integration/framework
index 70f06158d..ee67dd52c 100644
--- a/test/integration/framework
+++ b/test/integration/framework
@@ -1522,19 +1522,22 @@ msgfailoutput() {
msgfail "$MSG"
}
-testsuccess() {
- msggroup 'testsuccess'
+testsuccesswithglobalerror() {
+ local TYPE="$1"
+ local ERRORS="$2"
+ shift 2
+ msggroup "$TYPE"
if [ "$1" = '--nomsg' ]; then
shift
else
msgtest 'Test for successful execution of' "$*"
fi
- local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testsuccess.output"
+ local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/${TYPE}.output"
if "$@" >"${OUTPUT}" 2>&1; then
if expr match "$1" '^apt.*' >/dev/null; then
if grep -q -E ' runtime error: ' "$OUTPUT"; then
msgfailoutput 'compiler detected undefined behavior' "$OUTPUT" "$@"
- elif grep -E '^[WE]: ' "$OUTPUT" > "${TMPWORKINGDIRECTORY}/rootdir/tmp/checkforwarnings.output" 2>&1; then
+ elif grep -E "^[${ERRORS}]: " "$OUTPUT" > "${TMPWORKINGDIRECTORY}/rootdir/tmp/checkforwarnings.output" 2>&1; then
if [ "$IGNORE_PTY_NOT_MOUNTED" = '1' ]; then
if echo 'E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)' \
| cmp - "${TMPWORKINGDIRECTORY}/rootdir/tmp/checkforwarnings.output" >/dev/null 2>&1; then
@@ -1545,6 +1548,12 @@ testsuccess() {
else
msgfailoutput 'successful run, but output contains warnings/errors' "$OUTPUT" "$@"
fi
+ elif [ "$TYPE" = 'testsuccesswithnotice' ]; then
+ if grep -q -E "^N: " "$OUTPUT"; then
+ msgpass
+ else
+ msgfailoutput 'successful run, but output had no notices' "$OUTPUT" "$@"
+ fi
else
msgpass
fi
@@ -1555,9 +1564,15 @@ testsuccess() {
local EXITCODE=$?
msgfailoutput "exitcode $EXITCODE" "$OUTPUT" "$@"
fi
- aptautotest 'testsuccess' "$@"
+ aptautotest "$TYPE" "$@"
msggroup
}
+testsuccesswithnotice() {
+ testsuccesswithglobalerror 'testsuccesswithnotice' 'WE' "$@"
+}
+testsuccess() {
+ testsuccesswithglobalerror 'testsuccess' 'NWE' "$@"
+}
testwarning() {
msggroup 'testwarning'
if [ "$1" = '--nomsg' ]; then
@@ -1629,22 +1644,41 @@ testfailure() {
testreturnstateequal() {
local STATE="$1"
- msggroup "${STATE}equal"
- if [ "$2" != '--nomsg' ]; then
- local CMP="$2"
- shift 2
- "$STATE" "$@"
- testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/${STATE}.output" "$CMP"
- else
- local CMP="$3"
+ if [ "$STATE" = 'testsuccesswithglobalerror' ]; then
+ local STATE="$2"
+ local TYPE="$3"
shift 3
- "$STATE" --nomsg "$@"
- testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/${STATE}.output" "$CMP"
+ msggroup "${STATE}equal"
+ if [ "$1" != '--nomsg' ]; then
+ local CMP="$1"
+ shift
+ testsuccesswithglobalerror "$STATE" "$TYPE" "$@"
+ testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/${STATE}.output" "$CMP"
+ else
+ local CMP="$2"
+ shift 2
+ testsuccesswithglobalerror "$STATE" "$TYPE" "$@"
+ testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/${STATE}.output" "$CMP"
+ fi
+ else
+ msggroup "${STATE}equal"
+ if [ "$2" != '--nomsg' ]; then
+ local CMP="$2"
+ shift 2
+ "$STATE" "$@"
+ testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/${STATE}.output" "$CMP"
+ else
+ local CMP="$3"
+ shift 3
+ "$STATE" --nomsg "$@"
+ testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/${STATE}.output" "$CMP"
+ fi
fi
msggroup
}
testsuccessequal() {
- testreturnstateequal 'testsuccess' "$@"
+ # we compare output, so we know perfectly well about N:
+ testreturnstateequal 'testsuccesswithglobalerror' 'testsuccess' 'WE' "$@"
}
testwarningequal() {
testreturnstateequal 'testwarning' "$@"