summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/integration/framework13
-rwxr-xr-xtest/integration/test-apt-get-update-unauth-warning7
-rwxr-xr-xtest/integration/test-apt-update-ims5
-rwxr-xr-xtest/integration/test-apt-update-nofallback2
-rwxr-xr-xtest/integration/test-apt-update-rollback101
-rwxr-xr-xtest/integration/test-bug-595691-empty-and-broken-archive-files2
6 files changed, 70 insertions, 60 deletions
diff --git a/test/integration/framework b/test/integration/framework
index 688a1abf2..29e5fafe6 100644
--- a/test/integration/framework
+++ b/test/integration/framework
@@ -715,7 +715,7 @@ buildaptarchivefromincoming() {
aptftparchive -qq generate ftparchive.conf
cd - > /dev/null
msgdone "info"
- generatereleasefiles
+ generatereleasefiles "$@"
}
buildaptarchivefromfiles() {
@@ -830,14 +830,19 @@ setupflataptarchive() {
}
setupaptarchive() {
- buildaptarchive
+ local NOUPDATE=0
+ if [ "$1" = '--no-update' ]; then
+ NOUPDATE=1
+ shift
+ fi
+ buildaptarchive "$@"
if [ -e aptarchive/dists ]; then
setupdistsaptarchive
else
setupflataptarchive
fi
- signreleasefiles
- if [ "$1" != '--no-update' ]; then
+ signreleasefiles 'Joe Sixpack' "$@"
+ if [ "1" != "$NOUPDATE" ]; then
testsuccess aptget update -o Debug::pkgAcquire::Worker=true -o Debug::Acquire::gpgv=true
fi
}
diff --git a/test/integration/test-apt-get-update-unauth-warning b/test/integration/test-apt-get-update-unauth-warning
index 27160b5f9..8e212a3c4 100755
--- a/test/integration/test-apt-get-update-unauth-warning
+++ b/test/integration/test-apt-get-update-unauth-warning
@@ -20,11 +20,12 @@ rm -f $APTARCHIVE/dists/unstable/*Release*
# update without authenticated files leads to warning
testequal "Ign file: unstable InRelease
+ File not found
Err file: unstable Release
-
+ File not found
W: The repository 'file: unstable Release' does not have a Release file. This is deprecated, please contact the owner of the repository.
W: Use --allow-insecure-repositories to force the update
-W: Failed to fetch file:$APTARCHIVE/dists/unstable/Release
+W: Failed to fetch file:$APTARCHIVE/dists/unstable/Release File not found
E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update
@@ -34,7 +35,9 @@ testequal "partial" ls rootdir/var/lib/apt/lists
# allow override
testequal "Ign file: unstable InRelease
+ File not found
Ign file: unstable Release
+ File not found
Reading package lists...
W: The repository 'file: unstable Release' does not have a Release file. This is deprecated, please contact the owner of the repository." aptget update --allow-insecure-repositories
# ensure we can not install the package
diff --git a/test/integration/test-apt-update-ims b/test/integration/test-apt-update-ims
index 61b808b0f..8aa5a7262 100755
--- a/test/integration/test-apt-update-ims
+++ b/test/integration/test-apt-update-ims
@@ -44,8 +44,9 @@ echo "Acquire::GzipIndexes "1";" > rootdir/etc/apt/apt.conf.d/02compressindex
runtest
msgmsg "Release/Release.gpg"
-# with Release/Release.gpg
+# with Release/Release.gpg
EXPECT="Ign http://localhost:8080 unstable InRelease
+ 404 Not Found
Hit http://localhost:8080 unstable Release
Hit http://localhost:8080 unstable Release.gpg
Hit http://localhost:8080 unstable/main Sources
@@ -65,8 +66,10 @@ runtest
# no Release.gpg or InRelease
msgmsg "Release only"
EXPECT="Ign http://localhost:8080 unstable InRelease
+ 404 Not Found
Hit http://localhost:8080 unstable Release
Ign http://localhost:8080 unstable Release.gpg
+ 404 Not Found
Hit http://localhost:8080 unstable/main Sources
Hit http://localhost:8080 unstable/main amd64 Packages
Hit http://localhost:8080 unstable/main Translation-en
diff --git a/test/integration/test-apt-update-nofallback b/test/integration/test-apt-update-nofallback
index c400dcc36..321472c2e 100755
--- a/test/integration/test-apt-update-nofallback
+++ b/test/integration/test-apt-update-nofallback
@@ -161,7 +161,7 @@ test_inrelease_to_invalid_inrelease()
testequal "W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: file: unstable InRelease: The following signatures were invalid: BADSIG 5A90D141DBAC8DAE Joe Sixpack (APT Testcases Dummy) <joe@example.org>
-W: Failed to fetch file:${APTARCHIVE}/dists/unstable/InRelease
+W: Failed to fetch file:${APTARCHIVE}/dists/unstable/InRelease The following signatures were invalid: BADSIG 5A90D141DBAC8DAE Joe Sixpack (APT Testcases Dummy) <joe@example.org>
W: Some index files failed to download. They have been ignored, or old ones used instead." aptget update -qq
diff --git a/test/integration/test-apt-update-rollback b/test/integration/test-apt-update-rollback
index ee8bc6926..5b9c200fe 100755
--- a/test/integration/test-apt-update-rollback
+++ b/test/integration/test-apt-update-rollback
@@ -19,44 +19,44 @@ create_fresh_archive()
insertpackage 'unstable' 'old' 'all' '1.0'
- setupaptarchive
+ setupaptarchive --no-update
}
add_new_package() {
insertpackage "unstable" "new" "all" "1.0"
insertsource "unstable" "new" "all" "1.0"
- setupaptarchive --no-update
-
- avoid_ims_hit
+ setupaptarchive --no-update "$@"
}
break_repository_sources_index() {
- printf "xxx" > $APTARCHIVE/dists/unstable/main/source/Sources
- gzip -c $APTARCHIVE/dists/unstable/main/source/Sources > \
- $APTARCHIVE/dists/unstable/main/source/Sources.gz
- avoid_ims_hit
+ printf 'xxx' > $APTARCHIVE/dists/unstable/main/source/Sources
+ compressfile "$APTARCHIVE/dists/unstable/main/source/Sources" "$@"
}
-test_inrelease_to_new_inrelease() {
- msgmsg "Test InRelease to new InRelease works fine"
+start_with_good_inrelease() {
create_fresh_archive
+ testsuccess aptget update
testequal "old/unstable 1.0 all" apt list -q
+}
- add_new_package
+test_inrelease_to_new_inrelease() {
+ msgmsg 'Test InRelease to new InRelease works fine'
+ start_with_good_inrelease
+ add_new_package '+1hour'
testsuccess aptget update -o Debug::Acquire::Transaction=1
-
testequal "new/unstable 1.0 all
old/unstable 1.0 all" apt list -q
}
test_inrelease_to_broken_hash_reverts_all() {
- msgmsg "Test InRelease to broken InRelease reverts everything"
- create_fresh_archive
- add_new_package
+ msgmsg 'Test InRelease to broken InRelease reverts everything'
+ start_with_good_inrelease
+
+ add_new_package '+1hour'
# break the Sources file
- break_repository_sources_index
+ break_repository_sources_index '+1hour'
# test the error condition
testequal "W: Failed to fetch file:${APTARCHIVE}/dists/unstable/main/source/Sources Hash Sum mismatch
@@ -66,14 +66,14 @@ E: Some index files failed to download. They have been ignored, or old ones used
testequal "E: Unable to locate package new" aptget install new -s -qq
}
-test_inreleae_to_valid_release() {
- msgmsg "Test InRelease to valid Release"
- create_fresh_archive
- add_new_package
- # switch to a unsinged repo now
+test_inrelease_to_valid_release() {
+ msgmsg 'Test InRelease to valid Release'
+ start_with_good_inrelease
+
+ add_new_package '+1hour'
+ # switch to a unsigned repo now
rm $APTARCHIVE/dists/unstable/InRelease
rm $APTARCHIVE/dists/unstable/Release.gpg
- avoid_ims_hit
# update fails
testequal "E: The repository 'file: unstable Release.gpg' is no longer signed." aptget update -qq
@@ -85,16 +85,17 @@ test_inreleae_to_valid_release() {
testfailure ls $ROOTDIR/var/lib/apt/lists/*_Release
}
-test_inreleae_to_release_reverts_all() {
- msgmsg "Test InRelease to broken Release reverts everything"
- create_fresh_archive
+test_inrelease_to_release_reverts_all() {
+ msgmsg 'Test InRelease to broken Release reverts everything'
+ start_with_good_inrelease
- # switch to a unsinged repo now
- add_new_package
+ # switch to a unsigned repo now
+ add_new_package '+1hour'
rm $APTARCHIVE/dists/unstable/InRelease
rm $APTARCHIVE/dists/unstable/Release.gpg
+
# break it
- break_repository_sources_index
+ break_repository_sources_index '+1hour'
# ensure error
testequal "E: The repository 'file: unstable Release.gpg' is no longer signed." aptget update -qq # -o Debug::acquire::transaction=1
@@ -107,21 +108,19 @@ test_inreleae_to_release_reverts_all() {
}
test_unauthenticated_to_invalid_inrelease() {
- msgmsg "Test UnAuthenticated to invalid InRelease reverts everything"
+ msgmsg 'Test UnAuthenticated to invalid InRelease reverts everything'
create_fresh_archive
- rm -rf rootdir/var/lib/apt/lists/*
rm $APTARCHIVE/dists/unstable/InRelease
rm $APTARCHIVE/dists/unstable/Release.gpg
- avoid_ims_hit
-
- testsuccess aptget update -qq --allow-insecure-repositories
+
+ testsuccess aptget update --allow-insecure-repositories
testequal "WARNING: The following packages cannot be authenticated!
old
E: There are problems and -y was used without --force-yes" aptget install -qq -y old
-
+
# go to authenticated but not correct
- add_new_package
- break_repository_sources_index
+ add_new_package '+1hour'
+ break_repository_sources_index '+1hour'
testequal "W: Failed to fetch file:$APTARCHIVE/dists/unstable/main/source/Sources Hash Sum mismatch
@@ -134,14 +133,14 @@ E: There are problems and -y was used without --force-yes" aptget install -qq -y
}
test_inrelease_to_unauth_inrelease() {
- msgmsg "Test InRelease to InRelease without sig"
- create_fresh_archive
- signreleasefiles 'Marvin Paranoid'
- avoid_ims_hit
-
+ msgmsg 'Test InRelease to InRelease without good sig'
+ start_with_good_inrelease
+
+ signreleasefiles 'Marvin Paranoid' '+1hour'
+
testequal "W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: file: unstable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E8525D47528144E2
-W: Failed to fetch file:$APTARCHIVE/dists/unstable/InRelease
+W: Failed to fetch file:$APTARCHIVE/dists/unstable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E8525D47528144E2
W: Some index files failed to download. They have been ignored, or old ones used instead." aptget update -qq
@@ -150,13 +149,13 @@ W: Some index files failed to download. They have been ignored, or old ones used
test_inrelease_to_broken_gzip() {
msgmsg "Test InRelease to broken gzip"
- create_fresh_archive
- # append junk at the end of the gzip, this
+ start_with_good_inrelease
+
+ # append junk at the end of the compressed file
echo "lala" >> $APTARCHIVE/dists/unstable/main/source/Sources.gz
- # remove uncompressed file, otherwise apt will just fallback fetching
- # that
+ touch -d '+2min' $APTARCHIVE/dists/unstable/main/source/Sources.gz
+ # remove uncompressed file to avoid fallback
rm $APTARCHIVE/dists/unstable/main/source/Sources
- avoid_ims_hit
testfailure aptget update
}
@@ -174,7 +173,7 @@ ROOTDIR=${TMPWORKINGDIRECTORY}/rootdir
APTARCHIVE_LISTS="$(echo $APTARCHIVE | tr "/" "_" )"
# test the following cases:
-# - InRelease -> broken InRelease revert to previous state
+# - InRelease -> broken InRelease revert to previous state
# - empty lists dir and broken remote leaves nothing on the system
# - InRelease -> hashsum mismatch for one file reverts all files to previous state
# - Release/Release.gpg -> hashsum mismatch
@@ -184,13 +183,13 @@ APTARCHIVE_LISTS="$(echo $APTARCHIVE | tr "/" "_" )"
# - unauthenticated -> invalid InRelease
# stuff to do:
-# - ims-hit
+# - ims-hit
# - gzip-index tests
test_inrelease_to_new_inrelease
test_inrelease_to_broken_hash_reverts_all
-test_inreleae_to_valid_release
-test_inreleae_to_release_reverts_all
+test_inrelease_to_valid_release
+test_inrelease_to_release_reverts_all
test_unauthenticated_to_invalid_inrelease
test_inrelease_to_unauth_inrelease
test_inrelease_to_broken_gzip
diff --git a/test/integration/test-bug-595691-empty-and-broken-archive-files b/test/integration/test-bug-595691-empty-and-broken-archive-files
index 683c174bd..fedf82c92 100755
--- a/test/integration/test-bug-595691-empty-and-broken-archive-files
+++ b/test/integration/test-bug-595691-empty-and-broken-archive-files
@@ -13,7 +13,7 @@ setupflataptarchive
testaptgetupdate() {
rm -rf rootdir/var/lib/apt
aptget update 2>> testaptgetupdate.diff >> testaptgetupdate.diff || true
- sed -i -e '/Ign / d' -e '/Release/ d' -e 's#Get:[0-9]\+ #Get: #' -e 's#\[[0-9]* [kMGTPY]*B\]#\[\]#' testaptgetupdate.diff
+ sed -i -e '/Ign /,+1d' -e '/Release/ d' -e 's#Get:[0-9]\+ #Get: #' -e 's#\[[0-9]* [kMGTPY]*B\]#\[\]#' testaptgetupdate.diff
GIVEN="$1"
shift
msgtest "Test for correctness of" "apt-get update with $*"