chiark / gitweb /
test suite: dpkgsourceignores-docs: Check dgit-maint-merge(7) -i -I rune
[dgit.git] / tests / tests / dpkgsourceignores-docs
diff --git a/tests/tests/dpkgsourceignores-docs b/tests/tests/dpkgsourceignores-docs
new file mode 100755 (executable)
index 0000000..397b783
--- /dev/null
@@ -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