4 TESTDIR
=$(readlink -f $(dirname $0))
7 configarchitecture
'amd64'
12 dd if="$1" bs
=1 count
="$2" of
="$3" 2>/dev
/null
13 touch -d "$(stat --format '%y' "${TESTFILE}")" "$3"
17 local DOWNLOG
='download-testfile.log'
19 msgtest
"Testing download of file $2 with" "$1"
20 if ! downloadfile
"$2" "$3" > "$DOWNLOG"; then
26 cat "$DOWNLOG" | while read field
hash; do
29 'MD5Sum-Hash:') EXPECTED
="$(md5sum "$TESTFILE" | cut -d' ' -f 1)";;
30 'SHA1-Hash:') EXPECTED
="$(sha1sum "$TESTFILE" | cut -d' ' -f 1)";;
31 'SHA256-Hash:') EXPECTED
="$(sha256sum "$TESTFILE" | cut -d' ' -f 1)";;
32 'SHA512-Hash:') EXPECTED
="$(sha512sum "$TESTFILE" | cut -d' ' -f 1)";;
35 if [ "$4" = '=' ]; then
36 msgtest
'Test downloaded file for correct' "$field"
38 msgtest
'Test downloaded file does not match in' "$field"
40 if [ "$EXPECTED" "$4" "$hash" ]; then
44 msgfail
"expected: $EXPECTED ; got: $hash"
49 testwebserverlaststatuscode
() {
52 msgtest
'Test last status code from the webserver was' "$1"
53 downloadfile
"http://localhost:8080/_config/find/aptwebserver::last-status-code" "$STATUS" >/dev
/null
54 if [ "$(cat "$STATUS")" = "$1" ]; then
57 cat download
-testfile.log
58 msgfail
"Status was $(cat "$STATUS")"
63 TESTFILE
='aptarchive/testfile'
64 cp -a ${TESTDIR}/framework
$TESTFILE
67 downloadfile
"$1/_config/set/aptwebserver::support::range/true" '/dev/null' >/dev
/null
68 testwebserverlaststatuscode
'200'
70 copysource
$TESTFILE 0 .
/testfile
71 testdownloadfile
'no data' "${1}/testfile" './testfile' '='
72 testwebserverlaststatuscode
'200'
74 copysource
$TESTFILE 20 .
/testfile
75 testdownloadfile
'valid partial data' "${1}/testfile" './testfile' '='
76 testwebserverlaststatuscode
'206'
78 copysource
/dev
/zero
20 .
/testfile
79 testdownloadfile
'invalid partial data' "${1}/testfile" './testfile' '!='
80 testwebserverlaststatuscode
'206'
82 copysource
$TESTFILE 1M .
/testfile
83 testdownloadfile
'completely downloaded file' "${1}/testfile" './testfile' '='
84 testwebserverlaststatuscode
'416'
86 copysource
/dev
/zero
1M .
/testfile
87 testdownloadfile
'too-big partial file' "${1}/testfile" './testfile' '='
88 testwebserverlaststatuscode
'200'
90 copysource
/dev
/zero
20 .
/testfile
92 testdownloadfile
'old data' "${1}/testfile" './testfile' '='
93 testwebserverlaststatuscode
'200'
95 downloadfile
"$1/_config/set/aptwebserver::support::range/false" '/dev/null' >/dev
/null
96 testwebserverlaststatuscode
'200'
98 copysource
$TESTFILE 20 .
/testfile
99 testdownloadfile
'no server support' "${1}/testfile" './testfile' '='
100 testwebserverlaststatuscode
'200'
103 testrun
'http://localhost:8080'
105 changetohttpswebserver
107 testrun
'https://localhost:4433'