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.
fetch this object */
void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
{
fetch this object */
void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
{
if(ErrorText == "")
ErrorText = LookupTag(Message,"Message");
UsedMirror = LookupTag(Message,"UsedMirror");
if(ErrorText == "")
ErrorText = LookupTag(Message,"Message");
UsedMirror = LookupTag(Message,"UsedMirror");
/* This indicates that the file is not available right now but might
be sometime later. If we do a retry cycle then this should be
retried [CDROMs] */
/* This indicates that the file is not available right now but might
be sometime later. If we do a retry cycle then this should be
retried [CDROMs] */
- if (Cnf->LocalOnly == true &&
+ if (Cnf != NULL && Cnf->LocalOnly == true &&
StringToBool(LookupTag(Message,"Transient-Failure"),false) == true)
{
Status = StatIdle;
StringToBool(LookupTag(Message,"Transient-Failure"),false) == true)
{
Status = StatIdle;
+ }
+ else
+ Status = StatIdle;
// report mirror failure back to LP if we actually use a mirror
string FailReason = LookupTag(Message, "FailReason");
// report mirror failure back to LP if we actually use a mirror
string FailReason = LookupTag(Message, "FailReason");
void pkgAcquire::Item::QueueURI(ItemDesc &Item)
{
void pkgAcquire::Item::QueueURI(ItemDesc &Item)
{
- if (access(DestFile.c_str(), R_OK) == 0)
- {
+ if (RealFileExists(DestFile))
changeOwnerAndPermissionOfFile("preparePartialFile", DestFile.c_str(), "_apt", "root", 0600);
changeOwnerAndPermissionOfFile("preparePartialFile", DestFile.c_str(), "_apt", "root", 0600);
- std::cerr << "QUEUE ITEM: " << DestFile << std::endl;
- }
Owner->Enqueue(Item);
}
void pkgAcquire::Item::Dequeue()
Owner->Enqueue(Item);
}
void pkgAcquire::Item::Dequeue()
-void pkgAcqDiffIndex::Failed(string Message,pkgAcquire::MethodConfig * /*Cnf*/)/*{{{*/
+void pkgAcqDiffIndex::Failed(string Message,pkgAcquire::MethodConfig * Cnf)/*{{{*/
{
if(Debug)
std::clog << "pkgAcqDiffIndex failed: " << Desc.URI << " with " << Message << std::endl
{
if(Debug)
std::clog << "pkgAcqDiffIndex failed: " << Desc.URI << " with " << Message << std::endl
new pkgAcqIndex(Owner, TransactionManager, Target, ExpectedHashes, MetaIndexParser);
new pkgAcqIndex(Owner, TransactionManager, Target, ExpectedHashes, MetaIndexParser);
+ Item::Failed(Message,Cnf);
}
/*}}}*/
void pkgAcqDiffIndex::Done(string Message,unsigned long long Size,HashStringList const &Hashes, /*{{{*/
}
/*}}}*/
void pkgAcqDiffIndex::Done(string Message,unsigned long long Size,HashStringList const &Hashes, /*{{{*/
}
if(!ParseDiffIndex(DestFile))
}
if(!ParseDiffIndex(DestFile))
- return Failed("", NULL);
+ return Failed("Message: Couldn't parse pdiff index", Cnf);
// queue for final move
string FinalFile;
// queue for final move
string FinalFile;
if(!FileExists(FinalFile))
{
if(!FileExists(FinalFile))
{
- Failed("No FinalFile " + FinalFile + " available", NULL);
+ Failed("Message: No FinalFile " + FinalFile + " available", NULL);
// error checking and falling back if no patch was found
if(available_patches.empty() == true)
{
// error checking and falling back if no patch was found
if(available_patches.empty() == true)
{
- Failed("No patches available", NULL);
+ Failed("Message: No patches available", NULL);
QueueURI(Desc);
}
/*}}}*/
QueueURI(Desc);
}
/*}}}*/
-void pkgAcqIndexMergeDiffs::Failed(string Message,pkgAcquire::MethodConfig * /*Cnf*/)/*{{{*/
+void pkgAcqIndexMergeDiffs::Failed(string Message,pkgAcquire::MethodConfig * Cnf)/*{{{*/
{
if(Debug)
std::clog << "pkgAcqIndexMergeDiffs failed: " << Desc.URI << " with " << Message << std::endl;
{
if(Debug)
std::clog << "pkgAcqIndexMergeDiffs failed: " << Desc.URI << " with " << Message << std::endl;
+
+ Item::Failed(Message,Cnf);
// check if we are the first to fail, otherwise we are done here
State = StateDoneDiff;
// check if we are the first to fail, otherwise we are done here
State = StateDoneDiff;
Stage = STAGE_DECOMPRESS_AND_VERIFY;
Desc.URI = "copy:" + FileName;
QueueURI(Desc);
Stage = STAGE_DECOMPRESS_AND_VERIFY;
Desc.URI = "copy:" + FileName;
QueueURI(Desc);
+ SetActiveSubprocess("copy");
DestFile += ".decomp";
Desc.URI = decompProg + ":" + FileName;
QueueURI(Desc);
DestFile += ".decomp";
Desc.URI = decompProg + ":" + FileName;
QueueURI(Desc);
SetActiveSubprocess(decompProg);
}
/*}}}*/
SetActiveSubprocess(decompProg);
}
/*}}}*/
+ Item::Failed(Message,Cnf);
+
// FIXME: this is used often (e.g. in pkgAcqIndexTrans) so refactor
if (Cnf->LocalOnly == true ||
StringToBool(LookupTag(Message,"Transient-Failure"),false) == false)
{
// Ignore this
Status = StatDone;
// FIXME: this is used often (e.g. in pkgAcqIndexTrans) so refactor
if (Cnf->LocalOnly == true ||
StringToBool(LookupTag(Message,"Transient-Failure"),false) == false)
{
// Ignore this
Status = StatDone;
- Complete = false;
- Dequeue();
- return;
-
- Item::Failed(Message,Cnf);
}
/*}}}*/
// AcqMetaBase::Add - Add a item to the current Transaction /*{{{*/
}
/*}}}*/
// AcqMetaBase::Add - Add a item to the current Transaction /*{{{*/
} else {
_error->Error("%s", downgrade_msg.c_str());
Rename(MetaIndexFile, MetaIndexFile+".FAILED");
} else {
_error->Error("%s", downgrade_msg.c_str());
Rename(MetaIndexFile, MetaIndexFile+".FAILED");
- Status = pkgAcquire::Item::StatError;
+ Item::Failed("Message: " + downgrade_msg, Cnf);
TransactionManager->AbortTransaction();
return;
}
TransactionManager->AbortTransaction();
return;
}
_error->Warning("Use --allow-insecure-repositories to force the update");
}
_error->Warning("Use --allow-insecure-repositories to force the update");
}
+ Item::Failed(Message,Cnf);
+
// FIXME: this is used often (e.g. in pkgAcqIndexTrans) so refactor
// FIXME: this is used often (e.g. in pkgAcqIndexTrans) so refactor
- if (Cnf->LocalOnly == true ||
+ if (Cnf->LocalOnly == true ||
StringToBool(LookupTag(Message,"Transient-Failure"),false) == false)
StringToBool(LookupTag(Message,"Transient-Failure"),false) == false)
// Ignore this
Status = StatDone;
// Ignore this
Status = StatDone;
- Complete = false;
- Dequeue();
- return;
- Item::Failed(Message,Cnf);
}
/*}}}*/
pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcquire *Owner, /*{{{*/
}
/*}}}*/
pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcquire *Owner, /*{{{*/
}
/*}}}*/
// pkgAcqMetaIndex::Failed - no Release file present /*{{{*/
}
/*}}}*/
// pkgAcqMetaIndex::Failed - no Release file present /*{{{*/
-void pkgAcqMetaIndex::Failed(string /*Message*/,
- pkgAcquire::MethodConfig * /*Cnf*/)
+void pkgAcqMetaIndex::Failed(string Message,
+ pkgAcquire::MethodConfig * Cnf)
+ pkgAcquire::Item::Failed(Message, Cnf);
+ Status = StatDone;
+
string FinalFile = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI);
_error->Warning(_("The repository '%s' does not have a Release file. "
string FinalFile = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI);
_error->Warning(_("The repository '%s' does not have a Release file. "
/*}}}*/
void pkgAcqMetaClearSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/
{
/*}}}*/
void pkgAcqMetaClearSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/
{
+ Item::Failed(Message, Cnf);
+
// we failed, we will not get additional items from this method
ExpectedAdditionalItems = 0;
// we failed, we will not get additional items from this method
ExpectedAdditionalItems = 0;
string FinalFile = _config->FindDir("Dir::State::lists");
FinalFile.append(URItoFileName(RealURI));
TransactionManager->TransactionStageRemoval(this, FinalFile);
string FinalFile = _config->FindDir("Dir::State::lists");
FinalFile.append(URItoFileName(RealURI));
TransactionManager->TransactionStageRemoval(this, FinalFile);
new pkgAcqMetaIndex(Owner, TransactionManager,
MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc,
MetaSigURI, MetaSigURIDesc, MetaSigShortDesc,
IndexTargets, MetaIndexParser);
new pkgAcqMetaIndex(Owner, TransactionManager,
MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc,
MetaSigURI, MetaSigURIDesc, MetaSigShortDesc,
IndexTargets, MetaIndexParser);
- if (Cnf->LocalOnly == true ||
- StringToBool(LookupTag(Message, "Transient-Failure"), false) == false)
- Dequeue();
// only allow going further if the users explicitely wants it
if(_config->FindB("Acquire::AllowInsecureRepositories") == true)
{
// only allow going further if the users explicitely wants it
if(_config->FindB("Acquire::AllowInsecureRepositories") == true)
{
/* Always move the meta index, even if gpgv failed. This ensures
* that PackageFile objects are correctly filled in */
/* Always move the meta index, even if gpgv failed. This ensures
* that PackageFile objects are correctly filled in */
- if (FileExists(DestFile))
+ if (FileExists(DestFile))
{
string FinalFile = _config->FindDir("Dir::State::lists");
FinalFile += URItoFileName(RealURI);
{
string FinalFile = _config->FindDir("Dir::State::lists");
FinalFile += URItoFileName(RealURI);
"Release");
FinalFile = FinalFile.replace(FinalFile.rfind("InRelease"), 9,
"Release");
"Release");
FinalFile = FinalFile.replace(FinalFile.rfind("InRelease"), 9,
"Release");
// Done, queue for rename on transaction finished
TransactionManager->TransactionStageCopy(this, DestFile, FinalFile);
}
QueueIndexes(false);
} else {
// Done, queue for rename on transaction finished
TransactionManager->TransactionStageCopy(this, DestFile, FinalFile);
}
QueueIndexes(false);
} else {
- // warn if the repository is unsinged
+ // warn if the repository is unsigned
_error->Warning("Use --allow-insecure-repositories to force the update");
TransactionManager->AbortTransaction();
Status = StatError;
_error->Warning("Use --allow-insecure-repositories to force the update");
TransactionManager->AbortTransaction();
Status = StatError;
if (Itm.Owner->Status == pkgAcquire::Item::StatDone)
{
cout << _("Ign ") << Itm.Description << endl;
if (Itm.Owner->Status == pkgAcquire::Item::StatDone)
{
cout << _("Ign ") << Itm.Description << endl;
+ if (Itm.Owner->ErrorText.empty() == false)
+ cout << " " << Itm.Owner->ErrorText << endl;
aptftparchive -qq generate ftparchive.conf
cd - > /dev/null
msgdone "info"
aptftparchive -qq generate ftparchive.conf
cd - > /dev/null
msgdone "info"
+ generatereleasefiles "$@"
}
buildaptarchivefromfiles() {
}
buildaptarchivefromfiles() {
+ local NOUPDATE=0
+ if [ "$1" = '--no-update' ]; then
+ NOUPDATE=1
+ shift
+ fi
+ buildaptarchive "$@"
if [ -e aptarchive/dists ]; then
setupdistsaptarchive
else
setupflataptarchive
fi
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
}
testsuccess aptget update -o Debug::pkgAcquire::Worker=true -o Debug::Acquire::gpgv=true
fi
}
# update without authenticated files leads to warning
testequal "Ign file: unstable InRelease
# update without authenticated files leads to warning
testequal "Ign file: unstable InRelease
Err file: unstable Release
Err file: unstable Release
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: 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
E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update
# allow override
testequal "Ign file: unstable InRelease
# allow override
testequal "Ign file: unstable InRelease
Ign file: unstable Release
Ign file: unstable Release
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
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
runtest
msgmsg "Release/Release.gpg"
runtest
msgmsg "Release/Release.gpg"
-# with Release/Release.gpg
+# with Release/Release.gpg
EXPECT="Ign http://localhost:8080 unstable InRelease
EXPECT="Ign http://localhost:8080 unstable InRelease
Hit http://localhost:8080 unstable Release
Hit http://localhost:8080 unstable Release.gpg
Hit http://localhost:8080 unstable/main Sources
Hit http://localhost:8080 unstable Release
Hit http://localhost:8080 unstable Release.gpg
Hit http://localhost:8080 unstable/main Sources
# no Release.gpg or InRelease
msgmsg "Release only"
EXPECT="Ign http://localhost:8080 unstable InRelease
# no Release.gpg or InRelease
msgmsg "Release only"
EXPECT="Ign http://localhost:8080 unstable InRelease
Hit http://localhost:8080 unstable Release
Ign http://localhost:8080 unstable Release.gpg
Hit http://localhost:8080 unstable Release
Ign http://localhost:8080 unstable Release.gpg
Hit http://localhost:8080 unstable/main Sources
Hit http://localhost:8080 unstable/main amd64 Packages
Hit http://localhost:8080 unstable/main Translation-en
Hit http://localhost:8080 unstable/main Sources
Hit http://localhost:8080 unstable/main amd64 Packages
Hit http://localhost:8080 unstable/main Translation-en
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>
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
W: Some index files failed to download. They have been ignored, or old ones used instead." aptget update -qq
insertpackage 'unstable' 'old' 'all' '1.0'
insertpackage 'unstable' 'old' 'all' '1.0'
+ setupaptarchive --no-update
}
add_new_package() {
insertpackage "unstable" "new" "all" "1.0"
insertsource "unstable" "new" "all" "1.0"
}
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() {
}
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() {
+ testsuccess aptget update
testequal "old/unstable 1.0 all" apt list -q
testequal "old/unstable 1.0 all" apt list -q
+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
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() {
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_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
# test the error condition
testequal "W: Failed to fetch file:${APTARCHIVE}/dists/unstable/main/source/Sources Hash Sum mismatch
testequal "E: Unable to locate package new" aptget install new -s -qq
}
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
rm $APTARCHIVE/dists/unstable/InRelease
rm $APTARCHIVE/dists/unstable/Release.gpg
# update fails
testequal "E: The repository 'file: unstable Release.gpg' is no longer signed." aptget update -qq
# update fails
testequal "E: The repository 'file: unstable Release.gpg' is no longer signed." aptget update -qq
testfailure ls $ROOTDIR/var/lib/apt/lists/*_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
rm $APTARCHIVE/dists/unstable/InRelease
rm $APTARCHIVE/dists/unstable/Release.gpg
- 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
# ensure error
testequal "E: The repository 'file: unstable Release.gpg' is no longer signed." aptget update -qq # -o Debug::acquire::transaction=1
}
test_unauthenticated_to_invalid_inrelease() {
}
test_unauthenticated_to_invalid_inrelease() {
- msgmsg "Test UnAuthenticated to invalid InRelease reverts everything"
+ msgmsg 'Test UnAuthenticated to invalid InRelease reverts everything'
- rm -rf rootdir/var/lib/apt/lists/*
rm $APTARCHIVE/dists/unstable/InRelease
rm $APTARCHIVE/dists/unstable/Release.gpg
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
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
# 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
testequal "W: Failed to fetch file:$APTARCHIVE/dists/unstable/main/source/Sources Hash Sum mismatch
}
test_inrelease_to_unauth_inrelease() {
}
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
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
W: Some index files failed to download. They have been ignored, or old ones used instead." aptget update -qq
test_inrelease_to_broken_gzip() {
msgmsg "Test InRelease to broken gzip"
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
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
rm $APTARCHIVE/dists/unstable/main/source/Sources
testfailure aptget update
}
testfailure aptget update
}
APTARCHIVE_LISTS="$(echo $APTARCHIVE | tr "/" "_" )"
# test the following cases:
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
# - 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
# - unauthenticated -> invalid InRelease
# stuff to do:
# - unauthenticated -> invalid InRelease
# stuff to do:
# - gzip-index tests
test_inrelease_to_new_inrelease
test_inrelease_to_broken_hash_reverts_all
# - 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
test_unauthenticated_to_invalid_inrelease
test_inrelease_to_unauth_inrelease
test_inrelease_to_broken_gzip
testaptgetupdate() {
rm -rf rootdir/var/lib/apt
aptget update 2>> testaptgetupdate.diff >> testaptgetupdate.diff || true
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 $*"
GIVEN="$1"
shift
msgtest "Test for correctness of" "apt-get update with $*"