]> git.saurik.com Git - apt.git/blame - test/integration/test-apt-extracttemplates
parse arch-qualified Provides correctly
[apt.git] / test / integration / test-apt-extracttemplates
CommitLineData
8d50b63f
MV
1#!/bin/sh
2set -e
3
4TESTDIR=$(readlink -f $(dirname $0))
5. $TESTDIR/framework
6
7setupenvironment
8configarchitecture 'amd64'
9
10# apt-extracttemplates needs this
8d50b63f
MV
11insertinstalledpackage 'pkg-with-template' 'amd64' '1.0'
12
13# build a simple package that contains a config and a tempalte
14mkdir -p DEBIAN
8d50b63f
MV
15CONFIG_STR="#!/bin/sh
16random shell stuff
17"
18echo "$CONFIG_STR" > DEBIAN/config
19
061ee5f0
DK
20testrun() {
21 local TEMPLATE_STR='Template: foo/bar
22Type: string
23Description: Some bar var
24'
25 echo "$TEMPLATE_STR" > DEBIAN/templates
26 buildsimplenativepackage "$1" 'amd64' '0.8.15' 'stable' "$2" 'pkg with template' '' '' './DEBIAN'
27
28 cp dpkg.status rootdir/var/lib/dpkg/status
29 insertinstalledpackage 'debconf' 'amd64' '3'
30
31 # ensure we get the right stuff out of the file
32 rm -rf extracttemplates-out rootdir/var/cache/apt
33 mkdir extracttemplates-out
34 testsuccess aptextracttemplates -t ./extracttemplates-out incoming/${1}*.deb
35 OUT='rootdir/tmp/testsuccess.output'
36 testequal "$1" cut -f1 -d' ' $OUT
37 if [ -n "$2" ]; then
38 testequal '' cut -f2 -d' ' $OUT
39 else
40 testequal '1.0' cut -f2 -d' ' $OUT
41 fi
42 TEMPLATE=$(cut -f3 -d' ' $OUT)
43 testfileequal "$TEMPLATE" "$TEMPLATE_STR"
44 CONFIG=$(cut -f4 -d' ' $OUT)
45 testfileequal "$CONFIG" "$CONFIG_STR"
8d50b63f 46
061ee5f0
DK
47 # ensure that the format of the output string has the right number of dots
48 for s in "$CONFIG" "$TEMPLATE"; do
49 NR_DOTS=$(basename "$s" | tr -c -d '.')
50 testequal '..' echo $NR_DOTS
51 done
8d50b63f 52
061ee5f0
DK
53 if [ -n "$2" ]; then
54 rm -rf extracttemplates-out rootdir/var/cache/apt
55 mkdir extracttemplates-out
56 cp dpkg.status rootdir/var/lib/dpkg/status
57 insertinstalledpackage 'debconf' 'amd64' '1'
58 testempty aptextracttemplates -t ./extracttemplates-out incoming/${1}*.deb
59 fi
60}
8d50b63f 61
061ee5f0
DK
62cp rootdir/var/lib/dpkg/status dpkg.status
63testrun 'pkg-with-template' ''
64testrun 'pkg-with-template-depends' 'Depends: debconf (>= 2)'
65testrun 'pkg-with-template-predepends' 'Pre-Depends: debconf (>= 2)'
8d50b63f 66
061ee5f0
DK
67# test with no debconf installed
68cp dpkg.status rootdir/var/lib/dpkg/status
69testfailure aptextracttemplates -t ./extracttemplates-out incoming/pkg-with-template-depends*.deb
70testfileequal 'rootdir/tmp/testfailure.output' 'E: Cannot get debconf version. Is debconf installed?'