X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/cad1877559f3e1703c3fea4d081978e1b4bb4a0e..561a3557e7fa6c4ed693c3bb486d189a468a8080:/test/integration/test-apt-helper diff --git a/test/integration/test-apt-helper b/test/integration/test-apt-helper index c1c193c5c..81c52465d 100755 --- a/test/integration/test-apt-helper +++ b/test/integration/test-apt-helper @@ -35,13 +35,13 @@ test_apt_helper_download() { testfailure --nomsg apthelper -qq download-file "${1}/foo" './downloaded/foo5' 'MD5Sum:aabbcc' testfileequal rootdir/tmp/testfailure.output "E: Failed to fetch ${1}/foo Hash Sum mismatch Hashes of expected file: - - MD5Sum:aabbcc + - MD5Sum:aabbcc [weak] Hashes of received file: - SHA512:0cf9180a764aba863a67b6d72f0918bc131c6772642cb2dce5a34f0a702f9470ddc2bf125c12198b1995c233c34b4afd346c54a2334c350a948a51b6e8b4e6b6 - SHA256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c - - SHA1:f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 - - MD5Sum:d3b07384d113edec49eaa6238ad5ff00 - - Checksum-FileSize:4 + - SHA1:f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 [weak] + - MD5Sum:d3b07384d113edec49eaa6238ad5ff00 [weak] + - Checksum-FileSize:4 [weak] Last modification reported: $(lastmodification 'aptarchive/foo') E: Download Failed" testfileequal ./downloaded/foo5.FAILED 'foo' @@ -53,7 +53,7 @@ E: Download Failed" - SHA256:aabbcc Hashes of received file: - SHA256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c - - Checksum-FileSize:4 + - Checksum-FileSize:4 [weak] Last modification reported: $(lastmodification 'aptarchive/foo') E: Download Failed" testfileequal './downloaded/foo6.FAILED' 'foo' @@ -71,44 +71,43 @@ E: Download Failed" testfileequal './downloaded/foo10' 'bar' } +setupproxydetect() { + local METH="$1" + shift + { + echo '#!/bin/sh -e' + echo "$@" + } > "${TMPWORKINGDIRECTORY}/apt-proxy-detect" + chmod 755 "${TMPWORKINGDIRECTORY}/apt-proxy-detect" + echo "Acquire::${METH}::Proxy-Auto-Detect \"${TMPWORKINGDIRECTORY}/apt-proxy-detect\";" > rootdir/etc/apt/apt.conf.d/02proxy-detect +} + test_apt_helper_detect_proxy() { - # no proxy + msgmsg 'apt-helper auto-detect-proxy' 'no proxy' testsuccessequal "Using proxy '' for URL 'http://example.com/'" apthelper auto-detect-proxy http://example.com/ - cat > apt-proxy-detect <<'EOF' -#!/bin/sh -e -exit 0 -EOF - chmod 755 apt-proxy-detect - echo "Acquire::http::Proxy-Auto-Detect \"$(pwd)/apt-proxy-detect\";" > rootdir/etc/apt/apt.conf.d/02proxy-detect - testsuccessequal "Using proxy '' for URL 'http://www.example.com/'" apthelper auto-detect-proxy http://www.example.com - - # http auto detect proxy script - cat > apt-proxy-detect <<'EOF' -#!/bin/sh -e -echo "http://some-proxy" -EOF - chmod 755 apt-proxy-detect - echo "Acquire::http::Proxy-Auto-Detect \"$(pwd)/apt-proxy-detect\";" > rootdir/etc/apt/apt.conf.d/02proxy-detect - + setupproxydetect 'http' 'exit 0' + testsuccessequal "Using proxy '' for URL 'http://example.com/'" apthelper auto-detect-proxy http://example.com/ + setupproxydetect 'http' 'exit 1' + testfailureequal 'E: Sub-process ProxyAutoDetect returned an error code (1)' apthelper auto-detect-proxy http://example.com/ + setupproxydetect 'http' 'echo' + testwarningequal "Using proxy '' for URL 'http://example.com/' +W: ProxyAutoDetect command returned an empty line" apthelper auto-detect-proxy http://example.com/ + setupproxydetect 'http' 'echo DIRECT' + testsuccessequal "Using proxy 'DIRECT' for URL 'http://example.com/'" apthelper auto-detect-proxy http://example.com/ + + msgmsg 'apt-helper auto-detect-proxy' 'http proxy' + setupproxydetect 'http' 'echo "http://some-proxy"' testsuccessequal "Using proxy 'http://some-proxy' for URL 'http://www.example.com/'" apthelper auto-detect-proxy http://www.example.com - - # https auto detect proxy script - cat > apt-proxy-detect <<'EOF' -#!/bin/sh -e -echo "https://https-proxy" -EOF - chmod 755 apt-proxy-detect - echo "Acquire::https::Proxy-Auto-Detect \"$(pwd)/apt-proxy-detect\";" > rootdir/etc/apt/apt.conf.d/02proxy-detect - + msgmsg 'apt-helper auto-detect-proxy' 'https proxy' + setupproxydetect 'https' 'echo "https://https-proxy"' testsuccessequal "Using proxy 'https://https-proxy' for URL 'https://ssl.example.com/'" apthelper auto-detect-proxy https://ssl.example.com } test_apt_helper_download "http://localhost:${APTHTTPPORT}" test_apt_helper_download "https://localhost:${APTHTTPSPORT}" test_apt_helper_detect_proxy - -# test failure modes +msgmsg 'test various failure modes' testfailureequal 'E: Invalid operation download' apthelper download testfailureequal 'E: Must specify at least one pair url/filename' apthelper download-file testfailureequal 'E: Must specify at least one pair url/filename' apthelper download-file 'http://example.org/'