From 3e0e30a2fab1b5770c770bbc4df3d55bef611d20 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 3 Aug 2017 09:53:58 +0100 Subject: [PATCH] test suite: dpkgsourceignores-docs: Check dgit-maint-merge(7) -i -I rune Check that the rune we document is the same as dgit actually uses. Signed-off-by: Ian Jackson --- debian/tests/control | 2 +- dgit-maint-merge.7.pod | 4 ++ tests/tests/dpkgsourceignores-docs | 60 ++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100755 tests/tests/dpkgsourceignores-docs diff --git a/debian/tests/control b/debian/tests/control index f7f76119..efeeeed6 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -34,7 +34,7 @@ Tests-Directory: tests/tests Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential Restrictions: x-dgit-git-only -Tests: absurd-gitapply badcommit-rewrite build-modes build-modes-asplit build-modes-gbp-asplit clone-clogsigpipe clone-gitnosuite clone-nogit debpolicy-dbretry debpolicy-newreject debpolicy-quilt-gbp defdistro-rpush defdistro-setup distropatches-reject drs-clone-nogit drs-push-masterupdate drs-push-rejects dsd-clone-nogit dsd-divert fetch-localgitonly fetch-somegit-notlast gbp-orig gitconfig gitworktree import-dsc import-maintmangle import-native import-nonnative import-tarbomb inarchivecopy mismatches-contents mismatches-dscchanges multisuite newtag-clone-nogit oldnewtagalt oldtag-clone-nogit orig-include-exclude orig-include-exclude-chkquery overwrite-chkclog overwrite-junk overwrite-splitbrains overwrite-version protocol-compat push-buildproductsdir push-newpackage push-nextdgit quilt quilt-gbp quilt-gbp-build-modes quilt-singlepatch quilt-splitbrains quilt-useremail rpush tag-updates test-list-uptodate trustingpolicy-replay unrepresentable version-opt +Tests: absurd-gitapply badcommit-rewrite build-modes build-modes-asplit build-modes-gbp-asplit clone-clogsigpipe clone-gitnosuite clone-nogit debpolicy-dbretry debpolicy-newreject debpolicy-quilt-gbp defdistro-rpush defdistro-setup distropatches-reject dpkgsourceignores-docs drs-clone-nogit drs-push-masterupdate drs-push-rejects dsd-clone-nogit dsd-divert fetch-localgitonly fetch-somegit-notlast gbp-orig gitconfig gitworktree import-dsc import-maintmangle import-native import-nonnative import-tarbomb inarchivecopy mismatches-contents mismatches-dscchanges multisuite newtag-clone-nogit oldnewtagalt oldtag-clone-nogit orig-include-exclude orig-include-exclude-chkquery overwrite-chkclog overwrite-junk overwrite-splitbrains overwrite-version protocol-compat push-buildproductsdir push-newpackage push-nextdgit quilt quilt-gbp quilt-gbp-build-modes quilt-singlepatch quilt-splitbrains quilt-useremail rpush tag-updates test-list-uptodate trustingpolicy-replay unrepresentable version-opt Tests-Directory: tests/tests Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential diff --git a/dgit-maint-merge.7.pod b/dgit-maint-merge.7.pod index 81f42543..df1f953c 100644 --- a/dgit-maint-merge.7.pod +++ b/dgit-maint-merge.7.pod @@ -205,11 +205,15 @@ Then make new upstream tags available: =back +=for dgit-test dpkg-source-ignores begin + Now you simply need to ensure that your git HEAD is dgit-compatible, i.e., it is exactly what you would get if you ran B and then unpacked the resultant source package. +=for dgit-test dpkg-source-ignores end + To achieve this, you might need to delete I. One way to have dgit check your progress is to run B. diff --git a/tests/tests/dpkgsourceignores-docs b/tests/tests/dpkgsourceignores-docs new file mode 100755 index 00000000..397b7834 --- /dev/null +++ b/tests/tests/dpkgsourceignores-docs @@ -0,0 +1,60 @@ +#!/bin/bash +set -e +. tests/lib + +t-restriction-x-dgit-intree-only +# we need the .pod source, which is not shipped + +cd $tmp + +: ----- extract args from document ----- + +perl -ne ' + BEGIN { print "\n=head1 dgit-test-title\n\n"; } + next unless + m/^=for dgit-test dpkg-source-ignores begin/.. + m/^=for dgit-test dpkg-source-ignores end/; + next unless m/dpkg-buildpackage.*-i.*-I/; + s/\s*dpkg-buildpackage\s+//; + s/\s+-S\s*//; + print; +' $root/dgit-maint-merge.7.pod >doc.pod + +pod2text doc.pod >doc.txt + +perl -ne ' + next unless m/\S/; + next if m/dgit-test-title/; + print "for arg in "; + print; + print " do\n"; +' doc.txt >doc.sh + +cat >>doc.sh <<'END' + printf "%s\n" "$arg" +done +END + +chmod +x doc.sh +./doc.sh >doc.args + +: ----- extract args from dgit ----- + +perl -ne ' + next unless m/^\s*our\s+\@dpkg_source_ignores\s*=/; + print; +' $root/dgit >dgit.pl + +cat >>dgit.pl <<'END' + foreach my $arg (@dpkg_source_ignores) { + print $arg, "\n" or die $!; + } +END + +perl dgit.pl >dgit.args + +: ----- compare ----- + +diff -u dgit.args doc.args + +t-ok -- 2.30.2