test: show the highlevel test for lowerranking ones
authorDavid Kalnischkies <david@kalnischkies.de>
Mon, 31 Aug 2015 21:22:55 +0000 (23:22 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Mon, 31 Aug 2015 21:22:55 +0000 (23:22 +0200)
testsuccess checks the return code, but it does also some autotests
based on the command like grepping for dpkg warnings in a apt-get
install call – but if this finds something it is just showing the grep
command. With this change it will additionally show the first msgtest
which in this case will detail the actual apt-get install call.

Git-Dch: Ignore

test/integration/framework

index 908b56c030296d25d10fed0370ca344db93f689b..182bec2e4d2ea397f4e234798114c06026cc1d0f 100644 (file)
@@ -74,6 +74,9 @@ msgskip() {
 }
 msgfail() {
        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
@@ -84,6 +87,20 @@ msgfail() {
        fi
        EXIT_CODE=$((EXIT_CODE+1));
 }
+MSGGROUP_LEVEL=0
+msggroup() {
+       if [ -n "$1" ]; then
+               if [ $MSGGROUP_LEVEL = 0 ]; then
+                       MSGTEST_GRP='NEXT'
+               fi
+               MSGGROUP_LEVEL=$((MSGGROUP_LEVEL+1));
+       else
+               MSGGROUP_LEVEL=$((MSGGROUP_LEVEL-1));
+               if [ $MSGGROUP_LEVEL = 0 ]; then
+                       unset MSGTEST_GRP
+               fi
+       fi
+}
 
 # enable / disable Debugging
 if [ $MSGLEVEL -le 0 ]; then
@@ -96,7 +113,12 @@ fi
 if [ $MSGLEVEL -le 2 ]; then
        msgmsg() { true; }
        msgnmsg() { true; }
-       msgtest() { MSGTEST_MSG="$(msgprintf "${CINFO}%s" "${CCMD}%s${CINFO}" "…${CNORMAL} " "$@")"; }
+       msgtest() {
+               MSGTEST_MSG="$(msgprintf "${CINFO}%s" "${CCMD}%s${CINFO}" "…${CNORMAL} " "$@")"
+               if [ "$MSGTEST_GRP" = 'NEXT' ]; then
+                       MSGTEST_GRP="$MSGTEST_MSG"
+               fi
+       }
        msgpass() { printf " ${CPASS}P${CNORMAL}"; }
 fi
 if [ $MSGLEVEL -le 3 ]; then
@@ -1217,6 +1239,7 @@ checkdiff() {
 }
 
 testfileequal() {
+       msggroup "$0"
        local MSG='Test for correctness of file'
        if [ "$1" = '--nomsg' ]; then
                MSG=''
@@ -1241,9 +1264,11 @@ testfileequal() {
                        msgfailoutput '' "$OUTPUT"
                fi
        fi
+       msggroup
 }
 
 testempty() {
+       msggroup "$0"
        msgtest "Test for no output of" "$*"
        local COMPAREFILE="${TMPWORKINGDIRECTORY}/rootdir/tmp/testempty.comparefile"
        if "$@" >$COMPAREFILE 2>&1 && test ! -s $COMPAREFILE; then
@@ -1252,9 +1277,11 @@ testempty() {
                msgfailoutput '' "$COMPAREFILE"
        fi
        aptautotest 'testempty' "$@"
+       msggroup
 }
 
 testequal() {
+       msggroup "$0"
        local MSG='Test of equality of'
        if [ "$1" = '--nomsg' ]; then
                MSG=''
@@ -1275,9 +1302,11 @@ testequal() {
                msgfailoutput '' "$OUTPUT"
        fi
        aptautotest 'testequal' "$@"
+       msggroup
 }
 
 testequalor2() {
+       msggroup "$0"
        local COMPAREFILE1="${TMPWORKINGDIRECTORY}/rootdir/tmp/testequalor2.comparefile1"
        local COMPAREFILE2="${TMPWORKINGDIRECTORY}/rootdir/tmp/testequalor2.comparefile2"
        local COMPAREAGAINST="${TMPWORKINGDIRECTORY}/rootdir/tmp/testequalor2.compareagainst"
@@ -1299,9 +1328,11 @@ testequalor2() {
                msgfailoutput '' "$OUTPUT"
        fi
        aptautotest 'testequalor2' "$@"
+       msggroup
 }
 
 testshowvirtual() {
+       msggroup "$0"
        local VIRTUAL="N: Can't select versions from package '$1' as it is purely virtual"
        local PACKAGE="$1"
        shift
@@ -1323,9 +1354,11 @@ N: No packages found"
        else
                msgfailoutput '' "$OUTPUT"
        fi
+       msggroup
 }
 
 testnopackage() {
+       msggroup "$0"
        msgtest "Test for non-existent packages" "apt-cache show $*"
        local SHOWPKG="$(aptcache show "$@" 2>&1 | grep '^Package: ')"
        if [ -n "$SHOWPKG" ]; then
@@ -1335,9 +1368,11 @@ testnopackage() {
        else
                msgpass
        fi
+       msggroup
 }
 
 testdpkgstatus() {
+       msggroup "$0"
        local STATE="$1"
        local NR="$2"
        shift 2
@@ -1351,17 +1386,23 @@ testdpkgstatus() {
        else
                msgpass
        fi
+       msggroup
 }
 
 testdpkginstalled() {
+       msggroup "$0"
        testdpkgstatus 'ii' "$#" "$@"
+       msggroup
 }
 
 testdpkgnotinstalled() {
+       msggroup "$0"
        testdpkgstatus 'ii' '0' "$@"
+       msggroup
 }
 
 testmarkedauto() {
+       msggroup "$0"
        local COMPAREFILE="${TMPWORKINGDIRECTORY}/rootdir/tmp/testmarkedauto.comparefile"
        if [ -n "$1" ]; then
                msgtest 'Test for correctly marked as auto-installed' "$*"
@@ -1376,8 +1417,10 @@ testmarkedauto() {
        else
                msgfailoutput '' "$OUTPUT"
        fi
+       msggroup
 }
 testmarkedmanual() {
+       msggroup "$0"
        local COMPAREFILE="${TMPWORKINGDIRECTORY}/rootdir/tmp/testmarkedmanual.comparefile"
        if [ -n "$1" ]; then
                msgtest 'Test for correctly marked as manually installed' "$*"
@@ -1392,11 +1435,15 @@ testmarkedmanual() {
        else
                msgfailoutput '' "$OUTPUT"
        fi
+       msggroup
 }
 
 msgfailoutput() {
        if [ -n "$MSGTEST_MSG" ]; then
                echo
+               if [ -n "$MSGTEST_GRP" ] && [ "$MSGTEST_GRP" != 'NEXT' ] && [ "$MSGTEST_GRP" != "$MSGTEST_MSG" ]; then
+                       echo "${CFAIL}Part of the test group: $MSGTEST_GRP"
+               fi
                echo -n "$MSGTEST_MSG"
                unset MSGTEST_MSG
        fi
@@ -1431,6 +1478,7 @@ msgfailoutput() {
 }
 
 testsuccess() {
+       msggroup "$0"
        if [ "$1" = '--nomsg' ]; then
                shift
        else
@@ -1463,8 +1511,10 @@ testsuccess() {
                msgfailoutput "exitcode $EXITCODE" "$OUTPUT" "$@"
        fi
        aptautotest 'testsuccess' "$@"
+       msggroup
 }
 testwarning() {
+       msggroup "$0"
        if [ "$1" = '--nomsg' ]; then
                shift
        else
@@ -1490,8 +1540,10 @@ testwarning() {
                msgfailoutput "exitcode $EXITCODE" "$OUTPUT" "$@"
        fi
        aptautotest 'testwarning' "$@"
+       msggroup
 }
 testfailure() {
+       msggroup "$0"
        if [ "$1" = '--nomsg' ]; then
                shift
        else
@@ -1527,28 +1579,36 @@ testfailure() {
                fi
        fi
        aptautotest 'testfailure' "$@"
+       msggroup
 }
 
 testsuccessequal() {
+       msggroup "$0"
        local CMP="$1"
        shift
        testsuccess "$@"
        testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/testsuccess.output" "$CMP"
+       msggroup
 }
 testwarningequal() {
+       msggroup "$0"
        local CMP="$1"
        shift
        testwarning "$@"
        testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/testwarning.output" "$CMP"
+       msggroup
 }
 testfailureequal() {
+       msggroup "$0"
        local CMP="$1"
        shift
        testfailure "$@"
        testfileequal "${TMPWORKINGDIRECTORY}/rootdir/tmp/testfailure.output" "$CMP"
+       msggroup
 }
 
 testfailuremsg() {
+       msggroup "$0"
        local CMP="$1"
        shift
        testfailure "$@"
@@ -1563,9 +1623,11 @@ testfailuremsg() {
                cat "${TMPWORKINGDIRECTORY}/rootdir/tmp/testfailure.output" >"$OUTPUT"
                msgfailoutput '' "$OUTPUT"
        fi
+       msggroup
 }
 
 testfilestats() {
+       msggroup "$0"
        msgtest "Test that file $1 has $2 $3" "$4"
        if [ "$4" "$3" "$(stat --format "$2" "$1")" ]; then
                msgpass
@@ -1578,12 +1640,16 @@ testfilestats() {
                } >"$OUTPUT" 2>&1
                msgfailoutput '' "$OUTPUT"
        fi
+       msggroup
 }
 testaccessrights() {
+       msggroup "$0"
        testfilestats "$1" '%a' '=' "$2"
+       msggroup
 }
 
 testwebserverlaststatuscode() {
+       msggroup "$0"
        local DOWNLOG='rootdir/tmp/webserverstatus-testfile.log'
        local STATUS='downloaded/webserverstatus-statusfile.log'
        rm -f "$DOWNLOG" "$STATUS"
@@ -1603,6 +1669,7 @@ testwebserverlaststatuscode() {
                } >"$OUTPUT" 2>&1
                msgfailoutput "Status was $(cat "$STATUS")" "$OUTPUT"
        fi
+       msggroup
 }
 
 pause() {