You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

181 lines
4.9 KiB

#!/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
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 'dpkg
bar
specific
fancy
foo' aptcache pkgnames
testsuccessequal 'bar' aptcache pkgnames bar
testsuccessequal 'fancy
foo' aptcache pkgnames f
testsuccessequal " foo | 1 | file:$(readlink -f .)/aptarchive unstable/main amd64 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
Breaks: foo:amd64
Replaces: <foo:i386>' aptcache depends specific
testsuccessequal 'specific
Depends: <bar:i386>
Depends: specific:amd64
Breaks: foo:amd64
Replaces: <foo:i386>' aptcache depends specific --implicit
## rdpends
testsuccessequal 'foo
Reverse Depends:
bar
specific
bar' aptcache rdepends foo
testsuccessequal 'foo
Reverse Depends:
Breaks: bar
Breaks: specific
Replaces: bar' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1
testsuccessequal 'foo
Reverse Depends:
Breaks: bar (<< 1)
Breaks: specific (<< 1)
Replaces: bar (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1
testsuccessequal 'foo
Reverse Depends:
Breaks: bar (<< 1)
Breaks: specific (<< 1)' aptcache rdepends foo -o APT::Cache::ShowDependencyType=1 -o APT::Cache::ShowVersion=1 --important --breaks