123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #!/bin/sh
- set -e
- TESTDIR="$(readlink -f "$(dirname "$0")")"
- . "$TESTDIR/framework"
- setupenvironment
- configarchitecture 'amd64'
- buildsimplenativepackage 'foo' 'all' '1' 'stable'
- buildsimplenativepackage 'foo' 'all' '2' 'sid'
- setupaptarchive --no-update
- NEWMETHODS="$(readlink -f rootdir)/usr/lib/apt/methods"
- OLDMETHODS="$(readlink -f rootdir/usr/lib/apt/methods)"
- rm "$NEWMETHODS"
- mkdir "$NEWMETHODS"
- backupIFS="$IFS"
- IFS="$(printf "\n\b")"
- for METH in $(find "$OLDMETHODS" -maxdepth 1 ! -type d); do
- ln -s "$OLDMETHODS/$(basename "$METH")" "$NEWMETHODS"
- done
- IFS="$backupIFS"
- changetohttpswebserver
- for FILE in rootdir/etc/apt/sources.list.d/*-sid-* ; do
- sed -i -e 's#https:#http:#' -e "s#:${APTHTTPSPORT}/#:${APTHTTPPORT}/#" "$FILE"
- done
- pretest() {
- msgmsg "$@"
- rm -rf rootdir/var/lib/apt/lists
- testsuccessequal 'N: Unable to locate package foo' aptcache policy foo
- }
- pretest 'initialize test' 'update'
- testsuccess aptget update
- testsuccessequal "foo:
- Installed: (none)
- Candidate: 2
- Version table:
- 2 500
- 500 http://localhost:${APTHTTPPORT} sid/main all Packages
- 1 500
- 500 https://localhost:${APTHTTPSPORT} stable/main all Packages" aptcache policy foo
- pretest 'not found' 'release files'
- mv aptarchive/dists/stable aptarchive/dists/stable.good
- testfailuremsg "E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file.
- N: Updating from such a repository can't be done securely, and is therefore disabled by default.
- N: See apt-secure(8) manpage for repository creation and user configuration details." apt update
- testfailure aptget update --no-allow-insecure-repositories
- testequalor2 "Hit:1 http://localhost:${APTHTTPPORT} sid InRelease
- Ign:2 https://localhost:${APTHTTPSPORT} stable InRelease
- 404 Not Found
- Err:3 https://localhost:${APTHTTPSPORT} stable Release
- 404 Not Found
- Reading package lists...
- E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file.
- N: Updating from such a repository can't be done securely, and is therefore disabled by default.
- N: See apt-secure(8) manpage for repository creation and user configuration details." "Ign:1 https://localhost:${APTHTTPSPORT} stable InRelease
- 404 Not Found
- Err:2 https://localhost:${APTHTTPSPORT} stable Release
- 404 Not Found
- Hit:3 http://localhost:${APTHTTPPORT} sid InRelease
- Reading package lists...
- E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file.
- N: Updating from such a repository can't be done securely, and is therefore disabled by default.
- N: See apt-secure(8) manpage for repository creation and user configuration details." cat rootdir/tmp/testfailure.output
- mv aptarchive/dists/stable.good aptarchive/dists/stable
- posttest() {
- testsuccessequal "foo:
- Installed: (none)
- Candidate: 2
- Version table:
- 2 500
- 500 http://localhost:${APTHTTPPORT} sid/main all Packages" aptcache policy foo
- }
- posttest
- pretest 'method disabled' 'https'
- echo 'Dir::Bin::Methods::https "false";' > rootdir/etc/apt/apt.conf.d/99disable-https
- testfailuremsg "E: The method 'https' is explicitly disabled via configuration.
- N: If you meant to use Tor remember to use tor+https instead of https.
- E: Failed to fetch https://localhost:${APTHTTPSPORT}/dists/stable/InRelease
- E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update
- rm -f rootdir/etc/apt/apt.conf.d/99disable-https
- posttest
- pretest 'method not installed' 'https'
- rm "${NEWMETHODS}/https"
- testfailuremsg "E: The method driver ${TMPWORKINGDIRECTORY}/rootdir/usr/lib/apt/methods/https could not be found.
- N: Is the package apt-transport-https installed?
- E: Failed to fetch https://localhost:${APTHTTPSPORT}/dists/stable/InRelease
- E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update
- posttest
- pretest 'https connection refused' 'doom port'
- for FILE in rootdir/etc/apt/sources.list.d/*-stable-* ; do
- # lets see how many testservers run also Doom
- sed -i -e "s#:${APTHTTPSPORT}/#:666/#" "$FILE"
- done
- testwarning aptget update -o Dir::Bin::Methods::https="${OLDMETHODS}/https"
- testequalor2 "W: Failed to fetch https://localhost:666/dists/stable/InRelease Failed to connect to localhost port 666: Connection refused
- W: Some index files failed to download. They have been ignored, or old ones used instead." "W: Failed to fetch https://localhost:666/dists/stable/InRelease couldn't connect to host
- W: Some index files failed to download. They have been ignored, or old ones used instead." tail -n 2 rootdir/tmp/testwarning.output
- posttest
|