1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/sh
- set -e
- TESTDIR="$(readlink -f "$(dirname "$0")")"
- . "$TESTDIR/framework"
- setupenvironment
- configarchitecture 'amd64'
- # apt-extracttemplates needs this
- insertinstalledpackage 'pkg-with-template' 'amd64' '1.0'
- # build a simple package that contains a config and a template
- mkdir -p DEBIAN
- CONFIG_STR="#!/bin/sh
- random shell stuff
- "
- echo "$CONFIG_STR" > DEBIAN/config
- testrun() {
- local TEMPLATE_STR='Template: foo/bar
- Type: string
- Description: Some bar var
- '
- echo "$TEMPLATE_STR" > DEBIAN/templates
- buildsimplenativepackage "$1" 'amd64' '0.8.15' 'stable' "$2" 'pkg with template' '' '' './DEBIAN'
- cp dpkg.status rootdir/var/lib/dpkg/status
- insertinstalledpackage 'debconf' 'amd64' '3'
- # ensure we get the right stuff out of the file
- rm -rf extracttemplates-out rootdir/var/cache/apt
- mkdir extracttemplates-out
- testsuccess aptextracttemplates -t ./extracttemplates-out incoming/${1}*.deb
- OUT='rootdir/tmp/testsuccess.output'
- testequal "$1" cut -f1 -d' ' $OUT
- if [ -n "$2" ]; then
- testequal '' cut -s -f2 -d' ' $OUT
- else
- testequal '1.0' cut -f2 -d' ' $OUT
- fi
- TEMPLATE=$(cut -f3 -d' ' $OUT)
- testfileequal "$TEMPLATE" "$TEMPLATE_STR"
- CONFIG=$(cut -f4 -d' ' $OUT)
- testfileequal "$CONFIG" "$CONFIG_STR"
- # ensure that the format of the output string has the right number of dots
- for s in "$CONFIG" "$TEMPLATE"; do
- NR_DOTS=$(basename "$s" | tr -c -d '.')
- testequal '..' echo $NR_DOTS
- done
- if [ -n "$2" ]; then
- rm -rf extracttemplates-out rootdir/var/cache/apt
- mkdir extracttemplates-out
- cp dpkg.status rootdir/var/lib/dpkg/status
- insertinstalledpackage 'debconf' 'amd64' '1'
- testempty aptextracttemplates -t ./extracttemplates-out incoming/${1}*.deb
- fi
- }
- cp rootdir/var/lib/dpkg/status dpkg.status
- testrun 'pkg-with-template' ''
- testrun 'pkg-with-template-depends' 'Depends: debconf (>= 2)'
- testrun 'pkg-with-template-predepends' 'Pre-Depends: debconf (>= 2)'
- # test with no debconf installed
- cp dpkg.status rootdir/var/lib/dpkg/status
- testfailure aptextracttemplates -t ./extracttemplates-out incoming/pkg-with-template-depends*.deb
- testfileequal 'rootdir/tmp/testfailure.output' 'E: Cannot get debconf version. Is debconf installed?'
|