From b90faf2486b977aef0183e38a7f9c535a8a61a34 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 17 Jun 2016 13:27:34 +0200 Subject: merge sources.list lines based on Release filename Merging by URI means that having sources lines with different URI methods results in 'strange' warning and error messages, which aren't very friendly from a user point of view as not encoding the method in the filename is effectivly an implementation detail. Merging by filename removes these messages and makes everything "work" even if it isn't working the way it is configured as the indexes aren't acquired over the method given, but over the first method for this release file (which argueably is an implementation detail stemming from the filename encoding, too). So either direction isn't perfectly "right", but personally I prefer "magic" over strange error messages (and doing a full-circle detection of this with its own messages which would need to be translated feels like way too much effort for dubious gain). Closes: 826944 --- .../test-different-methods-for-same-source | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 test/integration/test-different-methods-for-same-source (limited to 'test') diff --git a/test/integration/test-different-methods-for-same-source b/test/integration/test-different-methods-for-same-source new file mode 100755 index 000000000..7b78841c6 --- /dev/null +++ b/test/integration/test-different-methods-for-same-source @@ -0,0 +1,33 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture 'amd64' + +insertpackage 'stable' 'foo' 'all' '1' +insertsource 'stable' 'foo' 'all' '1' +setupaptarchive --no-update + +# install a slowed down file: otherwise its to fast to reproduce combining +NEWMETHODS="$(readlink -f rootdir)/usr/lib/apt/methods" +OLDMETHODS="$(readlink -f rootdir/usr/lib/apt/methods)" +rm "$NEWMETHODS" +mkdir "$NEWMETHODS" +backupIFS="$IFS" +IFS="$(printf "\n\b")" +for METH in $(find "$OLDMETHODS" ! -type d); do + ln -s "$OLDMETHODS/$(basename "$METH")" "$NEWMETHODS" +done +IFS="$backupIFS" +ln -s "${OLDMETHODS}/http" "${NEWMETHODS}/http-ng" + +changetowebserver +sed -i -e 's# http:# http-ng:#' $(find rootdir/etc/apt/sources.list.d -name '*-deb-src.list') + +testsuccess apt update +cp rootdir/tmp/testsuccess.output update.log +# all requests are folded into the first Release file +testsuccess grep ' http-ng://' update.log +testfailure grep ' http://' update.log -- cgit v1.2.3