diff options
author | Michael Vogt <mvo@ubuntu.com> | 2015-05-22 16:05:05 +0200 |
---|---|---|
committer | Michael Vogt <mvo@ubuntu.com> | 2015-05-22 17:52:54 +0200 |
commit | 193f547a93846b850df2b69ce53b9460a4c61eac (patch) | |
tree | ce8c18a0370e27850f3f0fd9917d228b6e9200d5 | |
parent | 7c4511322e22c3d97c6d892204af67d240416e69 (diff) |
Add regression test for LP: #1445239
Add a regression test that reproduced the hang of apt when a
partial file is present.
Git-Dch: ignore
-rwxr-xr-x | test/integration/test-bug-lp1445239-download-loop | 29 | ||||
-rw-r--r-- | test/interactive-helper/aptwebserver.cc | 2 |
2 files changed, 31 insertions, 0 deletions
diff --git a/test/integration/test-bug-lp1445239-download-loop b/test/integration/test-bug-lp1445239-download-loop new file mode 100755 index 000000000..342e3c61e --- /dev/null +++ b/test/integration/test-bug-lp1445239-download-loop @@ -0,0 +1,29 @@ +#!/bin/sh +# +# this is a regression test for LP: #1445239 where a partial download can +# trigger an endless hang of the download method +# + +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' + +changetowebserver +webserverconfig 'aptwebserver::support::range' 'true' + +TESTFILE='aptarchive/testfile' +dd if=/dev/zero of=$TESTFILE bs=100k count=1 2>/dev/null + +DOWNLOADLOG='rootdir/tmp/testdownloadfile.log' + +TARGET=testfile-downloaded +dd if=/dev/zero of=$TARGET bs=99k count=1 2>/dev/null +if ! downloadfile http://localhost:8080/testfile "$TARGET" > "$DOWNLOADLOG"; then + cat >&2 "$DOWNLOADLOG" + msgfail +else + msgpass +fi diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc index 9c67b67e4..e02caa2b3 100644 --- a/test/interactive-helper/aptwebserver.cc +++ b/test/interactive-helper/aptwebserver.cc @@ -654,6 +654,8 @@ static void * handleClient(void * voidclient) /*{{{*/ if (filesize > filestart) { data.Skip(filestart); + // make sure to send content-range before conent-length + // as regression test for LP: #1445239 std::ostringstream contentrange; contentrange << "Content-Range: bytes " << filestart << "-" << filesize - 1 << "/" << filesize; |