#!/bin/sh set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment configarchitecture 'amd64' 'i386' DESCR='Some description That has multiple lines' insertpackage 'unstable' 'fancy' 'all' '1' insertpackage 'unstable,installed' 'foo' 'all' '1' 'Depends: bar Conflicts: foobar Recommends: cool (>= 2) | cooler (<< 5)' "$DESCR" insertpackage 'unstable' 'bar' 'all' '1' 'Depends: bar Breaks: foo (<< 1) Replaces: foo (<< 1)' "$DESCR" insertpackage 'unstable' 'specific' 'all' '1' 'Depends: bar:i386, specific:amd64 Breaks: foo:amd64 (<< 1) Replaces: foo:i386 (<< 1)' "$DESCR" setupaptarchive # dpkg is installed by our framework testdpkginstalled 'dpkg' testempty aptcache unmet dpkg # FIXME: Find some usecase for unmet as it seems kinda useless/broken #testsuccess aptcache unmet #testsuccess aptcache unmet foo # not too useful to test, but makes coverage green… testsuccess aptcache stats cp rootdir/tmp/testsuccess.output stats.output testsuccess test -s stats.output testfailureequal 'E: apt-cache stats does not take any arguments' aptcache stats foo testsuccess aptcache xvcg foo cp rootdir/tmp/testsuccess.output xvcg.output testsuccess test -s xvcg.output testsuccess aptcache dotty foo cp rootdir/tmp/testsuccess.output dotty.output testsuccess test -s dotty.output # for this, even the sourcecode says it is useless (expect debugging) testsuccess aptcache dump cp rootdir/tmp/testsuccess.output dump.output testsuccess test -s dump.output testsuccessequal 'bar foo dpkg specific fancy' aptcache pkgnames testsuccessequal 'bar' aptcache pkgnames bar testsuccessequal 'foo fancy' aptcache pkgnames f testsuccessequal " foo | 1 | file:$(readlink -f .)/aptarchive unstable/main all Packages" aptcache madison foo ### depends testsuccessequal 'foo Depends: bar Conflicts: <foobar> |Recommends: <cool> Recommends: <cooler>' aptcache depends foo testsuccessequal 'foo Depends: bar Conflicts: <foobar> |Recommends: <cool> Recommends: <cooler>' aptcache depends foo --implicit testsuccessequal 'foo Depends: bar Conflicts: <foobar> Recommends: <cool>' aptcache depends foo -o APT::Cache::ShowOnlyFirstOr=1 testsuccessequal 'foo Depends: bar Conflicts: <foobar> Recommends: <cool>' aptcache depends foo -o APT::Cache::ShowOnlyFirstOr=1 --implicit testsuccessequal 'foo Depends: bar Conflicts: <foobar> |Recommends: <cool> (>= 2) Recommends: <cooler> (<< 5)' aptcache depends foo -o APT::Cache::ShowVersion=1 testsuccessequal 'foo Depends: bar Conflicts: <foobar> |Recommends: <cool> (>= 2) Recommends: <cooler> (<< 5)' aptcache depends foo -o APT::Cache::ShowVersion=1 --implicit testsuccessequal 'foo Depends: bar Conflicts: <foobar>' aptcache depends foo --no-recommends testsuccessequal 'foo Depends: bar Conflicts: <foobar>' aptcache depends foo --no-recommends --implicit testsuccessequal 'foo Depends: bar' aptcache depends foo --important --implicit testsuccessequal 'foo Conflicts: <foobar>' aptcache depends foo --important --no-depends --conflicts testsuccessequal 'foo Conflicts: <foobar>' aptcache depends foo --important --no-depends --conflicts --implicit testsuccessequal 'foo Depends: bar Conflicts: <foobar> |Recommends: <cool> Recommends: <cooler> bar Depends: bar Breaks: foo Replaces: foo <foobar> <cool> <cooler>' aptcache depends foo --recurse testsuccessequal 'foo Depends: bar Conflicts: <foobar> |Recommends: <cool> Recommends: <cooler> bar Depends: bar Breaks: foo Replaces: foo Breaks: <foo:i386> Replaces: <foo:i386> <foobar> <cool> <cooler> <foo:i386>' aptcache depends foo --recurse --implicit testsuccessequal 'foo Depends: bar bar Depends: bar Replaces: foo' aptcache depends foo --recurse --important --replaces testsuccessequal 'foo Depends: bar bar Depends: bar Replaces: foo Replaces: <foo:i386> <foo:i386>' aptcache depends foo --recurse --important --replaces --implicit testsuccessequal 'bar Depends: bar Breaks: foo Replaces: foo' aptcache depends bar testsuccessequal 'bar Depends: bar Breaks: foo Replaces: foo Breaks: <foo:i386> Replaces: <foo:i386>' aptcache depends bar --implicit testsuccessequal 'specific Depends: <bar:i386> Depends: <specific:amd64> specific Breaks: <foo:amd64> Replaces: <foo:i386>' aptcache depends specific testsuccessequal 'specific Depends: <bar:i386> Depends: <specific:amd64> specific Breaks: <foo:amd64> Replaces: <foo:i386>' aptcache depends specific --implicit ## rdepends # Note that specific does not appear in this list as it doesn't depend on foo, # but on an arch-specific foo! testsuccessequal 'foo Reverse Depends: bar bar' aptcache rdepends foo testsuccessequal 'foo Reverse Depends: Breaks: bar Replaces: bar' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 testsuccessequal 'foo Reverse Depends: Breaks: bar (<< 1) Replaces: bar (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1 testsuccessequal 'foo Reverse Depends: Breaks: bar (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1 --important --breaks