]> git.saurik.com Git - apt.git/blob - test/integration/test-apt-get-install-deb
avoid using global PendingError to avoid failing too often too soon
[apt.git] / test / integration / test-apt-get-install-deb
1 #!/bin/sh
2 set -e
3
4 TESTDIR=$(readlink -f $(dirname $0))
5 . $TESTDIR/framework
6
7 setupenvironment
8 configarchitecture 'amd64' 'i386'
9
10 # regression test for #754904
11 testfailureequal 'E: Unable to locate package /dev/null' aptget install -qq /dev/null
12
13 # only consider .deb files
14 cat > foo.rpm <<EOF
15 I'm not a deb, I'm a teapot.
16 EOF
17 testfailureequal "E: Unable to locate package ./foo.rpm
18 E: Couldn't find any package by glob './foo.rpm'
19 E: Couldn't find any package by regex './foo.rpm'" aptget install -qq ./foo.rpm
20
21 # and ensure we fail for invalid debs
22 mv foo.rpm foo.deb
23 testfailure aptget install ./foo.deb
24 testsuccess grep '^E: Sub-process Popen returned an error code' rootdir/tmp/testfailure.output
25 testequal "E: Encountered a section with no Package: header
26 E: Problem with MergeList ${TMPWORKINGDIRECTORY}/foo.deb
27 E: The package lists or status file could not be parsed or opened." tail -n 3 rootdir/tmp/testfailure.output
28
29 # fakeroot is currently not found, framwork needs updating
30 buildsimplenativepackage 'foo' 'i386,amd64' '1.0'
31
32 testfailureequal "Reading package lists...
33 Building dependency tree...
34 Note, selecting 'foo:i386' instead of './incoming/foo_1.0_i386.deb'
35 Note, selecting 'foo' instead of './incoming/foo_1.0_amd64.deb'
36 Some packages could not be installed. This may mean that you have
37 requested an impossible situation or if you are using the unstable
38 distribution that some required packages have not yet been created
39 or been moved out of Incoming.
40 The following information may help to resolve the situation:
41
42 The following packages have unmet dependencies:
43 foo:i386 : Conflicts: foo but 1.0 is to be installed
44 foo : Conflicts: foo:i386 but 1.0 is to be installed
45 E: Unable to correct problems, you have held broken packages." aptget install ./incoming/foo_1.0_i386.deb ./incoming/foo_1.0_amd64.deb -s -q=0
46
47 testdpkgnotinstalled 'foo'
48 testsuccess aptget install ./incoming/foo_1.0_i386.deb -o Debug::pkgCacheGen=1
49 testdpkginstalled 'foo:i386'
50
51 testsuccessequal "Reading package lists...
52 Building dependency tree...
53 Reading state information...
54 Note, selecting 'foo' instead of './incoming/foo_1.0_amd64.deb'
55 The following packages will be REMOVED:
56 foo:i386
57 The following NEW packages will be installed:
58 foo
59 0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
60 Remv foo:i386 [1.0]
61 Inst foo (1.0 local-deb [amd64])
62 Conf foo (1.0 local-deb [amd64])" aptget install ./incoming/foo_1.0_amd64.deb -s -q=0
63
64 # Check that installing the local deb works if it is not the candidate
65 echo "Package: foo
66 Pin: version 1.0
67 Pin-Priority: -1" > rootdir/etc/apt/preferences
68
69 testsuccessequal "Reading package lists...
70 Building dependency tree...
71 Reading state information...
72 Note, selecting 'foo' instead of './incoming/foo_1.0_amd64.deb'
73 The following packages will be REMOVED:
74 foo:i386
75 The following NEW packages will be installed:
76 foo
77 0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
78 Remv foo:i386 [1.0]
79 Inst foo (1.0 local-deb [amd64])
80 Conf foo (1.0 local-deb [amd64])" aptget install ./incoming/foo_1.0_amd64.deb -s -q=0