]> git.saurik.com Git - apt.git/commitdiff
ensure that tempfiles used for comparision are removed
authorDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 20 Jan 2011 15:02:15 +0000 (16:02 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 20 Jan 2011 15:02:15 +0000 (16:02 +0100)
test/integration/framework

index cb3fca35dad6c489ee658245b0869b5580f3f020..f55cfddfab854ce6b1bb51bf9f0450d8a32ef985 100644 (file)
@@ -92,6 +92,11 @@ aptitude() {
        fi
 }
 
+addtrap() {
+       CURRENTTRAP="$CURRENTTRAP $1"
+       trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+}
+
 setupenvironment() {
        TMPWORKINGDIRECTORY=$(mktemp -d)
        local TESTDIR=$(readlink -f $(dirname $0))
@@ -99,8 +104,7 @@ setupenvironment() {
        BUILDDIRECTORY="${TESTDIR}/../../build/bin"
        test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first"
        local OLDWORKINGDIRECTORY=$(pwd)
-       CURRENTTRAP="cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY"
-       trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+       addtrap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY;"
        cd $TMPWORKINGDIRECTORY
        mkdir rootdir aptarchive keys
        cd rootdir
@@ -469,8 +473,7 @@ signreleasefiles() {
 changetowebserver() {
        if which weborf > /dev/null; then
                weborf -xb aptarchive/ 2>&1 > /dev/null &
-               CURRENTTRAP="kill $!; $CURRENTTRAP"
-               trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+               addtrap "kill $!;"
                local APTARCHIVE="file://$(readlink -f ./aptarchive)"
                for LIST in $(find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list'); do
                        sed -i $LIST -e "s#$APTARCHIVE#http://localhost:8080/#"
@@ -504,17 +507,18 @@ testfileequal() {
 
 testequal() {
        local COMPAREFILE=$(mktemp)
+       addtrap "rm $COMPAREFILE;"
        echo "$1" > $COMPAREFILE
        shift
        msgtest "Test for equality of" "$*"
        $* 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail
-       rm $COMPAREFILE
 }
 
 testequalor2() {
        local COMPAREFILE1=$(mktemp)
        local COMPAREFILE2=$(mktemp)
        local COMPAREAGAINST=$(mktemp)
+       addtrap "rm $COMPAREFILE1 $COMPAREFILE2 $COMPAREAGAINST;"
        echo "$1" > $COMPAREFILE1
        echo "$2" > $COMPAREFILE2
        shift 2
@@ -525,7 +529,6 @@ testequalor2() {
                ( echo "\n${CINFO}Diff against OR 1${CNORMAL}" "$(checkdiff $COMPAREFILE1 $COMPAREAGAINST)" \
                       "\n${CINFO}Diff against OR 2${CNORMAL}" "$(checkdiff $COMPAREFILE2 $COMPAREAGAINST)" &&
                  msgfail )
-       rm $COMPAREFILE1 $COMPAREFILE2 $COMPAREAGAINST
 }
 
 testshowvirtual() {
@@ -542,11 +545,11 @@ N: Can't select versions from package '$1' as it purely virtual"
        VIRTUAL="${VIRTUAL}
 N: No packages found"
        local COMPAREFILE=$(mktemp)
+       addtrap "rm $COMPAREFILE;"
        local ARCH=$(dpkg-architecture -qDEB_HOST_ARCH_CPU)
        eval `apt-config shell ARCH APT::Architecture`
        echo "$VIRTUAL" | sed -e "s/:$ARCH//" -e 's/:all//' > $COMPAREFILE
        aptcache show -q=0 $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail
-       rm $COMPAREFILE
 }
 
 testnopackage() {