From: Michael Vogt Date: Tue, 10 Jul 2012 10:01:46 +0000 (+0200) Subject: add failing regression test for bug #346386 X-Git-Tag: 0.9.13.exp1ubuntu1~51^2~6 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/da3ebfe79d570c3aeb5f0a407cfec7996f44420c?hp=--cc add failing regression test for bug #346386 --- da3ebfe79d570c3aeb5f0a407cfec7996f44420c diff --git a/test/integration/framework b/test/integration/framework index a514bef20..bf46ae0c5 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -687,10 +687,17 @@ signreleasefiles() { msgdone "info" } +simulatebrokenwebserver() { + if ! test -x ${BUILDDIRECTORY}/aptwebserver; then + msgdie 'Need the aptwebserver to simulate broken connections' + fi + changetowebserver '--simulate-paywall' +} + changetowebserver() { if test -x ${BUILDDIRECTORY}/aptwebserver; then cd aptarchive - LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/aptwebserver 2> /dev/null > /dev/null & + LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/aptwebserver $@ 2> /dev/null > /dev/null & addtrap "kill $!;" cd - > /dev/null elif which weborf > /dev/null; then diff --git a/test/integration/test-ubuntu-bug346386 b/test/integration/test-ubuntu-bug346386 new file mode 100755 index 000000000..57004f343 --- /dev/null +++ b/test/integration/test-ubuntu-bug346386 @@ -0,0 +1,19 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture 'amd64' + +buildsimplenativepackage 'apt' 'all' '1.0' 'stable' + +setupaptarchive +simulatebrokenwebserver + +rm -rf rootdir/var/lib/apt/lists +aptget update +testequal 'partial' "$(ls rootdir/var/lib/apt/lists/)" + + diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc index 3c476ad05..c7b815925 100644 --- a/test/interactive-helper/aptwebserver.cc +++ b/test/interactive-helper/aptwebserver.cc @@ -244,11 +244,11 @@ int main(int argc, const char *argv[]) } _error->DumpErrors(std::cerr); messages.clear(); - } - std::clog << "CLOSE client " << client - << " on socket " << sock << std::endl; - close(client); + std::clog << "CLOSE client " << client + << " on socket " << sock << std::endl; + close(client); + } } return 0; }