summaryrefslogtreecommitdiff
path: root/test/integration/test-apt-translation-has-no-packages
diff options
context:
space:
mode:
authorMichael Vogt <mvo@ubuntu.com>2014-06-10 19:00:41 +0200
committerMichael Vogt <mvo@ubuntu.com>2014-06-10 19:00:41 +0200
commitafaeea148553439684e6091f282bf5a4ee5c00d6 (patch)
tree9de4549d414a78bed64a2a20f7941695c7d6c4df /test/integration/test-apt-translation-has-no-packages
parentb4278cc96fa0184b4f522e2bcfe82bd8eba93595 (diff)
parenteea0f3a6197dba565c5df349ed06c0a70b49b77f (diff)
Merge branch 'debian/sid' into ubuntu/master1.0.4ubuntu1
Conflicts: configure.ac debian/changelog
Diffstat (limited to 'test/integration/test-apt-translation-has-no-packages')
-rwxr-xr-xtest/integration/test-apt-translation-has-no-packages41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/integration/test-apt-translation-has-no-packages b/test/integration/test-apt-translation-has-no-packages
new file mode 100755
index 000000000..bb2353a33
--- /dev/null
+++ b/test/integration/test-apt-translation-has-no-packages
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# Due to corruption (local or network) a user might end up with a
+# Translation-$lang file on disk that is actually a Packages file. In this
+# case apt used to generate invalid package versions out of the
+# Translation-$lang file (i.e. apt-cache policy foo) would show a version
+# comming out of a Translation file. Downloading this versions fails as
+# there is no acquire method available for the package
+#
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture "amd64"
+
+if [ ! -x ${BUILDDIRECTORY}/apt ]; then
+ msgmsg "No ${BUILDDIRECTORY}/apt"
+ msgskip
+ exit 0
+fi
+
+buildsimplenativepackage 'foo' 'all' '1.0'
+setupaptarchive
+
+APTARCHIVE=$(readlink -f ./aptarchive)
+
+# corrupt the Translation-en file to look like a regular Packages file
+rm rootdir/var/cache/apt/*.bin
+cp $APTARCHIVE/dists/unstable/main/binary-amd64/Packages \
+ rootdir/var/lib/apt/lists/*Translation-en
+
+# ensure that there is no Version for the package foo generated out of
+# the corrupted Translation-en file
+testequal "foo:
+ Installed: (none)
+ Candidate: 1.0
+ Version table:
+ 1.0 0
+ 500 file:$APTARCHIVE/ unstable/main amd64 Packages" aptcache policy foo