]>
Commit | Line | Data |
---|---|---|
002b1bc4 DK |
1 | #!/bin/sh |
2 | set -e | |
3 | ||
4 | TESTDIR="$(readlink -f "$(dirname "$0")")" | |
5 | . "$TESTDIR/framework" | |
6 | setupenvironment | |
7 | configarchitecture 'amd64' | |
8 | ||
9 | buildsimplenativepackage 'foo' 'all' '1' 'stable' | |
10 | buildsimplenativepackage 'foo' 'all' '2' 'sid' | |
11 | setupaptarchive --no-update | |
12 | ||
13 | NEWMETHODS="$(readlink -f rootdir)/usr/lib/apt/methods" | |
14 | OLDMETHODS="$(readlink -f rootdir/usr/lib/apt/methods)" | |
15 | rm "$NEWMETHODS" | |
16 | mkdir "$NEWMETHODS" | |
17 | backupIFS="$IFS" | |
18 | IFS="$(printf "\n\b")" | |
782c60a6 | 19 | for METH in $(find "$OLDMETHODS" -maxdepth 1 ! -type d); do |
002b1bc4 DK |
20 | ln -s "$OLDMETHODS/$(basename "$METH")" "$NEWMETHODS" |
21 | done | |
22 | IFS="$backupIFS" | |
23 | ||
24 | changetohttpswebserver | |
25 | for FILE in rootdir/etc/apt/sources.list.d/*-sid-* ; do | |
26 | sed -i -e 's#https:#http:#' -e "s#:${APTHTTPSPORT}/#:${APTHTTPPORT}/#" "$FILE" | |
27 | done | |
28 | ||
29 | pretest() { | |
c9c91069 | 30 | msgmsg "$@" |
002b1bc4 | 31 | rm -rf rootdir/var/lib/apt/lists |
87d6947d | 32 | testsuccessequal 'N: Unable to locate package foo' aptcache policy foo |
002b1bc4 | 33 | } |
c9c91069 | 34 | pretest 'initialize test' 'update' |
002b1bc4 DK |
35 | testsuccess aptget update |
36 | testsuccessequal "foo: | |
37 | Installed: (none) | |
38 | Candidate: 2 | |
39 | Version table: | |
40 | 2 500 | |
1dd20368 | 41 | 500 http://localhost:${APTHTTPPORT} sid/main all Packages |
002b1bc4 | 42 | 1 500 |
1dd20368 | 43 | 500 https://localhost:${APTHTTPSPORT} stable/main all Packages" aptcache policy foo |
002b1bc4 | 44 | |
c9c91069 | 45 | pretest 'not found' 'release files' |
002b1bc4 | 46 | mv aptarchive/dists/stable aptarchive/dists/stable.good |
87d6947d | 47 | testfailuremsg "E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file. |
83960341 | 48 | N: Updating from such a repository can't be done securely, and is therefore disabled by default. |
87d6947d DK |
49 | N: See apt-secure(8) manpage for repository creation and user configuration details." apt update |
50 | testfailure aptget update --no-allow-insecure-repositories | |
1dd20368 | 51 | testequalor2 "Hit:1 http://localhost:${APTHTTPPORT} sid InRelease |
002b1bc4 DK |
52 | Ign:2 https://localhost:${APTHTTPSPORT} stable InRelease |
53 | 404 Not Found | |
54 | Err:3 https://localhost:${APTHTTPSPORT} stable Release | |
55 | 404 Not Found | |
56 | Reading package lists... | |
57 | E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file. | |
83960341 | 58 | N: Updating from such a repository can't be done securely, and is therefore disabled by default. |
1dd20368 DK |
59 | N: See apt-secure(8) manpage for repository creation and user configuration details." "Ign:1 https://localhost:${APTHTTPSPORT} stable InRelease |
60 | 404 Not Found | |
61 | Err:2 https://localhost:${APTHTTPSPORT} stable Release | |
62 | 404 Not Found | |
63 | Hit:3 http://localhost:${APTHTTPPORT} sid InRelease | |
64 | Reading package lists... | |
65 | E: The repository 'https://localhost:${APTHTTPSPORT} stable Release' does not have a Release file. | |
83960341 | 66 | N: Updating from such a repository can't be done securely, and is therefore disabled by default. |
1dd20368 DK |
67 | N: See apt-secure(8) manpage for repository creation and user configuration details." cat rootdir/tmp/testfailure.output |
68 | ||
002b1bc4 DK |
69 | mv aptarchive/dists/stable.good aptarchive/dists/stable |
70 | posttest() { | |
71 | testsuccessequal "foo: | |
72 | Installed: (none) | |
73 | Candidate: 2 | |
74 | Version table: | |
75 | 2 500 | |
1dd20368 | 76 | 500 http://localhost:${APTHTTPPORT} sid/main all Packages" aptcache policy foo |
002b1bc4 DK |
77 | } |
78 | posttest | |
79 | ||
c9c91069 DK |
80 | pretest 'method disabled' 'https' |
81 | echo 'Dir::Bin::Methods::https "false";' > rootdir/etc/apt/apt.conf.d/99disable-https | |
82 | testfailuremsg "E: The method 'https' is explicitly disabled via configuration. | |
83 | N: If you meant to use Tor remember to use tor+https instead of https. | |
84 | E: Failed to fetch https://localhost:${APTHTTPSPORT}/dists/stable/InRelease | |
85 | E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update | |
86 | rm -f rootdir/etc/apt/apt.conf.d/99disable-https | |
87 | posttest | |
88 | ||
89 | pretest 'method not installed' 'https' | |
002b1bc4 DK |
90 | rm "${NEWMETHODS}/https" |
91 | testfailuremsg "E: The method driver ${TMPWORKINGDIRECTORY}/rootdir/usr/lib/apt/methods/https could not be found. | |
87d6947d | 92 | N: Is the package apt-transport-https installed? |
f695e761 | 93 | E: Failed to fetch https://localhost:${APTHTTPSPORT}/dists/stable/InRelease |
002b1bc4 DK |
94 | E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update |
95 | posttest | |
96 | ||
c9c91069 | 97 | pretest 'https connection refused' 'doom port' |
002b1bc4 DK |
98 | for FILE in rootdir/etc/apt/sources.list.d/*-stable-* ; do |
99 | # lets see how many testservers run also Doom | |
100 | sed -i -e "s#:${APTHTTPSPORT}/#:666/#" "$FILE" | |
101 | done | |
c9c91069 | 102 | testwarning aptget update -o Dir::Bin::Methods::https="${OLDMETHODS}/https" |
30c8107e DK |
103 | testequalor2 "W: Failed to fetch https://localhost:666/dists/stable/InRelease Failed to connect to localhost port 666: Connection refused |
104 | 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 | |
105 | W: Some index files failed to download. They have been ignored, or old ones used instead." tail -n 2 rootdir/tmp/testwarning.output | |
002b1bc4 | 106 | posttest |