test-apt-cache 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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. |Recommends: <cool>
  59. Recommends: <cooler>' aptcache depends foo --implicit
  60. testsuccessequal 'foo
  61. Depends: bar
  62. Conflicts: <foobar>
  63. Recommends: <cool>' aptcache depends foo -o APT::Cache::ShowOnlyFirstOr=1
  64. testsuccessequal 'foo
  65. Depends: bar
  66. Conflicts: <foobar>
  67. Recommends: <cool>' aptcache depends foo -o APT::Cache::ShowOnlyFirstOr=1 --implicit
  68. testsuccessequal 'foo
  69. Depends: bar
  70. Conflicts: <foobar>
  71. |Recommends: <cool> (>= 2)
  72. Recommends: <cooler> (<< 5)' aptcache depends foo -o APT::Cache::ShowVersion=1
  73. testsuccessequal 'foo
  74. Depends: bar
  75. Conflicts: <foobar>
  76. |Recommends: <cool> (>= 2)
  77. Recommends: <cooler> (<< 5)' aptcache depends foo -o APT::Cache::ShowVersion=1 --implicit
  78. testsuccessequal 'foo
  79. Depends: bar
  80. Conflicts: <foobar>' aptcache depends foo --no-recommends
  81. testsuccessequal 'foo
  82. Depends: bar
  83. Conflicts: <foobar>' aptcache depends foo --no-recommends --implicit
  84. testsuccessequal 'foo
  85. Depends: bar' aptcache depends foo --important --implicit
  86. testsuccessequal 'foo
  87. Conflicts: <foobar>' aptcache depends foo --important --no-depends --conflicts
  88. testsuccessequal 'foo
  89. Conflicts: <foobar>' aptcache depends foo --important --no-depends --conflicts --implicit
  90. testsuccessequal 'foo
  91. Depends: bar
  92. Conflicts: <foobar>
  93. |Recommends: <cool>
  94. Recommends: <cooler>
  95. bar
  96. Depends: bar
  97. Breaks: foo
  98. Replaces: foo
  99. <foobar>
  100. <cool>
  101. <cooler>' aptcache depends foo --recurse
  102. testsuccessequal 'foo
  103. Depends: bar
  104. Conflicts: <foobar>
  105. |Recommends: <cool>
  106. Recommends: <cooler>
  107. bar
  108. Depends: bar
  109. Breaks: foo
  110. Replaces: foo
  111. Breaks: <foo:i386>
  112. Replaces: <foo:i386>
  113. <foobar>
  114. <cool>
  115. <cooler>
  116. <foo:i386>' aptcache depends foo --recurse --implicit
  117. testsuccessequal 'foo
  118. Depends: bar
  119. bar
  120. Depends: bar
  121. Replaces: foo' aptcache depends foo --recurse --important --replaces
  122. testsuccessequal 'foo
  123. Depends: bar
  124. bar
  125. Depends: bar
  126. Replaces: foo
  127. Replaces: <foo:i386>
  128. <foo:i386>' aptcache depends foo --recurse --important --replaces --implicit
  129. testsuccessequal 'bar
  130. Depends: bar
  131. Breaks: foo
  132. Replaces: foo' aptcache depends bar
  133. testsuccessequal 'bar
  134. Depends: bar
  135. Breaks: foo
  136. Replaces: foo
  137. Breaks: <foo:i386>
  138. Replaces: <foo:i386>' aptcache depends bar --implicit
  139. testsuccessequal 'specific
  140. Depends: <bar:i386>
  141. Depends: specific:amd64
  142. Breaks: foo:amd64
  143. Replaces: <foo:i386>' aptcache depends specific
  144. testsuccessequal 'specific
  145. Depends: <bar:i386>
  146. Depends: specific:amd64
  147. Breaks: foo:amd64
  148. Replaces: <foo:i386>' aptcache depends specific --implicit
  149. ## rdpends
  150. testsuccessequal 'foo
  151. Reverse Depends:
  152. bar
  153. specific
  154. bar' aptcache rdepends foo
  155. testsuccessequal 'foo
  156. Reverse Depends:
  157. Breaks: bar
  158. Breaks: specific
  159. Replaces: bar' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1
  160. testsuccessequal 'foo
  161. Reverse Depends:
  162. Breaks: bar (<< 1)
  163. Breaks: specific (<< 1)
  164. Replaces: bar (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1
  165. testsuccessequal 'foo
  166. Reverse Depends:
  167. Breaks: bar (<< 1)
  168. Breaks: specific (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1 --important --breaks