summaryrefslogtreecommitdiffstats
path: root/debian/tests/unsorted-packages-files
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests/unsorted-packages-files')
-rwxr-xr-xdebian/tests/unsorted-packages-files33
1 files changed, 33 insertions, 0 deletions
diff --git a/debian/tests/unsorted-packages-files b/debian/tests/unsorted-packages-files
new file mode 100755
index 0000000..f039690
--- /dev/null
+++ b/debian/tests/unsorted-packages-files
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# This test runs the mitm.py Flask app which debootstrap is then pointed at.
+# mitm.py will return a Packages file which has an additional `apt` stanza
+# prepended, with the Version and Filename adjusted to point at a lower,
+# non-existent version. Versions of debootstrap which process _all_ Packages
+# files entries will find the original stanza later in the file (and
+# succesfully fetch the corresponding package file): versions that don't will
+# find the prepended stanza and fail (with a 404 of the nonexistent package
+# file).
+
+export FLASK_ARCH="$(dpkg --print-architecture)"
+export FLASK_DIST=testing
+export FLASK_DISTRO=debian
+export FLASK_MIRROR=http://deb.debian.org
+export PATH=$PATH:/usr/sbin
+
+# Launch our MitM "mirror" server, ensure that request logging is sent to stdout
+PYTHONDONTWRITEBYTECODE=true FLASK_APP=debian/tests/mitm.py flask run 2>&1 &
+flask_pid=$!
+
+# Give Flask time to come up
+sleep 2
+
+tempdir=$(mktemp -d)
+# Run debootstrap against our MitM "mirror", ignoring the inevitable GPG errors
+debootstrap --download-only --variant minbase --no-check-gpg ${FLASK_DIST} $tempdir http://127.0.0.1:5000/${FLASK_DISTRO}/
+rc=$?
+
+rm -rf $tempdir
+kill $flask_pid
+
+exit $rc