]> git.saurik.com Git - apt.git/blobdiff - test/integration/test-apt-update-transactions
fix file ownership tests to work on kfreebsd
[apt.git] / test / integration / test-apt-update-transactions
index 24733499181aa7e53c82d02e5f5b16e590bc8b20..b325733ac460d502e182c516aebb142253ef0fa2 100755 (executable)
@@ -1,24 +1,64 @@
 #!/bin/sh
 set -e
 
+# ensure that an update will only succeed entirely or not at all
+
 TESTDIR=$(readlink -f $(dirname $0))
 . $TESTDIR/framework
 
 setupenvironment
-configarchitecture "i386"
+configarchitecture 'i386'
 
 insertpackage 'unstable' 'foo' 'all' '1.0'
+insertsource 'unstable' 'foo' 'all' '1.0'
 
 setupaptarchive --no-update
-changetowebserver
 
-# break package file
-cat > aptarchive/dists/unstable/main/binary-i386/Packages <<EOF
+breakfile() {
+       mv "$1" "${1}.bak"
+       cat > "$1" <<EOF
 Package: bar
 EOF
-compressfile aptarchive/dists/unstable/main/binary-i386/Packages '+1hour'
+       compressfile "$1"
+}
+restorefile() {
+       mv "${1}.bak" "$1"
+}
+
+testrun() {
+       # produce an unsigned repository
+       find aptarchive \( -name 'Release.gpg' -o -name 'InRelease' \) -delete
+       testfailure aptget update --no-allow-insecure-repositories
+       testfileequal "$1" "$(listcurrentlistsdirectory)"
+
+       # signed but broken
+       signreleasefiles
+
+       breakfile aptarchive/dists/unstable/main/binary-i386/Packages
+       testfailure aptget update
+       testfileequal "$1" "$(listcurrentlistsdirectory)"
+       restorefile aptarchive/dists/unstable/main/binary-i386/Packages
 
-# ensure that a update will only succeed entirely or not at all
-testfailure aptget update
-testequal "partial" ls rootdir/var/lib/apt/lists
+       breakfile aptarchive/dists/unstable/main/source/Sources
+       testfailure aptget update
+       testfileequal "$1" "$(listcurrentlistsdirectory)"
+       restorefile aptarchive/dists/unstable/main/source/Sources
+}
+
+testsetup() {
+       msgmsg 'Test with no initial data over' "$1"
+       rm -rf rootdir/var/lib/apt/lists
+       mkdir -p rootdir/var/lib/apt/lists/partial
+       listcurrentlistsdirectory > listsdir.lst
+       testrun 'listsdir.lst'
+
+       msgmsg 'Test with initial data over' "$1"
+       testsuccess aptget update
+       listcurrentlistsdirectory > listsdir.lst
+       testrun 'listsdir.lst'
+}
+
+testsetup 'file'
+changetowebserver
+testsetup 'http'