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

[lintian] 01/01: Fix a number of false-positives when checking the "override_dh_auto-test-does-not-check-DEB_BUILD_PROFILES" tag. (Closes: #889592)



This is an automated email from the git hooks/post-receive script.

lamby pushed a commit to branch master
in repository lintian.

commit 44b7f754de9c8380c08ca7ffe9c2902ea47ad99b
Author: Chris Lamb <lamby@debian.org>
Date:   Tue Feb 6 17:55:39 2018 +0000

    Fix a number of false-positives when checking the "override_dh_auto-test-does-not-check-DEB_BUILD_PROFILES" tag.  (Closes: #889592)
    
    This reverts commit 293c897ef968e0f50ac4f48986034aeda57e179d.
---
 checks/rules.desc                                  | 26 ++++++++++++++++++++++
 checks/rules.pm                                    |  9 ++++++++
 debian/changelog                                   |  4 ++--
 .../debian/debian/rules                            |  9 ++++++++
 .../desc                                           |  5 +++++
 .../tags                                           |  0
 .../debian/debian/rules                            |  7 ++++++
 .../desc                                           |  5 +++++
 .../tags                                           |  0
 .../debian/debian/rules                            |  8 +++++++
 .../desc                                           |  5 +++++
 .../tags                                           |  0
 .../debian/debian/rules                            |  8 +++++++
 .../desc                                           |  5 +++++
 .../tags                                           |  0
 .../debian/debian/rules                            |  8 +++++++
 .../desc                                           |  5 +++++
 .../tags                                           |  0
 .../debian/debian/rules                            |  7 ++++++
 .../desc                                           |  5 +++++
 .../tags                                           |  1 +
 21 files changed, 115 insertions(+), 2 deletions(-)

diff --git a/checks/rules.desc b/checks/rules.desc
index b22aa06..581d4a0 100644
--- a/checks/rules.desc
+++ b/checks/rules.desc
@@ -338,6 +338,7 @@ Info: The <tt>debian/rules</tt> file for this package has a call to
  Please remove the call and let dpkg-deb(1) select suitable defaults.
 Ref: #829100, dpkg-deb(1)
 
+
 Tag: debian-rules-is-dh_make-template
 Severity: important
 Certainty: certain
@@ -345,3 +346,28 @@ Info: The debian/rules file appears to be an unmodified or insufficiently
  modified copy of the dh_make template.
  .
  Please double-check the rules file.
+
+Tag: override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES
+Severity: wishlist
+Certainty: possible
+Info: The <tt>debian/rules</tt> file for this package has an
+ <tt>override_dh_auto_test</tt> target that does not appear to
+ check <tt>DEB_BUILD_PROFILES</tt> against <tt>nocheck</tt>.
+ .
+ As this check is not automatically performed by debhelper(1), the
+ specified testsuite is run regardless of using the <tt>nocheck</tt>
+ build profile.
+ .
+ Please add a check such as:
+ .
+  override_dh_auto_test:
+  ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+          ./run-upstream-testsuite
+  endif
+ .
+ Lintian will ignore targets such as:
+ .
+  # Disabled
+  : Disabled
+  echo "Disbled"
+Ref: https://wiki.debian.org/BuildProfileSpec#Registered_profile_names
diff --git a/checks/rules.pm b/checks/rules.pm
index 559e72e..95b6abc 100644
--- a/checks/rules.pm
+++ b/checks/rules.pm
@@ -442,6 +442,15 @@ sub run {
         @{$rules_per_target{"override_$cmd"}};
     }
 
+    if (my $line = $overridden{'dh_auto_test'}) {
+        my @lines = grep { $_ !~ m/^\t\s*(:|dh_auto_test|echo)\s+/ }
+          @{$rules_per_target{'override_dh_auto_test'}};
+        tag 'override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES',
+          "(line $line)"
+          if @lines
+          and none { m/(DEB_BUILD_OPTIONS|nocheck)/ } @conditionals;
+    }
+
     # Make sure that all the required build dependencies are there.  Don't
     # issue missing-build-dependency errors for debhelper, since there's
     # another test that does that and it would just be a duplicate.
diff --git a/debian/changelog b/debian/changelog
index 5b96d39..764ea94 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -26,8 +26,8 @@ lintian (2.5.74) UNRELEASED; urgency=medium
       reference" warnings when debian/patches is a file, not a directory.
       (Closes: #889535)
   * checks/rules.{desc,pm}:
-    + [CL] Remove override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES
-      (for now) as there are just too many false-positive cases to check.
+    + [CL] Fix a number of false-positives when checking the
+      "override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES" tag
       (Closes: #889592)
     + [CL] Check for debian/rules files that are dh_make templates.
       (Closes: #679124)
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-a/debian/debian/rules b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-a/debian/debian/rules
new file mode 100755
index 0000000..6f702fe
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-a/debian/debian/rules
@@ -0,0 +1,9 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+	/bin/true
+endif
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-a/desc b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-a/desc
new file mode 100644
index 0000000..b333c85
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-a/desc
@@ -0,0 +1,5 @@
+Testname: rules-dh-auto-test-does-not-check-deb-build-options-unrel-a
+Version: 1.0
+Description: Test for missing checks for DEB_BUILD_PROFILES (false-positive)
+Test-Against:
+ override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-a/tags b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-a/tags
new file mode 100644
index 0000000..e69de29
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-b/debian/debian/rules b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-b/debian/debian/rules
new file mode 100755
index 0000000..11bd6cc
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-b/debian/debian/rules
@@ -0,0 +1,7 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+# Empty target follows
+override_dh_auto_test:
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-b/desc b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-b/desc
new file mode 100644
index 0000000..acf5ced
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-b/desc
@@ -0,0 +1,5 @@
+Testname: rules-dh-auto-test-does-not-check-deb-build-options-unrel-b
+Version: 1.0
+Description: Test for missing checks for DEB_BUILD_PROFILES (false-positive)
+Test-Against:
+ override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-b/tags b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-b/tags
new file mode 100644
index 0000000..e69de29
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-c/debian/debian/rules b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-c/debian/debian/rules
new file mode 100755
index 0000000..3a9fd80
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-c/debian/debian/rules
@@ -0,0 +1,8 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+# Calls parent with arguments
+override_dh_auto_test:
+	dh_auto_test -- VERBOSE=1
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-c/desc b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-c/desc
new file mode 100644
index 0000000..31dc897
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-c/desc
@@ -0,0 +1,5 @@
+Testname: rules-dh-auto-test-does-not-check-deb-build-options-unrel-c
+Version: 1.0
+Description: Test for missing checks for DEB_BUILD_PROFILES (false-positive)
+Test-Against:
+ override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-c/tags b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-c/tags
new file mode 100644
index 0000000..e69de29
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-d/debian/debian/rules b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-d/debian/debian/rules
new file mode 100755
index 0000000..84f382c
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-d/debian/debian/rules
@@ -0,0 +1,8 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+# Disbled via colon
+override_dh_auto_test:
+	: Disabled
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-d/desc b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-d/desc
new file mode 100644
index 0000000..1f1b873
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-d/desc
@@ -0,0 +1,5 @@
+Testname: rules-dh-auto-test-does-not-check-deb-build-options-unrel-d
+Version: 1.0
+Description: Test for missing checks for DEB_BUILD_PROFILES (false-positive)
+Test-Against:
+ override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-d/tags b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-d/tags
new file mode 100644
index 0000000..e69de29
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-e/debian/debian/rules b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-e/debian/debian/rules
new file mode 100755
index 0000000..426f78f
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-e/debian/debian/rules
@@ -0,0 +1,8 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+# Disabled via echo
+override_dh_auto_test:
+	echo "Disabled"
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-e/desc b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-e/desc
new file mode 100644
index 0000000..6363be9
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-e/desc
@@ -0,0 +1,5 @@
+Testname: rules-dh-auto-test-does-not-check-deb-build-options-unrel-e
+Version: 1.0
+Description: Test for missing checks for DEB_BUILD_PROFILES (false-positive)
+Test-Against:
+ override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-e/tags b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options-unrel-e/tags
new file mode 100644
index 0000000..e69de29
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/debian/debian/rules b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/debian/debian/rules
new file mode 100755
index 0000000..07c493b
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/debian/debian/rules
@@ -0,0 +1,7 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@
+
+override_dh_auto_test:
+	/bin/true
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/desc b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/desc
new file mode 100644
index 0000000..814ee32
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/desc
@@ -0,0 +1,5 @@
+Testname: rules-dh-auto-test-does-not-check-deb-build-options
+Version: 1.0
+Description: Test for missing checks for DEB_BUILD_PROFILES
+Test-For:
+ override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES
diff --git a/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/tags b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/tags
new file mode 100644
index 0000000..a94f974
--- /dev/null
+++ b/t/tests/rules-dh-auto-test-does-not-check-deb-build-options/tags
@@ -0,0 +1 @@
+I: rules-dh-auto-test-does-not-check-deb-build-options source: override_dh_auto_test-does-not-check-DEB_BUILD_PROFILES (line 6)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git


Reply to: