[PATCH] Testsuite for checkarchitecture, and adjustments to pass the testsuite
Matt Palmer
mpalmer at hezmatt.org
Thu Dec 16 01:16:11 UTC 2010
This contains a minimal test suite for pbuilder-buildpackage-funcs (just
covering the newly added checkarchitecture function), with tests as
suggested by http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=363193#186
There are also a couple of minor modifications to the checkarchitecture code
to fix bugs exposed by the testsuite.
---
pbuilder-buildpackage-funcs | 4 +-
test_pbuilder-buildpackage-funcs | 74 ++++++++++++++++++++++++++++++++++++++
2 files changed, 76 insertions(+), 2 deletions(-)
create mode 100755 test_pbuilder-buildpackage-funcs
diff --git a/pbuilder-buildpackage-funcs b/pbuilder-buildpackage-funcs
index a757963..47d5da3 100644
--- a/pbuilder-buildpackage-funcs
+++ b/pbuilder-buildpackage-funcs
@@ -36,12 +36,12 @@ function checkarchitecture () {
local ARCHES="$(cat $DSCFILE | grep Architecture | sed 's/^[^:]\+:\s*//')"
local VALID_ARCH
for d in $ARCHES; do
- if dpkg-architecture -a$ARCH -i$d; then
+ if dpkg-architecture -a$ARCH -i$d >/dev/null 2>&1 || [ "$d" = "all" ]; then
VALID_ARCH="yes"
break
fi
done
- if [ ! $VALID_ARCH ] && [ ! "$ARCHES" = "all" ]; then
+ if [ "$VALID_ARCH" != "yes" ]; then
return 1
fi
}
diff --git a/test_pbuilder-buildpackage-funcs b/test_pbuilder-buildpackage-funcs
new file mode 100755
index 0000000..f14f2ba
--- /dev/null
+++ b/test_pbuilder-buildpackage-funcs
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+# testsuite to test pbuilder-buildpackage-funcs.
+
+if [ -n "$PBUILDER_CHECKOUT" ]; then
+ . "$PBUILDER_CHECKOUT/testlib.sh"
+
+ . "$PBUILDER_CHECKOUT/pbuilder-buildpackage-funcs"
+else
+ # these currently don't need to be exported
+ PBUILDER_TEST_ROOT="${PBUILDER_ROOT:-}"
+ PBUILDER_TEST_PKGLIBDIR="${PBUILDER_PKGLIBDIR:-$PBUILDER_ROOT/usr/lib/pbuilder}"
+ . "$PBUILDER_TEST_PKGLIBDIR/testlib.sh"
+
+ . "$PBUILDER_TEST_PKGLIBDIR/pbuilder-buildpackage-funcs"
+fi
+
+DSC=""
+
+cleanup() {
+ if [ -n "$DSC" ]; then
+ rm -f "$DSC"
+ fi
+}
+
+write_dsc_for_checkarchitecture() {
+ local ARCHLIST="$1"
+ cat <<EOF >"$DSC"
+Source: test
+Architecture: $ARCHLIST
+EOF
+}
+
+trap cleanup sigpipe sighup exit
+
+# TODO move to build dir
+DSC="$(tempfile)"
+
+write_dsc_for_checkarchitecture "any"
+expect_success checkarchitecture $DSC "i386"
+expect_success checkarchitecture $DSC "amd64"
+expect_success checkarchitecture $DSC "armel"
+expect_success checkarchitecture $DSC "kfreebsd-i386"
+
+write_dsc_for_checkarchitecture "all"
+expect_success checkarchitecture $DSC "i386"
+expect_success checkarchitecture $DSC "amd64"
+expect_success checkarchitecture $DSC "armel"
+expect_success checkarchitecture $DSC "kfreebsd-i386"
+
+write_dsc_for_checkarchitecture "i386 amd64"
+expect_success checkarchitecture $DSC "i386"
+expect_success checkarchitecture $DSC "amd64"
+expect_fail checkarchitecture $DSC "armel"
+
+write_dsc_for_checkarchitecture "linux-any"
+expect_success checkarchitecture $DSC "i386"
+expect_success checkarchitecture $DSC "amd64"
+expect_success checkarchitecture $DSC "armel"
+expect_fail checkarchitecture $DSC "kfreebsd-i386"
+
+write_dsc_for_checkarchitecture "hurd-any"
+expect_fail checkarchitecture $DSC "i386"
+expect_fail checkarchitecture $DSC "amd64"
+expect_success checkarchitecture $DSC "hurd-i386"
+
+# Policy 5.6.8 says that .dsc files can have this style of architecture list
+write_dsc_for_checkarchitecture "all i386 amd64"
+expect_success checkarchitecture $DSC "i386"
+expect_success checkarchitecture $DSC "amd64"
+expect_success checkarchitecture $DSC "armel"
+expect_success checkarchitecture $DSC "kfreebsd-i386"
+
+testlib_summary
--
1.5.6.5
--qjNfmADvan18RZcF--
More information about the Pbuilder-maint
mailing list