test-disappearing-packages 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 -q=0"
  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. testfileequal "rootdir/var/log/apt/history.log" "
  39. Install: old-pkg:native (1.0)
  40. Install: new-pkg:native (2.0, automatic)
  41. Upgrade: old-pkg:native (1.0, 2.0)
  42. Disappeared: old-pkg (1.0)"
  43. testmarkedauto # new-pkg should have get the manual flag from old-pkg