Browse Source

tests, do not send pkgname with arch via the status-fd

tags/debian/0.9.12.1
Michael Vogt 8 years ago
parent
commit
42c1513b71
5 changed files with 125 additions and 2 deletions
  1. +1
    -1
      apt-pkg/deb/dpkgpm.cc
  2. +9
    -1
      test/integration/framework
  3. +71
    -0
      test/integration/test-apt-progress-fd
  4. +22
    -0
      test/integration/test-apt-progress-fd-error
  5. +22
    -0
      test/integration/test-apt-progress-fd-error-postinst

+ 1
- 1
apt-pkg/deb/dpkgpm.cc View File

@@ -649,7 +649,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
// action
const char *translation = _(states[PackageOpsDone[pkg]].str);
char s[200];
snprintf(s, sizeof(s), translation, pkg);
snprintf(s, sizeof(s), translation, short_pkgname.c_str());

// we moved from one dpkg state to a new one, report that
PackageOpsDone[pkg]++;


+ 9
- 1
test/integration/framework View File

@@ -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,16 @@ 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
if [ -n "$POSTINST" ]; then
echo "$POSTINST" > ${BUILDDIR}/debian/tmp/DEBIAN/postinst
chmod +x ${BUILDDIR}/debian/tmp/DEBIAN/postinst
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


+ 71
- 0
test/integration/test-apt-progress-fd View File

@@ -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

+ 22
- 0
test/integration/test-apt-progress-fd-error View File

@@ -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


+ 22
- 0
test/integration/test-apt-progress-fd-error-postinst View File

@@ -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


Loading…
Cancel
Save