test-apt-get-autoremove 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #!/bin/sh
  2. set -e
  3. TESTDIR="$(readlink -f "$(dirname "$0")")"
  4. . "$TESTDIR/framework"
  5. setupenvironment
  6. configarchitecture 'i386'
  7. buildsimplenativepackage 'unrelated' 'all' '1' 'unstable'
  8. buildsimplenativepackage 'po-debconf' 'all' '1.0.16' 'unstable'
  9. buildsimplenativepackage 'debhelper' 'all' '8.0.0' 'unstable' 'Depends: po-debconf'
  10. setupaptarchive
  11. testsuccess aptget install unrelated debhelper -y
  12. testdpkginstalled 'unrelated' 'debhelper' 'po-debconf'
  13. testmarkedauto 'po-debconf'
  14. testsuccess aptget remove debhelper -y
  15. testdpkgnotinstalled 'debhelper'
  16. testdpkginstalled 'po-debconf' 'unrelated'
  17. AUTOREMOVE='apt autoremove'
  18. if [ -n "$SUDO_USER" ]; then
  19. AUTOREMOVE="sudo $AUTOREMOVE"
  20. fi
  21. echo 'APT::NeverAutoRemove { "^debc.*nf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove
  22. testsuccessequal 'Reading package lists...
  23. Building dependency tree...
  24. Reading state information...
  25. The following packages will be REMOVED:
  26. po-debconf
  27. 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
  28. Remv po-debconf [1.0.16]' aptget autoremove -s
  29. testequal "Reading package lists...
  30. Building dependency tree...
  31. Reading state information...
  32. The following package was automatically installed and is no longer required:
  33. po-debconf
  34. Use '$AUTOREMOVE' to remove it.
  35. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded." aptget install -s
  36. testequal "Reading package lists...
  37. Building dependency tree...
  38. Reading state information...
  39. 1 package was automatically installed and is no longer required.
  40. Use '$AUTOREMOVE' to remove it.
  41. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded." aptget install -s -o APT::Get::HideAutoRemove=small
  42. testdpkginstalled 'po-debconf'
  43. echo 'APT::NeverAutoRemove { "^po-debconf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove
  44. testsuccess aptget autoremove -y
  45. testdpkginstalled 'po-debconf'
  46. echo 'APT::NeverAutoRemove { "^po-.*$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove
  47. testsuccess aptget autoremove -y
  48. testdpkginstalled "po-debconf"
  49. rm rootdir/etc/apt/apt.conf.d/00autoremove
  50. testsuccess aptget autoremove -y
  51. testdpkgnotinstalled 'po-debconf'
  52. testmarkedauto
  53. sed rootdir/var/log/apt/history.log -e '/^Commandline: / d' \
  54. -e '/^Start-Date: / d' -e '/^End-Date: / d' \
  55. -e '/^Requested-By: / d' \
  56. -e 's#), #)\nInstall: #g' | sort -u > apt-history.log
  57. testfileequal 'apt-history.log' '
  58. Install: debhelper:i386 (8.0.0)
  59. Install: po-debconf:i386 (1.0.16, automatic)
  60. Install: unrelated:i386 (1)
  61. Remove: debhelper:i386 (8.0.0)
  62. Remove: po-debconf:i386 (1.0.16)'
  63. testsuccess aptget install debhelper -y
  64. testdpkginstalled 'unrelated' 'debhelper' 'po-debconf'
  65. testsuccess aptmark auto debhelper
  66. testmarkedauto 'debhelper' 'po-debconf'
  67. testsuccessequal 'Reading package lists...
  68. Building dependency tree...
  69. Reading state information...
  70. The following packages will be REMOVED:
  71. debhelper po-debconf
  72. 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
  73. Remv debhelper [8.0.0]
  74. Remv po-debconf [1.0.16]' aptget autoremove -s
  75. testequal "Reading package lists...
  76. Building dependency tree...
  77. Reading state information...
  78. The following packages were automatically installed and are no longer required:
  79. debhelper po-debconf
  80. Use '$AUTOREMOVE' to remove them.
  81. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded." aptget install -s
  82. testequal "Reading package lists...
  83. Building dependency tree...
  84. Reading state information...
  85. 2 packages were automatically installed and are no longer required.
  86. Use '$AUTOREMOVE' to remove them.
  87. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded." aptget install -s -o APT::Get::HideAutoRemove=small
  88. testsuccess aptmark hold debhelper
  89. testsuccessequal 'Reading package lists...
  90. Building dependency tree...
  91. Reading state information...
  92. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget autoremove -s
  93. testsuccess aptget autoremove debhelper -y --allow-change-held-packages
  94. testdpkgnotinstalled 'po-debconf' 'debhelper'
  95. testmarkedauto
  96. testsuccess aptget install debhelper --solver apt -y -o Debug::pkgDepCache::Marker=1
  97. testmarkedauto 'po-debconf'