diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-06-20 13:49:31 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-06-20 13:49:31 +0200 |
commit | 9515ed7bcdb32c7985ca83d309beda7155d02136 (patch) | |
tree | b511a7fdc1f8ebd1efade89b5c362111c62d77ad /test/integration | |
parent | cad1877559f3e1703c3fea4d081978e1b4bb4a0e (diff) |
implement and document DIRECT for auto-detect-proxy
There is a subtile difference between an empty setting and "DIRECT" in
the configuration as the later overrides the generic settings while the
earlier does not. Also, non-zero exitcodes should really be reported as
an error rather than silently discarded.
Diffstat (limited to 'test/integration')
-rwxr-xr-x | test/integration/test-apt-helper | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/test/integration/test-apt-helper b/test/integration/test-apt-helper index c1c193c5c..1c163b3ae 100755 --- a/test/integration/test-apt-helper +++ b/test/integration/test-apt-helper @@ -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/' |