summaryrefslogtreecommitdiff
path: root/test/integration/test-apt-update-rollback
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2014-10-07 01:46:30 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2014-10-07 02:26:58 +0200
commit4dbfe436c60880f2625e4d3a9d0127a83dd6276e (patch)
treec3c947def18cbb02c20aaed2b41336acc8fae7ed /test/integration/test-apt-update-rollback
parent5684f71fa0f6c1b765aa53e22ca3b024c578b9c9 (diff)
display errortext for all Err as well as Ign logs
consistently using Item::Failed in all specializec classes helps setting up some information bits otherwise unset, so some errors had an empty reason as an error. Ign is upgraded to display the error message we ignored to further help in understanding what happens.
Diffstat (limited to 'test/integration/test-apt-update-rollback')
-rwxr-xr-xtest/integration/test-apt-update-rollback101
1 files changed, 50 insertions, 51 deletions
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