summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-08-03 09:53:58 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-08-04 23:06:19 +0100
commit3e0e30a2fab1b5770c770bbc4df3d55bef611d20 (patch)
tree83256fd7c7e76ec41ee732cd0a94ef80d4fed07b
parentff23ba1247e0c44574139fed95253b6ae5641569 (diff)
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 <ijackson@chiark.greenend.org.uk>
-rw-r--r--debian/tests/control2
-rw-r--r--dgit-maint-merge.7.pod4
-rwxr-xr-xtests/tests/dpkgsourceignores-docs60
3 files changed, 65 insertions, 1 deletions
diff --git a/debian/tests/control b/debian/tests/control
index f7f7611..efeeeed 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 81f4254..df1f953 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<dpkg-buildpackage -i'\.git/' -I.git -S>
and then unpacked the resultant source package.
+=for dgit-test dpkg-source-ignores end
+
To achieve this, you might need to delete
I<debian/source/local-options>. One way to have dgit check your
progress is to run B<dgit build-source>.
diff --git a/tests/tests/dpkgsourceignores-docs b/tests/tests/dpkgsourceignores-docs
new file mode 100755
index 0000000..397b783
--- /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