[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#607694: updated patch, tests.



Here is an update patch, with better analysis of files containing only
blank lines and comments, and some tests.

Attachment: pgpNwrSVUM676.pgp
Description: PGP signature

>From 9bc1134735d5121dd7526fbafb05be0badc5665e Mon Sep 17 00:00:00 2001
From: David Bremner <bremner@debian.org>
Date: Sun, 19 Dec 2010 11:01:57 -0400
Subject: [PATCH 1/8] checks/debian-source-dir: add check for exporting from d/s/git-patches

If debian/source/git-patches exists, read debian/patches/series, and
see if the first line matches a comment emitted by the relevant gitpkg
hook.

Rationale: version 0.17 of gitpkg adds the ability to export arbitrary
ranges of git commits as quilt patches. This exporting is optional,
and this check is intended to warn a user who accidentaly fails to
enable it.
---
 checks/debian-source-dir      |   17 +++++++++++++++++
 checks/debian-source-dir.desc |   13 +++++++++++++
 2 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/checks/debian-source-dir b/checks/debian-source-dir
index 91e10c8..c2f0468 100644
--- a/checks/debian-source-dir
+++ b/checks/debian-source-dir
@@ -46,6 +46,23 @@ if (-e "debfiles/source/format") {
     tag "missing-debian-source-format";
 }
 
+if (-s "debfiles/source/git-patches") {
+    open (GITPATCHES, "debfiles/source/git-patches")
+	or fail("cannot open debian/source/git-patches");
+    if (grep !/^\s*#|^\s*$/, <GITPATCHES>) {
+      if (! -r "debfiles/patches/series" ) {
+	tag "git-patches-not-exported";
+      } else {
+	open (DEBSERIES, "debfiles/patches/series")
+	  or fail("cannot open debian/patches/series");
+	my $comment_line = <DEBSERIES>;
+	my $count = grep !/^\s*\#|^\s*$/, <DEBSERIES>;
+	tag "git-patches-not-exported"
+	  unless ($count && ($comment_line =~ m/^\s*\#.*quilt-patches-deb-export-hook/));
+      }
+    }
+}
+
 if (-d "debfiles/source") {
     opendir(DEBSRC, "debfiles/source") or fail("cannot opendir debian/source/: $!");
     my $file;
diff --git a/checks/debian-source-dir.desc b/checks/debian-source-dir.desc
index 199f717..b639b40 100644
--- a/checks/debian-source-dir.desc
+++ b/checks/debian-source-dir.desc
@@ -50,3 +50,16 @@ Info: The source package contains a file in debian/source/ that lintian
  files. If that's not the case and if the file can be legitimately be
  expected in source packages, please file a bug against lintian asking
  for the file to be recognized.
+
+Tag: git-patches-not-exported
+Severity: important
+Certainty: possible
+Info: The source package contains non-empty debian/source/git-patches, 
+ which indicates it was intended to have patches exported via the
+ quilt-patches-deb-export-hook of gitpkg. It seems the patches
+ were exported in this source package.
+ .
+ This tag is generated by building the source package without gitpkg (or
+ with a misconfigured gitpkg) and without manually exporting the patches.
+ See the above mentioned hook file (in /usr/share/gitpkg/hooks) for 
+ information on how to manually export patches.
-- 
1.7.2.3

>From 7d05b18f1564b61cd063c0f8f4f9ee79f88a63b3 Mon Sep 17 00:00:00 2001
From: David Bremner <bremner@debian.org>
Date: Tue, 21 Dec 2010 22:18:00 -0400
Subject: [PATCH 8/8] tests for tag git-patches-not-exported.

Add a simple test for missing series file to debian-source-dir-general.
A more subtle test with a trivial series file in debian-source-dir-gitpkg-series.
Test for false positive in debian-sourcedir-gitpkg (trival git-patches)
---
 .../debian/debian/source/git-patches               |    3 +++
 t/tests/debian-source-dir-general/desc             |    1 +
 t/tests/debian-source-dir-general/tags             |    1 +
 .../debian/debian/patches/series                   |   11 +++++++++++
 .../debian/debian/source/format                    |    1 +
 .../debian/debian/source/git-patches               |   11 +++++++++++
 t/tests/debian-source-dir-gitpkg-series/desc       |    7 +++++++
 t/tests/debian-source-dir-gitpkg-series/tags       |    1 +
 .../debian/debian/source/formt                     |    1 +
 .../debian/debian/source/git-patches               |   11 +++++++++++
 t/tests/debian-source-dir-gitpkg/desc              |    9 +++++++++
 t/tests/debian-source-dir-gitpkg/pre_build         |    2 ++
 t/tests/debian-source-dir-gitpkg/tags              |    2 ++
 13 files changed, 61 insertions(+), 0 deletions(-)
 create mode 100644 t/tests/debian-source-dir-general/debian/debian/source/git-patches
 create mode 100644 t/tests/debian-source-dir-gitpkg-series/debian/debian/patches/series
 create mode 100644 t/tests/debian-source-dir-gitpkg-series/debian/debian/source/format
 create mode 100644 t/tests/debian-source-dir-gitpkg-series/debian/debian/source/git-patches
 create mode 100644 t/tests/debian-source-dir-gitpkg-series/desc
 create mode 100644 t/tests/debian-source-dir-gitpkg-series/tags
 create mode 100644 t/tests/debian-source-dir-gitpkg-series/upstream/an_empty_file
 create mode 100644 t/tests/debian-source-dir-gitpkg/debian/debian/source/formt
 create mode 100644 t/tests/debian-source-dir-gitpkg/debian/debian/source/git-patches
 create mode 100644 t/tests/debian-source-dir-gitpkg/desc
 create mode 100755 t/tests/debian-source-dir-gitpkg/pre_build
 create mode 100644 t/tests/debian-source-dir-gitpkg/tags

diff --git a/t/tests/debian-source-dir-general/debian/debian/source/git-patches b/t/tests/debian-source-dir-general/debian/debian/source/git-patches
new file mode 100644
index 0000000..af6e5d2
--- /dev/null
+++ b/t/tests/debian-source-dir-general/debian/debian/source/git-patches
@@ -0,0 +1,3 @@
+upstream/$UPSTREAM_VERSION..patches/$DEB_VERSION
+
+
diff --git a/t/tests/debian-source-dir-general/desc b/t/tests/debian-source-dir-general/desc
index 2cbcf08..bde87d3 100644
--- a/t/tests/debian-source-dir-general/desc
+++ b/t/tests/debian-source-dir-general/desc
@@ -5,3 +5,4 @@ Description: General tests for debian/source/* checks
 Test-For:
  missing-debian-source-format
  unknown-file-in-debian-source
+ git-patches-not-exported
diff --git a/t/tests/debian-source-dir-general/tags b/t/tests/debian-source-dir-general/tags
index 9c16f21..b8a2dc9 100644
--- a/t/tests/debian-source-dir-general/tags
+++ b/t/tests/debian-source-dir-general/tags
@@ -1,2 +1,3 @@
+E: debian-source-dir-general source: git-patches-not-exported
 E: debian-source-dir-general source: unknown-file-in-debian-source formt
 I: debian-source-dir-general source: missing-debian-source-format
diff --git a/t/tests/debian-source-dir-gitpkg-series/debian/debian/patches/series b/t/tests/debian-source-dir-gitpkg-series/debian/debian/patches/series
new file mode 100644
index 0000000..90aa49c
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg-series/debian/debian/patches/series
@@ -0,0 +1,11 @@
+# some line that ends with quilt-patches-deb-export-hook
+# this looks like series file
+
+  # but really it is just a bunch
+
+# of blank 
+
+# lines 
+
+#   and   #
+   # comments
diff --git a/t/tests/debian-source-dir-gitpkg-series/debian/debian/source/format b/t/tests/debian-source-dir-gitpkg-series/debian/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg-series/debian/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/t/tests/debian-source-dir-gitpkg-series/debian/debian/source/git-patches b/t/tests/debian-source-dir-gitpkg-series/debian/debian/source/git-patches
new file mode 100644
index 0000000..359925d
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg-series/debian/debian/source/git-patches
@@ -0,0 +1,11 @@
+upstream/$UPSTREAM_VERSION..patches/$DEB_VERSION
+
+
+   # this is an indented comment
+
+
+
+  # some more blank lines
+
+
+
diff --git a/t/tests/debian-source-dir-gitpkg-series/desc b/t/tests/debian-source-dir-gitpkg-series/desc
new file mode 100644
index 0000000..d9d02d1
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg-series/desc
@@ -0,0 +1,7 @@
+Testname: debian-source-dir-gitpkg-series
+Sequence: 5999
+Version: 1.0-1
+Type: non-native
+Description: Test for trivial series file in git-patches-not-exported
+Test-For:
+ git-patches-not-exported
diff --git a/t/tests/debian-source-dir-gitpkg-series/tags b/t/tests/debian-source-dir-gitpkg-series/tags
new file mode 100644
index 0000000..1b39d09
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg-series/tags
@@ -0,0 +1 @@
+E: debian-source-dir-gitpkg-series source: git-patches-not-exported
diff --git a/t/tests/debian-source-dir-gitpkg-series/upstream/an_empty_file b/t/tests/debian-source-dir-gitpkg-series/upstream/an_empty_file
new file mode 100644
index 0000000..e69de29
diff --git a/t/tests/debian-source-dir-gitpkg/debian/debian/source/formt b/t/tests/debian-source-dir-gitpkg/debian/debian/source/formt
new file mode 100644
index 0000000..d3827e7
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg/debian/debian/source/formt
@@ -0,0 +1 @@
+1.0
diff --git a/t/tests/debian-source-dir-gitpkg/debian/debian/source/git-patches b/t/tests/debian-source-dir-gitpkg/debian/debian/source/git-patches
new file mode 100644
index 0000000..be4c03c
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg/debian/debian/source/git-patches
@@ -0,0 +1,11 @@
+# upstream/$UPSTREAM_VERSION..patches/$DEB_VERSION
+
+
+   # this is an indented comment
+
+
+
+  # some more blank lines
+
+
+
diff --git a/t/tests/debian-source-dir-gitpkg/desc b/t/tests/debian-source-dir-gitpkg/desc
new file mode 100644
index 0000000..0efda41
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg/desc
@@ -0,0 +1,9 @@
+Testname: debian-source-dir-gitpkg
+Sequence: 5999
+Version: 1.0
+Description: Test for false positives in git-patches-not-exported
+Test-Against:
+ git-patches-not-exported
+Test-For:
+ missing-debian-source-format
+ unknown-file-in-debian-source
diff --git a/t/tests/debian-source-dir-gitpkg/pre_build b/t/tests/debian-source-dir-gitpkg/pre_build
new file mode 100755
index 0000000..9442d4c
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg/pre_build
@@ -0,0 +1,2 @@
+#!/bin/sh
+rm "$1"/debian/source/format
diff --git a/t/tests/debian-source-dir-gitpkg/tags b/t/tests/debian-source-dir-gitpkg/tags
new file mode 100644
index 0000000..9a94846
--- /dev/null
+++ b/t/tests/debian-source-dir-gitpkg/tags
@@ -0,0 +1,2 @@
+E: debian-source-dir-gitpkg source: unknown-file-in-debian-source formt
+I: debian-source-dir-gitpkg source: missing-debian-source-format
-- 
1.7.2.3


Reply to: