test-apt-cache 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. #!/bin/sh
  2. set -e
  3. TESTDIR=$(readlink -f $(dirname $0))
  4. . $TESTDIR/framework
  5. setupenvironment
  6. configarchitecture 'amd64' 'i386'
  7. DESCR='Some description
  8. That has multiple lines'
  9. insertpackage 'unstable' 'fancy' 'all' '1'
  10. insertpackage 'unstable,installed' 'foo' 'all' '1' 'Depends: bar
  11. Conflicts: foobar
  12. Recommends: cool (>= 2) | cooler (<< 5)' "$DESCR"
  13. insertpackage 'unstable' 'bar' 'all' '1' 'Depends: bar
  14. Breaks: foo (<< 1)
  15. Replaces: foo (<< 1)' "$DESCR"
  16. insertpackage 'unstable' 'specific' 'all' '1' 'Depends: bar:i386, specific:amd64
  17. Breaks: foo:amd64 (<< 1)
  18. Replaces: foo:i386 (<< 1)' "$DESCR"
  19. setupaptarchive
  20. # dpkg is installed by our framework
  21. testdpkginstalled 'dpkg'
  22. testempty aptcache unmet dpkg
  23. # FIXME: Find some usecase for unmet as it seems kinda useless/broken
  24. #testsuccess aptcache unmet
  25. #testsuccess aptcache unmet foo
  26. # not too useful to test, but makes coverage green…
  27. testsuccess aptcache stats
  28. cp rootdir/tmp/testsuccess.output stats.output
  29. testsuccess test -s stats.output
  30. testfailureequal 'E: apt-cache stats does not take any arguments' aptcache stats foo
  31. testsuccess aptcache xvcg foo
  32. cp rootdir/tmp/testsuccess.output xvcg.output
  33. testsuccess test -s xvcg.output
  34. testsuccess aptcache dotty foo
  35. cp rootdir/tmp/testsuccess.output dotty.output
  36. testsuccess test -s dotty.output
  37. # for this, even the sourcecode says it is useless (expect debugging)
  38. testsuccess aptcache dump
  39. cp rootdir/tmp/testsuccess.output dump.output
  40. testsuccess test -s dump.output
  41. testsuccessequal 'dpkg
  42. bar
  43. specific
  44. fancy
  45. foo' aptcache pkgnames
  46. testsuccessequal 'bar' aptcache pkgnames bar
  47. testsuccessequal 'fancy
  48. foo' aptcache pkgnames f
  49. testsuccessequal " foo | 1 | file:$(readlink -f .)/aptarchive unstable/main amd64 Packages
  50. foo | 1 | file:$(readlink -f .)/aptarchive unstable/main i386 Packages" aptcache madison foo
  51. ### depends
  52. testsuccessequal 'foo
  53. Depends: bar
  54. Conflicts: <foobar>
  55. |Recommends: <cool>
  56. Recommends: <cooler>' aptcache depends foo
  57. testsuccessequal 'foo
  58. Depends: bar
  59. Conflicts: <foobar>
  60. |Recommends: <cool>
  61. Recommends: <cooler>' aptcache depends foo --implicit
  62. testsuccessequal 'foo
  63. Depends: bar
  64. Conflicts: <foobar>
  65. Recommends: <cool>' aptcache depends foo -o APT::Cache::ShowOnlyFirstOr=1
  66. testsuccessequal 'foo
  67. Depends: bar
  68. Conflicts: <foobar>
  69. Recommends: <cool>' aptcache depends foo -o APT::Cache::ShowOnlyFirstOr=1 --implicit
  70. testsuccessequal 'foo
  71. Depends: bar
  72. Conflicts: <foobar>
  73. |Recommends: <cool> (>= 2)
  74. Recommends: <cooler> (<< 5)' aptcache depends foo -o APT::Cache::ShowVersion=1
  75. testsuccessequal 'foo
  76. Depends: bar
  77. Conflicts: <foobar>
  78. |Recommends: <cool> (>= 2)
  79. Recommends: <cooler> (<< 5)' aptcache depends foo -o APT::Cache::ShowVersion=1 --implicit
  80. testsuccessequal 'foo
  81. Depends: bar
  82. Conflicts: <foobar>' aptcache depends foo --no-recommends
  83. testsuccessequal 'foo
  84. Depends: bar
  85. Conflicts: <foobar>' aptcache depends foo --no-recommends --implicit
  86. testsuccessequal 'foo
  87. Depends: bar' aptcache depends foo --important --implicit
  88. testsuccessequal 'foo
  89. Conflicts: <foobar>' aptcache depends foo --important --no-depends --conflicts
  90. testsuccessequal 'foo
  91. Conflicts: <foobar>' aptcache depends foo --important --no-depends --conflicts --implicit
  92. testsuccessequal 'foo
  93. Depends: bar
  94. Conflicts: <foobar>
  95. |Recommends: <cool>
  96. Recommends: <cooler>
  97. bar
  98. Depends: bar
  99. Breaks: foo
  100. Replaces: foo
  101. <foobar>
  102. <cool>
  103. <cooler>' aptcache depends foo --recurse
  104. testsuccessequal 'foo
  105. Depends: bar
  106. Conflicts: <foobar>
  107. |Recommends: <cool>
  108. Recommends: <cooler>
  109. bar
  110. Depends: bar
  111. Breaks: foo
  112. Replaces: foo
  113. <foobar>
  114. <cool>
  115. <cooler>' aptcache depends foo --recurse --implicit
  116. testsuccessequal 'foo
  117. Depends: bar
  118. bar
  119. Depends: bar
  120. Replaces: foo' aptcache depends foo --recurse --important --replaces
  121. testsuccessequal 'foo
  122. Depends: bar
  123. bar
  124. Depends: bar
  125. Replaces: foo' aptcache depends foo --recurse --important --replaces --implicit
  126. testsuccessequal 'bar
  127. Depends: bar
  128. Breaks: foo
  129. Replaces: foo' aptcache depends bar
  130. testsuccessequal 'bar
  131. Depends: bar
  132. Breaks: foo
  133. Replaces: foo' aptcache depends bar --implicit
  134. testsuccessequal 'specific
  135. Depends: <bar:i386>
  136. Depends: <specific:amd64>
  137. specific
  138. Breaks: <foo:amd64>
  139. Replaces: <foo:i386>' aptcache depends specific
  140. testsuccessequal 'specific
  141. Depends: <bar:i386>
  142. Depends: <specific:amd64>
  143. specific
  144. Breaks: <foo:amd64>
  145. Replaces: <foo:i386>' aptcache depends specific --implicit
  146. ## rdepends
  147. # Note that specific does not appear in this list as it doesn't depend on foo,
  148. # but on an arch-specific foo!
  149. testsuccessequal 'foo
  150. Reverse Depends:
  151. bar
  152. bar' aptcache rdepends foo
  153. testsuccessequal 'foo
  154. Reverse Depends:
  155. Breaks: bar
  156. Replaces: bar' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1
  157. testsuccessequal 'foo
  158. Reverse Depends:
  159. Breaks: bar (<< 1)
  160. Replaces: bar (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1
  161. testsuccessequal 'foo
  162. Reverse Depends:
  163. Breaks: bar (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1 --important --breaks