]> git.saurik.com Git - apt.git/blobdiff - test/integration/framework
Merge remote-tracking branch 'mvo/debian/sid' into debian/sid
[apt.git] / test / integration / framework
index f64b8482c10d1a92adf2b09379ef482e7a829209..54d35fef80c8326a726171a80ed4e682bc4f6942 100644 (file)
@@ -88,11 +88,11 @@ msgdone() {
 runapt() {
        msgdebug "Executing: ${CCMD}$*${CDEBUG} "
        if [ -f ./aptconfig.conf ]; then
-               APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
-        elif [ -f ../aptconfig.conf ]; then
-                APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
+               MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
+       elif [ -f ../aptconfig.conf ]; then
+               MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
        else
-               LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
+               MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
        fi
 }
 aptconfig() { runapt apt-config $*; }
@@ -131,13 +131,23 @@ exitwithstatus() {
         exit $((EXIT_CODE <= 255 ? EXIT_CODE : 255));
 }
 
+shellsetedetector() {
+       local exit_status=$?
+       if [ "$exit_status" != '0' ]; then
+               echo >&2 "${CERROR}E: Looks like the testcases ended prematurely with exitcode: ${exit_status}${CNORMAL}"
+               if [ "$EXIT_CODE" = '0' ]; then
+                       EXIT_CODE="$exit_status"
+               fi
+       fi
+}
+
 addtrap() {
        if [ "$1" = 'prefix' ]; then
                CURRENTTRAP="$2 $CURRENTTRAP"
        else
                CURRENTTRAP="$CURRENTTRAP $1"
        fi
-       trap "$CURRENTTRAP exitwithstatus;" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+       trap "shellsetedetector; $CURRENTTRAP exitwithstatus;" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
 }
 
 setupenvironment() {
@@ -177,7 +187,7 @@ setupenvironment() {
        echo "DPKG::options:: \"--root=${TMPWORKINGDIRECTORY}/rootdir\";" >> aptconfig.conf
        echo "DPKG::options:: \"--force-not-root\";" >> aptconfig.conf
        echo "DPKG::options:: \"--force-bad-path\";" >> aptconfig.conf
-       if ! $(which dpkg) --assert-multi-arch 2>&1 > /dev/null; then
+       if ! $(which dpkg) --assert-multi-arch >/dev/null 2>&1; then
                echo "DPKG::options:: \"--force-architecture\";" >> aptconfig.conf # Added to test multiarch before dpkg is ready for it…
        fi
        echo "DPKG::options:: \"--log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log\";" >> aptconfig.conf
@@ -225,7 +235,7 @@ configdpkg() {
                        echo -n > rootdir/var/lib/dpkg/status
                fi
        fi
-       if $(which dpkg) --assert-multi-arch 2>&1 > /dev/null; then
+       if $(which dpkg) --assert-multi-arch >/dev/null 2>&1; then
                local ARCHS="$(getarchitectures)"
                if echo "$ARCHS" | grep -E -q '[^ ]+ [^ ]+'; then
                        DPKGARCH="$(dpkg --print-architecture)"
@@ -851,7 +861,7 @@ testequalor2() {
        echo "$2" > $COMPAREFILE2
        shift 2
        msgtest "Test for equality OR of" "$*"
-       $* 2>&1 1> $COMPAREAGAINST
+       $* >$COMPAREAGAINST 2>&1
        (checkdiff $COMPAREFILE1 $COMPAREAGAINST 1> /dev/null ||
                checkdiff $COMPAREFILE2 $COMPAREAGAINST 1> /dev/null) && msgpass ||
                ( echo "\n${CINFO}Diff against OR 1${CNORMAL}" "$(checkdiff $COMPAREFILE1 $COMPAREAGAINST)" \
@@ -928,6 +938,40 @@ testmarkedauto() {
        aptmark showauto 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail
 }
 
+testsuccess() {
+       if [ "$1" = '--nomsg' ]; then
+               shift
+       else
+               msgtest 'Test for successful execution of' "$*"
+       fi
+       local OUTPUT=$(mktemp)
+       addtrap "rm $OUTPUT;"
+       if $@ >${OUTPUT} 2>&1; then
+               msgpass
+       else
+               echo
+               cat $OUTPUT
+               msgfail
+       fi
+}
+
+testfailure() {
+       if [ "$1" = '--nomsg' ]; then
+               shift
+       else
+               msgtest 'Test for failure in  execution of' "$*"
+       fi
+       local OUTPUT=$(mktemp)
+       addtrap "rm $OUTPUT;"
+       if $@ >${OUTPUT} 2>&1; then
+               echo
+               cat $OUTPUT
+               msgfail
+       else
+               msgpass
+       fi
+}
+
 pause() {
        echo "STOPPED execution. Press enter to continue"
        local IGNORE