]>
Commit | Line | Data |
---|---|---|
9d2a8a73 DK |
1 | #!/bin/sh |
2 | set -e | |
3 | ||
4 | TESTDIR=$(readlink -f $(dirname $0)) | |
5 | . $TESTDIR/framework | |
6 | setupenvironment | |
7 | configarchitecture 'amd64' | |
8 | ||
9 | TESTFILE="$TESTDIR/framework" | |
10 | cp $TESTFILE aptarchive/foo | |
11 | APTARCHIVE="$(readlink -f ./aptarchive)" | |
12 | ||
13 | getcodenamefromsuite() { echo "jessie"; } | |
14 | buildsimplenativepackage 'foo' 'all' '1.0' 'stable' | |
15 | setupaptarchive --no-update | |
16 | ln -s "${APTARCHIVE}/dists/stable" "${APTARCHIVE}/dists/jessie" | |
17 | for FILE in rootdir/etc/apt/sources.list.d/*-stable-* ; do | |
18 | sed 's#stable#jessie#g' $FILE > $(echo "$FILE" | sed 's#stable#jessie#g') | |
19 | done | |
20 | ||
21 | # install a slowed down file: otherwise its to fast to reproduce combining | |
22 | NEWMETHODS="$(readlink -f rootdir)/usr/lib/apt/methods" | |
23 | OLDMETHODS="$(readlink -f rootdir/usr/lib/apt/methods)" | |
63c71412 DK |
24 | rm "$NEWMETHODS" |
25 | mkdir "$NEWMETHODS" | |
26 | backupIFS="$IFS" | |
27 | IFS="$(printf "\n\b")" | |
28 | for METH in $(find "$OLDMETHODS" ! -type d); do | |
29 | ln -s "$OLDMETHODS/$(basename "$METH")" "$NEWMETHODS" | |
9d2a8a73 | 30 | done |
63c71412 | 31 | IFS="$backupIFS" |
d2b7b130 DK |
32 | rm "${NEWMETHODS}/file" "${NEWMETHODS}/http" |
33 | cat >"${NEWMETHODS}/file" <<EOF | |
9d2a8a73 DK |
34 | #!/bin/sh |
35 | while read line; do | |
36 | echo "\$line" | |
37 | if [ -z "\$line" ]; then | |
533fe3d1 | 38 | sleep 0.5 |
9d2a8a73 | 39 | fi |
d2b7b130 | 40 | done | "$OLDMETHODS/\${0##*/}" |
9d2a8a73 | 41 | EOF |
d2b7b130 DK |
42 | chmod +x "${NEWMETHODS}/file" |
43 | ln -s "${NEWMETHODS}/file" "${NEWMETHODS}/http" | |
9d2a8a73 DK |
44 | |
45 | tworepos() { | |
46 | msgtest "Downloading the same repository twice over $1" "$3" | |
47 | testsuccess --nomsg aptget update -o Debug::pkgAcquire::Worker=1 | |
48 | cp rootdir/tmp/testsuccess.output download.log | |
49 | #cat download.log | |
c2a4a8dd | 50 | aptget indextargets --format '$(FILENAME)' --no-release-info | sort > file.lst |
63c71412 | 51 | testequal "$(find "$(readlink -f ./rootdir/var/lib/apt/lists)" -name '*_dists_*' \( ! -name '*InRelease' \) -type f | sort)" cat file.lst |
9d2a8a73 DK |
52 | testsuccess aptcache policy |
53 | testequal "foo: | |
54 | Installed: (none) | |
55 | Candidate: 1.0 | |
56 | Version table: | |
76b004d1 | 57 | 1.0 500 |
9d2a8a73 DK |
58 | 500 $1:$2 jessie/main amd64 Packages |
59 | 500 $1:$2 stable/main amd64 Packages" aptcache policy foo | |
60 | testfailure aptcache show foo/unstable | |
61 | testsuccess aptcache show foo/stable | |
62 | testsuccess aptcache show foo/jessie | |
63 | } | |
64 | ||
65 | tworepos 'file' "$APTARCHIVE" 'no partial' | |
66 | testequal '12' grep -c '200%20URI%20Start' ./download.log | |
67 | testequal '12' grep -c '201%20URI%20Done' ./download.log | |
68 | testequal '6' grep -c '^ @ Queue: Action combined' ./download.log | |
69 | tworepos 'file' "$APTARCHIVE" 'hit' | |
70 | testequal '6' grep -c '200%20URI%20Start' ./download.log | |
71 | testequal '6' grep -c '201%20URI%20Done' ./download.log | |
72 | testequal '0' grep -c '^ @ Queue: Action combined' ./download.log | |
73 | rm -rf rootdir/var/lib/apt/lists | |
74 | ||
75 | changetowebserver | |
76 | ||
6c0765c0 | 77 | tworepos 'http' "//localhost:${APTHTTPPORT}" 'no partial' |
9d2a8a73 DK |
78 | testequal '10' grep -c '200%20URI%20Start' ./download.log |
79 | testequal '10' grep -c '201%20URI%20Done' ./download.log | |
80 | testequal '6' grep -c '^ @ Queue: Action combined' ./download.log | |
6c0765c0 | 81 | tworepos 'http' "//localhost:${APTHTTPPORT}" 'hit' |
9d2a8a73 DK |
82 | testequal '2' grep -c '200%20URI%20Start' ./download.log |
83 | testequal '4' grep -c '201%20URI%20Done' ./download.log | |
84 | testequal '0' grep -c '^ @ Queue: Action combined' ./download.log | |
85 | rm -rf rootdir/var/lib/apt/lists |