summaryrefslogtreecommitdiff
path: root/tests/tests
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2015-07-27 13:16:14 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2015-07-27 13:16:14 +0100
commitcfec91c99eff2ed5d6e914b54ef81d9ddca78ca8 (patch)
treec3f1884c127f83ea381559a661be68b623ec8080 /tests/tests
parentf1e6215c9cfc0b24822713bce52174c70ff8d6b9 (diff)
Test suite: Provide tests which check that all our various build operations run the right targets as expected (ie, that we are massaging the arguments to dpkg-buildpackage, and suppressing our clean target, etc., correctly).
Diffstat (limited to 'tests/tests')
-rwxr-xr-xtests/tests/build-modes28
-rwxr-xr-xtests/tests/build-modes-gbp37
-rwxr-xr-xtests/tests/build-modes-sbuild33
3 files changed, 98 insertions, 0 deletions
diff --git a/tests/tests/build-modes b/tests/tests/build-modes
new file mode 100755
index 0000000..f01bc99
--- /dev/null
+++ b/tests/tests/build-modes
@@ -0,0 +1,28 @@
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-build-modes
+
+bm-prep
+
+for act in \
+ 'build' \
+ 'build -S' \
+ 'build -b' \
+ 'build -B' \
+ 'build -A' \
+ 'build -F' \
+ build-source \
+; do
+ bm-guess-e-source-e-targets "$act"
+
+ case $act in
+ build-source) e_source=true; e_targets='' ;;
+ esac
+
+ real_act="$act"
+
+ bm-act-iterate
+done
+
+echo ok.
diff --git a/tests/tests/build-modes-gbp b/tests/tests/build-modes-gbp
new file mode 100755
index 0000000..938e589
--- /dev/null
+++ b/tests/tests/build-modes-gbp
@@ -0,0 +1,37 @@
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-build-modes
+
+t-dependencies git-buildpackage
+
+quirk-clean-fixup () {
+ case $cleanmode in
+ dpkg-source*)
+ # git-buildpackage runs the clean target twice somehow
+ perl -i.unfixed -ne '
+ print unless
+ $_ eq $last &&
+ $_ eq "EXAMPLE RULES TARGET clean\n";
+ $last = $_;
+ ' $bmgot
+ ;;
+ esac
+}
+bm_quirk_before_diff=quirk-clean-fixup
+
+bm-prep
+
+for act in \
+ 'git-build -S' \
+ 'git-build -b' \
+ 'git-build -B' \
+ 'git-build -A' \
+ 'git-build -F' \
+; do
+ bm-guess-e-source-e-targets "$act"
+ real_act="$act --git-ignore-branch"
+ bm-act-iterate
+done
+
+echo ok.
diff --git a/tests/tests/build-modes-sbuild b/tests/tests/build-modes-sbuild
new file mode 100755
index 0000000..826c467
--- /dev/null
+++ b/tests/tests/build-modes-sbuild
@@ -0,0 +1,33 @@
+#!/bin/bash
+set -e
+. tests/lib
+. $troot/lib-build-modes
+
+t-dependencies sbuild
+t-restrict x-dgit-schroot-build
+
+arch=$(dpkg-architecture -qDEB_BUILD_ARCH)
+after-hook () {
+ # sbuild likes to run the package clean target in the chroot,
+ # which isn't necessary in our case. We don't disable it in
+ # dgit because we want to do what sbuild does, in case there
+ # are packages which don't build unless their clean target was
+ # run. We know it must be running it in the chroot because we
+ # provide sbuild with the dsc, not the tree, so we simply
+ # ignore all executions of the clean target by schroot.
+ sed '
+ s/^EXAMPLE RULES TARGET clean/HOOK SUPPRESSED &/;
+ ' ../example_1.0_$arch.build >>$bmlog
+}
+bm_quirk_after_act=after-hook
+
+bm-prep
+
+act="sbuild -c build"
+real_act="$act --no-arch-all"
+
+e_source=true
+e_targets='build-arch binary-arch'
+bm-act-iterate
+
+echo ok.