summaryrefslogtreecommitdiff
path: root/test/integration
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2013-10-17 08:03:41 +0200
committerMichael Vogt <mvo@debian.org>2013-10-17 08:03:41 +0200
commite8022b09e73ee89d3b748e1c8dba82abba5b37f3 (patch)
tree2bc51615c21c16040dbb31ebf873bdd2a29565d0 /test/integration
parent5e9458e285af11c7fa4308add10d250e3546c8bf (diff)
parentc420fe0096985234e861aaafc2b9908b6259a1bb (diff)
Merge branch 'debian/sid' into feature/install-progress-refactor
Conflicts: apt-pkg/deb/dpkgpm.cc
Diffstat (limited to 'test/integration')
-rw-r--r--test/integration/framework6
-rwxr-xr-xtest/integration/test-apt-progress-fd71
-rwxr-xr-xtest/integration/test-apt-progress-fd-error22
-rwxr-xr-xtest/integration/test-apt-progress-fd-error-postinst22
4 files changed, 120 insertions, 1 deletions
diff --git a/test/integration/framework b/test/integration/framework
index d899bb574..28ccb4d9f 100644
--- a/test/integration/framework
+++ b/test/integration/framework
@@ -335,6 +335,7 @@ buildsimplenativepackage() {
local SECTION="${7:-others}"
local PRIORITY="${8:-optional}"
+ local FILE_TREE="$9"
local DISTSECTION
if [ "$SECTION" = "$(echo "$SECTION" | cut -d'/' -f 2)" ]; then
DISTSECTION="main"
@@ -391,9 +392,12 @@ Package: $NAME" >> ${BUILDDIR}/debian/control
mkdir -p ${BUILDDIR}/debian/tmp/DEBIAN ${BUILDDIR}/debian/tmp/usr/share/doc/${NAME} ${BUILDDIR}/debian/tmp/usr/bin
cp ${BUILDDIR}/debian/copyright ${BUILDDIR}/debian/changelog ${BUILDDIR}/FEATURES ${BUILDDIR}/debian/tmp/usr/share/doc/${NAME}
cp ${BUILDDIR}/${NAME} ${BUILDDIR}/debian/tmp/usr/bin/${NAME}-${arch}
+ if [ -n "$FILE_TREE" ]; then
+ cp -ar "$FILE_TREE" ${BUILDDIR}/debian/tmp
+ fi
+
(cd ${BUILDDIR}; dpkg-gencontrol -DArchitecture=$arch)
(cd ${BUILDDIR}/debian/tmp; md5sum $(find usr/ -type f) > DEBIAN/md5sums)
-
dpkg-deb --build ${BUILDDIR}/debian/tmp ${BUILDDIR}/.. 2> /dev/null > /dev/null
echo "pool/${NAME}_${VERSION}_${arch}.deb" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.pkglist
done
diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd
new file mode 100755
index 000000000..5f73c8f8c
--- /dev/null
+++ b/test/integration/test-apt-progress-fd
@@ -0,0 +1,71 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture 'amd64' 'i386'
+
+buildsimplenativepackage 'testing' 'amd64' '0.1' 'stable'
+buildsimplenativepackage 'testing' 'amd64' '0.8.15' 'stable'
+buildsimplenativepackage 'testing2' 'amd64,i386' '0.8.15' 'stable'
+setupaptarchive
+
+# install native
+exec 3> apt-progress.log
+testsuccess aptget install testing=0.1 -y -o APT::Status-Fd=3
+testequal "dlstatus:1:0:Retrieving file 1 of 1
+dlstatus:1:0:Retrieving file 1 of 1
+pmstatus:dpkg-exec:0:Running dpkg
+pmstatus:testing:0:Installing testing
+pmstatus:testing:20:Preparing testing
+pmstatus:testing:40:Unpacking testing
+pmstatus:testing:60:Preparing to configure testing
+pmstatus:dpkg-exec:60:Running dpkg
+pmstatus:testing:60:Configuring testing
+pmstatus:testing:80:Configuring testing
+pmstatus:testing:100:Installed testing" cat apt-progress.log
+
+# upgrade
+exec 3> apt-progress.log
+testsuccess aptget install testing=0.8.15 -y -o APT::Status-Fd=3
+testequal "dlstatus:1:0:Retrieving file 1 of 1
+dlstatus:1:0:Retrieving file 1 of 1
+pmstatus:dpkg-exec:0:Running dpkg
+pmstatus:testing:20:Preparing testing
+pmstatus:testing:40:Unpacking testing
+pmstatus:testing:60:Preparing to configure testing
+pmstatus:dpkg-exec:60:Running dpkg
+pmstatus:testing:60:Configuring testing
+pmstatus:testing:80:Configuring testing
+pmstatus:testing:100:Installed testing" cat apt-progress.log
+
+# and remove
+exec 3> apt-progress.log
+testsuccess aptget remove testing -y -o APT::Status-Fd=3
+testequal "pmstatus:dpkg-exec:0:Running dpkg
+pmstatus:testing:0:Removing testing
+pmstatus:testing:33.3333:Preparing for removal of testing
+pmstatus:testing:66.6667:Removing testing
+pmstatus:testing:100:Removed testing" cat apt-progress.log
+
+
+# install non-native and ensure we get proper progress info
+exec 3> apt-progress.log
+testsuccess aptget install testing2:i386 -y -o APT::Status-Fd=3
+
+# and compare
+testequal "dlstatus:1:0:Retrieving file 1 of 1
+dlstatus:1:0:Retrieving file 1 of 1
+pmstatus:dpkg-exec:0:Running dpkg
+pmstatus:testing2:0:Installing testing2
+pmstatus:testing2:20:Preparing testing2
+pmstatus:testing2:40:Unpacking testing2
+pmstatus:testing2:60:Preparing to configure testing2
+pmstatus:dpkg-exec:60:Running dpkg
+pmstatus:testing2:60:Configuring testing2
+pmstatus:testing2:80:Configuring testing2
+pmstatus:testing2:100:Installed testing2" cat apt-progress.log
+
+rm -f apt-progress*.log \ No newline at end of file
diff --git a/test/integration/test-apt-progress-fd-error b/test/integration/test-apt-progress-fd-error
new file mode 100755
index 000000000..0cd59410e
--- /dev/null
+++ b/test/integration/test-apt-progress-fd-error
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture 'amd64' 'i386'
+
+mkdir -p usr/bin
+touch usr/bin/file-conflict
+
+buildsimplenativepackage 'foo1' 'amd64,i386' '0.8.15' 'stable' '' 'pkg with file conflicts' '' '' 'usr/'
+buildsimplenativepackage 'foo2' 'amd64,i386' '0.8.15' 'stable' '' 'pkg with file conflicts' '' '' 'usr/'
+
+setupaptarchive
+
+exec 3> apt-progress.log
+testfailure aptget install foo1 foo2 -y -o APT::Status-Fd=3
+msgtest "Ensure correct error message"
+grep -q "aptarchive/pool/foo2_0.8.15_amd64.deb :40:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log && msgpass || msgfail
+
diff --git a/test/integration/test-apt-progress-fd-error-postinst b/test/integration/test-apt-progress-fd-error-postinst
new file mode 100755
index 000000000..0b6e70212
--- /dev/null
+++ b/test/integration/test-apt-progress-fd-error-postinst
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture 'amd64' 'i386'
+
+mkdir -p DEBIAN/
+echo "#!/bin/sh\nexit 1" > DEBIAN/postinst
+chmod 755 DEBIAN/postinst
+
+buildsimplenativepackage 'postinst-error' 'amd64,i386' '0.8.15' 'stable' '' 'pkg with posinst error' '' '' './DEBIAN'
+
+setupaptarchive
+
+exec 3> apt-progress.log
+testfailure aptget install postinst-error -y -o APT::Status-Fd=3
+msgtest "Ensure correct error message for postinst error"
+grep -q "pmerror:postinst-error :80:subprocess installed post-installation script returned error exit status 2" apt-progress.log && msgpass || msgfail
+