From: Michael Vogt Date: Fri, 14 Mar 2014 08:02:44 +0000 (+0100) Subject: fix test/integration/test-apt-helper X-Git-Tag: 0.9.16~2 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/83b880c6505a20247239d897b7387bba37942993 fix test/integration/test-apt-helper --- 83b880c6505a20247239d897b7387bba37942993 diff --cc apt-pkg/contrib/fileutl.h index f0569b6fd,35f3ab0f4..278a25742 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@@ -161,10 -162,9 +162,10 @@@ bool CopyFile(FileFd &From,FileFd &To) int GetLock(std::string File,bool Errors = true); bool FileExists(std::string File); bool RealFileExists(std::string File); - bool DirectoryExists(std::string const &Path) __attrib_const; + bool DirectoryExists(std::string const &Path) APT_CONST; bool CreateDirectory(std::string const &Parent, std::string const &Path); time_t GetModificationTime(std::string const &Path); +bool Rename(std::string From, std::string To); std::string GetTempDir(); diff --cc cmdline/apt-helper.cc index e3652d1ee,37279ec28..2c1107d90 --- a/cmdline/apt-helper.cc +++ b/cmdline/apt-helper.cc @@@ -44,26 -40,13 +40,16 @@@ static bool DoDownloadFile(CommandLine Fetcher.Setup(&Stat); std::string download_uri = CmdL.FileList[1]; std::string targetfile = CmdL.FileList[2]; - HashString hash; - new pkgAcqFile(&Fetcher, download_uri, "", 0, "desc", "short-desc", ++ std::string hash; + if (CmdL.FileSize() > 3) - hash = HashString(CmdL.FileList[3]); - new pkgAcqFile(&Fetcher, download_uri, "", 0, "desc", "short-desc", ++ hash = CmdL.FileList[3]; ++ new pkgAcqFile(&Fetcher, download_uri, hash, 0, "desc", "short-desc", "dest-dir-ignored", targetfile); Fetcher.Run(); - if (!FileExists(targetfile)) - { - _error->Error(_("Download Failed")); - return false; - } - if(hash.empty() == false) - { - if(hash.VerifyFile(targetfile) == false) - { - _error->Error(_("HashSum Failed")); - Rename(targetfile, targetfile+".failed"); - return false; - } - } + bool Failed = false; - if (AcquireRun(Fetcher, 0, &Failed, NULL) == false || Failed == false || ++ if (AcquireRun(Fetcher, 0, &Failed, NULL) == false || Failed == true || + FileExists(targetfile) == false) + return _error->Error(_("Download Failed")); return true; } diff --cc test/integration/framework index d9bacef83,00c8f3abc..8e401cb5f --- a/test/integration/framework +++ b/test/integration/framework @@@ -101,7 -95,17 +101,11 @@@ runapt() msgdebug "Executing: ${CCMD}$*${CDEBUG} " local CMD="$1" shift - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@" + case $CMD in + sh|aptitude|*/*) ;; + *) CMD="${BUILDDIRECTORY}/$CMD";; + esac - if [ -f ./aptconfig.conf ]; then - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${LIBRARYPATH} $CMD "$@" - elif [ -f ../aptconfig.conf ]; then - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${LIBRARYPATH} $CMD "$@" - else - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${LIBRARYPATH} $CMD "$@" - fi ++ MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${BUILDDIRECTORY} $CMD "$@" } aptconfig() { runapt apt-config "$@"; } aptcache() { runapt apt-cache "$@"; } diff --cc test/integration/test-apt-helper index 37ed95181,000000000..6505b5956 mode 100755,000000..100755 --- a/test/integration/test-apt-helper +++ b/test/integration/test-apt-helper @@@ -1,37 -1,0 +1,39 @@@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +changetohttpswebserver + +echo "foo" > aptarchive/foo + +msgtest 'apt-file download-file md5sum' +apthelper -qq download-file http://localhost:8080/foo foo2 MD5Sum:d3b07384d113edec49eaa6238ad5ff00 && msgpass || msgfail +testfileequal foo2 'foo' + +msgtest 'apt-file download-file sha1' +apthelper -qq download-file http://localhost:8080/foo foo1 SHA1:f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 && msgpass || msgfail +testfileequal foo1 'foo' + +msgtest 'apt-file download-file sha256' +apthelper -qq download-file http://localhost:8080/foo foo3 SHA256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c && msgpass || msgfail +testfileequal foo3 'foo' + +msgtest 'apt-file download-file no-hash' +apthelper -qq download-file http://localhost:8080/foo foo4 && msgpass || msgfail +testfileequal foo4 'foo' + +msgtest 'apt-file download-file wrong hash' +if ! apthelper -qq download-file http://localhost:8080/foo foo5 MD5Sum:aabbcc 2>&1 2> download.stderr; then + msgpass +else + msgfail +fi - testfileequal download.stderr 'E: HashSum Failed' - testfileequal foo5.failed 'foo' ++testfileequal download.stderr 'E: Failed to fetch http://localhost:8080/foo Hash Sum mismatch ++ ++E: Download Failed' ++testfileequal foo5.FAILED 'foo'