X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/355a960dd8bfbe2606be95d38aafd6bc0675d76f..742f67eaede80d2f9b3631d8697ebd63b8f95427:/test/integration/test-apt-extracttemplates diff --git a/test/integration/test-apt-extracttemplates b/test/integration/test-apt-extracttemplates index ae2cc8bc2..b299d85f4 100755 --- a/test/integration/test-apt-extracttemplates +++ b/test/integration/test-apt-extracttemplates @@ -1,45 +1,70 @@ #!/bin/sh set -e -TESTDIR=$(readlink -f $(dirname $0)) -. $TESTDIR/framework +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" setupenvironment configarchitecture 'amd64' # apt-extracttemplates needs this -insertinstalledpackage 'debconf' 'amd64' '1.5' insertinstalledpackage 'pkg-with-template' 'amd64' '1.0' -# build a simple package that contains a config and a tempalte +# build a simple package that contains a config and a template mkdir -p DEBIAN -TEMPLATE_STR="Template: foo/bar -Type: string -Description: Some bar var -" -echo "$TEMPLATE_STR" > DEBIAN/templates - CONFIG_STR="#!/bin/sh random shell stuff " echo "$CONFIG_STR" > DEBIAN/config -buildsimplenativepackage 'pkg-with-template' 'amd64' '0.8.15' 'stable' '' 'pkg with template' '' '' './DEBIAN' +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 we get the right stuff out of the file -mkdir extracttemplates-out -OUT="$(aptextracttemplates -t ./extracttemplates-out incoming/pkg-with-template*.deb)" + # 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 -PKG=$(printf "$OUT" | cut -f1 -d' ') -INSTALLED_VER=$(printf "$OUT" | cut -f2 -d' ') -TEMPLATE=$(printf "$OUT" | cut -f3 -d' ') -CONFIG=$(printf "$OUT" | cut -f4 -d' ') + 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 +} -testequal "$CONFIG_STR" cat $CONFIG -testequal "$TEMPLATE_STR" cat $TEMPLATE +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)' -# 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 +# 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?'