Add testcase for apt list --all-versions
[ntk/apt.git] / test / integration / test-apt-cli-list
1 #!/bin/sh
2 set -e
3
4 TESTDIR=$(readlink -f $(dirname $0))
5 . $TESTDIR/framework
6
7 setupenvironment
8 configarchitecture "i386"
9
10 if [ ! -x ${BUILDDIRECTORY}/apt ]; then
11 msgmsg "No ${BUILDDIRECTORY}/apt"
12 msgskip
13 exit 0
14 fi
15
16 insertpackage 'unstable' 'foo' 'all' '1.0'
17 insertinstalledpackage 'bar' 'i386' '1.0'
18
19 insertinstalledpackage 'foobar' 'i386' '1.0'
20 insertpackage 'unstable' 'foobar' 'i386' '2.0'
21
22 insertinstalledpackage 'baz' 'all' '0.1'
23 insertpackage 'testing' 'baz' 'all' '1.0'
24 insertpackage 'unstable' 'baz' 'all' '2.0'
25
26 setupaptarchive
27
28 APTARCHIVE=$(readlink -f ./aptarchive)
29
30 testequal "Listing...
31 bar/now 1.0 i386 [installed,local]
32 baz/unstable 2.0 all [upgradable from: 0.1]
33 foo/unstable 1.0 all
34 foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list
35
36 testequal "Listing...
37 foo/unstable 1.0 all
38 foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list "foo*"
39
40 testequal "Listing...
41 baz/unstable 2.0 all [upgradable from: 0.1]
42 foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list --upgradable
43
44 # FIXME: hm, hm - does it make sense to have this different? shouldn't
45 # we use "installed,upgradable" consitently?
46 testequal "Listing...
47 bar/now 1.0 i386 [installed,local]
48 baz/now 0.1 all [installed,upgradable to: 2.0]
49 foobar/now 1.0 i386 [installed,upgradable to: 2.0]" apt list --installed
50
51 testequal "Listing...
52 bar/now 1.0 i386 [installed,local]
53
54 foobar/unstable 2.0 i386 [upgradable from: 1.0]
55 foobar/now 1.0 i386 [installed,upgradable to: 2.0]
56 " apt list bar foobar --all-versions
57
58 testequal "Listing...
59 bar/now 1.0 i386 [installed,local]
60 an autogenerated dummy bar=1.0/installed
61 " apt list bar --verbose
62
63 # test for dpkg ^rc state
64 insertinstalledpackage 'conf-only' 'i386' '1.0' '' '' 'deinstall ok config-files'
65 testequal "Listing...
66 conf-only/now 1.0 i386 [residual-config]" apt list conf-only
67
68 # ensure that the users learns about multiple versions too
69 testequal "Listing...
70 baz/unstable 2.0 all [upgradable from: 0.1]
71 N: There are 2 additional versions. Please use the '-a' switch to see them." apt list baz -o quiet=0
72
73 # test format strings for machine parseable output
74 apt list -qq bar baz -o APT::Cmd::use-format=true -o APT::Cmd::format="\${Package} - \${installed:Version} - \${candidate:Version}" > output.txt
75 testequal "bar - 1.0 - 1.0
76 baz - 0.1 - 2.0" cat output.txt