test-disappearing-packages 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/sh
  2. set -e
  3. TESTDIR="$(readlink -f "$(dirname "$0")")"
  4. . "$TESTDIR/framework"
  5. setupenvironment
  6. configarchitecture 'native'
  7. buildsimplenativepackage 'old-pkg' 'native' '1.0' 'stable'
  8. buildsimplenativepackage 'unrelated' 'all' '0.5' 'unstable'
  9. setupsimplenativepackage 'new-pkg' 'native' '2.0' 'unstable' 'Provides: old-pkg
  10. Replaces: old-pkg
  11. Conflicts: old-pkg (<< 2.0)'
  12. BUILDDIR='incoming/new-pkg-2.0'
  13. echo '/usr/share/doc/new-pkg /usr/share/doc/old-pkg' > "${BUILDDIR}/debian/new-pkg.links"
  14. buildpackage "$BUILDDIR" 'unstable' 'main'
  15. rm -rf "$BUILDDIR"
  16. setupsimplenativepackage 'old-pkg' 'all' '2.0' 'unstable' 'Depends: new-pkg'
  17. BUILDDIR='incoming/old-pkg-2.0'
  18. echo '/usr/share/doc/new-pkg /usr/share/doc/old-pkg' > "${BUILDDIR}/debian/old-pkg.links"
  19. echo "
  20. override_dh_link:
  21. rm -rf debian/old-pkg/usr/share/doc/old-pkg/
  22. dh_link" >> "${BUILDDIR}/debian/rules"
  23. buildpackage "$BUILDDIR" 'unstable' 'main'
  24. rm -rf "$BUILDDIR"
  25. setupaptarchive
  26. testsuccess aptget install old-pkg=1.0 --trivial-only
  27. testmarkedauto # old-pkg is manual installed
  28. CMD='aptget dist-upgrade -y'
  29. msgtest 'Test for equality of' "$CMD"
  30. COMPAREFILE="$(mktemp)"
  31. echo 'The following package disappeared from your system as
  32. all files have been overwritten by other packages:
  33. old-pkg
  34. Note: This is done automatically and on purpose by dpkg.' > "$COMPAREFILE"
  35. $CMD 2>&1 | tail -n 4 | diff -u "$COMPAREFILE" - && msgpass || msgfail
  36. rm "$COMPAREFILE"
  37. sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d' -e "s#:$(getarchitecture 'native') #:native #"
  38. if [ -n "$SUDO_USER" ]; then
  39. testfileequal 'rootdir/var/log/apt/history.log' "
  40. Requested-By: $SUDO_USER ($(id -u "$SUDO_USER"))
  41. Install: old-pkg:native (1.0)
  42. Requested-By: $SUDO_USER ($(id -u "$SUDO_USER"))
  43. Install: new-pkg:native (2.0, automatic)
  44. Upgrade: old-pkg:native (1.0, 2.0)
  45. Disappeared: old-pkg (1.0)"
  46. else
  47. testfileequal 'rootdir/var/log/apt/history.log' '
  48. Install: old-pkg:native (1.0)
  49. Install: new-pkg:native (2.0, automatic)
  50. Upgrade: old-pkg:native (1.0, 2.0)
  51. Disappeared: old-pkg (1.0)'
  52. fi
  53. testmarkedauto # new-pkg should have get the manual flag from old-pkg