test-apt-cache 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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. testsuccess aptcache xvcg foo
  31. cp rootdir/tmp/testsuccess.output xvcg.output
  32. testsuccess test -s xvcg.output
  33. testsuccess aptcache dotty foo
  34. cp rootdir/tmp/testsuccess.output dotty.output
  35. testsuccess test -s dotty.output
  36. # for this, even the sourcecode says it is useless (expect debugging)
  37. testsuccess aptcache dump
  38. cp rootdir/tmp/testsuccess.output dump.output
  39. testsuccess test -s dump.output
  40. testsuccessequal 'dpkg
  41. bar
  42. specific
  43. fancy
  44. foo' aptcache pkgnames
  45. testsuccessequal 'bar' aptcache pkgnames bar
  46. testsuccessequal 'fancy
  47. foo' aptcache pkgnames f
  48. testsuccessequal " foo | 1 | file:$(readlink -f .)/aptarchive unstable/main amd64 Packages" aptcache madison foo
  49. ### depends
  50. testsuccessequal 'foo
  51. Depends: bar
  52. Conflicts: <foobar>
  53. |Recommends: <cool>
  54. Recommends: <cooler>' aptcache depends foo
  55. testsuccessequal 'foo
  56. Depends: bar
  57. Conflicts: <foobar>
  58. Conflicts: <foobar:i386>
  59. |Recommends: <cool>
  60. Recommends: <cooler>' aptcache depends foo --implicit
  61. testsuccessequal 'foo
  62. Depends: bar
  63. Conflicts: <foobar>
  64. Recommends: <cool>' aptcache depends foo -o APT::Cache::ShowOnlyFirstOr=1
  65. testsuccessequal 'foo
  66. Depends: bar
  67. Conflicts: <foobar>
  68. Conflicts: <foobar:i386>
  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. Conflicts: <foobar:i386>
  79. |Recommends: <cool> (>= 2)
  80. Recommends: <cooler> (<< 5)' aptcache depends foo -o APT::Cache::ShowVersion=1 --implicit
  81. testsuccessequal 'foo
  82. Depends: bar
  83. Conflicts: <foobar>' aptcache depends foo --no-recommends
  84. testsuccessequal 'foo
  85. Depends: bar
  86. Conflicts: <foobar>
  87. Conflicts: <foobar:i386>' aptcache depends foo --no-recommends --implicit
  88. testsuccessequal 'foo
  89. Depends: bar' aptcache depends foo --important --implicit
  90. testsuccessequal 'foo
  91. Conflicts: <foobar>' aptcache depends foo --important --no-depends --conflicts
  92. testsuccessequal 'foo
  93. Conflicts: <foobar>
  94. Conflicts: <foobar:i386>' aptcache depends foo --important --no-depends --conflicts --implicit
  95. testsuccessequal 'foo
  96. Depends: bar
  97. Conflicts: <foobar>
  98. |Recommends: <cool>
  99. Recommends: <cooler>
  100. bar
  101. Depends: bar
  102. Breaks: foo
  103. Replaces: foo
  104. <foobar>
  105. <cool>
  106. <cooler>' aptcache depends foo --recurse
  107. testsuccessequal 'foo
  108. Depends: bar
  109. Conflicts: <foobar>
  110. Conflicts: <foobar:i386>
  111. |Recommends: <cool>
  112. Recommends: <cooler>
  113. bar
  114. Depends: bar
  115. Breaks: foo
  116. Breaks: <foo:i386>
  117. Replaces: foo
  118. Replaces: <foo:i386>
  119. <foobar>
  120. <foobar:i386>
  121. <cool>
  122. <cooler>
  123. <foo:i386>' aptcache depends foo --recurse --implicit
  124. testsuccessequal 'foo
  125. Depends: bar
  126. bar
  127. Depends: bar
  128. Replaces: foo' aptcache depends foo --recurse --important --replaces
  129. testsuccessequal 'foo
  130. Depends: bar
  131. bar
  132. Depends: bar
  133. Replaces: foo
  134. Replaces: <foo:i386>
  135. <foo:i386>' aptcache depends foo --recurse --important --replaces --implicit
  136. testsuccessequal 'bar
  137. Depends: bar
  138. Breaks: foo
  139. Replaces: foo' aptcache depends bar
  140. testsuccessequal 'bar
  141. Depends: bar
  142. Breaks: foo
  143. Breaks: <foo:i386>
  144. Replaces: foo
  145. Replaces: <foo:i386>' aptcache depends bar --implicit
  146. testsuccessequal 'specific
  147. Depends: <bar:i386>
  148. Depends: specific:amd64
  149. Breaks: foo:amd64
  150. Replaces: <foo:i386>' aptcache depends specific
  151. testsuccessequal 'specific
  152. Depends: <bar:i386>
  153. Depends: specific:amd64
  154. Breaks: foo:amd64
  155. Replaces: <foo:i386>' aptcache depends specific --implicit
  156. ## rdpends
  157. testsuccessequal 'foo
  158. Reverse Depends:
  159. bar
  160. specific
  161. bar' aptcache rdepends foo
  162. testsuccessequal 'foo
  163. Reverse Depends:
  164. Breaks: bar
  165. Breaks: specific
  166. Replaces: bar' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1
  167. testsuccessequal 'foo
  168. Reverse Depends:
  169. Breaks: bar (<< 1)
  170. Breaks: specific (<< 1)
  171. Replaces: bar (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1
  172. testsuccessequal 'foo
  173. Reverse Depends:
  174. Breaks: bar (<< 1)
  175. Breaks: specific (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1 --important --breaks