Browse Source

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
tags/debian/1.0.9.10
Michael Vogt 6 years ago
parent
commit
f4a91278c6
2 changed files with 31 additions and 0 deletions
  1. +29
    -0
      test/integration/test-bug-lp1445239-download-loop
  2. +2
    -0
      test/interactive-helper/aptwebserver.cc

+ 29
- 0
test/integration/test-bug-lp1445239-download-loop View File

@@ -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

+ 2
- 0
test/interactive-helper/aptwebserver.cc View File

@@ -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;


Loading…
Cancel
Save