This is an automated email from the git hooks/post-receive script. nthykier pushed a commit to branch master in repository lintian.
commit f0b319dd53124f97c25cc233bdbd3353c0afb9a8 Author: Niels Thykier <[email protected]> Date: Sun Jun 19 13:35:48 2016 +0000 c/testsuite: Check for invalid dependency fields Signed-off-by: Niels Thykier <[email protected]> --- checks/testsuite.desc | 15 +++++++++++++++ checks/testsuite.pm | 16 ++++++++++++++++ debian/changelog | 5 ++++- t/tests/testsuite-general/debian/debian/tests/control | 4 ++-- t/tests/testsuite-general/desc | 1 + t/tests/testsuite-general/tags | 1 + 6 files changed, 39 insertions(+), 3 deletions(-) diff --git a/checks/testsuite.desc b/checks/testsuite.desc index a3e744e..4a53278 100644 --- a/checks/testsuite.desc +++ b/checks/testsuite.desc @@ -113,3 +113,18 @@ Info: The dsc file sets Testsuite to a value other than autopkgtest, the only one allowed. This field is most probably copied by dpkg-source from Testsuite in debian/control. Ref: https://anonscm.debian.org/git/autopkgtest/autopkgtest.git/tree/doc/README.package-tests.rst + +Tag: testsuite-dependency-has-unparsable-elements +Severity: normal +Certainty: possible +Info: Lintian cannot parse the Depends field for the given autopkgtest. + . + Please double check that dependency the syntax is correct. + . + Note that Lintian has a whitelist of known "special" dependencies + permitted by autopkgtest (e.g. @builddep@). Lintian does not accept + these as a part of an OR-clause. + . + If Lintian complains about a new special "@"-dependency, please file + a bug against Lintian and have it added to the whitelist. +Ref: https://anonscm.debian.org/git/autopkgtest/autopkgtest.git/tree/doc/README.package-tests.rst diff --git a/checks/testsuite.pm b/checks/testsuite.pm index 02ebb68..716274f 100644 --- a/checks/testsuite.pm +++ b/checks/testsuite.pm @@ -23,6 +23,7 @@ use strict; use warnings; use autodie; +use Lintian::Relation; use Lintian::Tags qw(tag); use Lintian::Util qw( file_is_encoded_in_non_utf8 @@ -65,6 +66,11 @@ my %KNOWN_TESTSUITES = map { $_ => 1 } qw( autopkgtest-pkg-ruby ); +my %KNOWN_SPECIAL_DEPENDS = map { $_ => 1 } qw( + @ + @builddeps@ +); + sub run { my ($pkg, $type, $info) = @_; my $testsuites = $info->field('testsuite', ''); @@ -173,6 +179,16 @@ sub check_control_paragraph { check_test_file($info, $directory, $testname, $line); } } + if (exists($paragraph->{'depends'})) { + my $dep = Lintian::Relation->new($paragraph->{'depends'}); + for my $unparsable ($dep->unparsable_predicates) { + # @ is not a valid predicate in general, but autopkgtests + # allows it. + next if exists($KNOWN_SPECIAL_DEPENDS{$unparsable}); + tag 'testsuite-dependency-has-unparsable-elements', "\"$unparsable\"", + "(in paragraph starting at line $line)"; + } + } return; } diff --git a/debian/changelog b/debian/changelog index 08eef9a..20dbb34 100644 --- a/debian/changelog +++ b/debian/changelog @@ -43,11 +43,14 @@ lintian (2.5.45) UNRELEASED; urgency=medium + [JW] Fix false positive dev-pkg-without-shlib-symlink for GCC runtime libraries. Thanks to Matthias Klose for the bug report. (Closes: #823833) - * checks/testsuite.pm: + * checks/testsuite.{desc,pm}: + [NT] Apply patch from Ondřej Nový to add more known autodep8 test suites. (Closes: #823088) + [JW] Update autopkgtest specification URL. Thanks to Mattia Rizzolo for the bug report. + + [NT] Check for broken dependency fields in the autopkgtest control + file. Thanks to Jérémy Bobbio for the suggestion. + (Closes: #795083) * checks/upstream-metadata.pm: + [JW] Include YAML validation error in the output. * checks/usrmerge.desc: diff --git a/t/tests/testsuite-general/debian/debian/tests/control b/t/tests/testsuite-general/debian/debian/tests/control index 0fef676..9f8f9a3 100644 --- a/t/tests/testsuite-general/debian/debian/tests/control +++ b/t/tests/testsuite-general/debian/debian/tests/control @@ -19,14 +19,14 @@ Depends: @ Tests: test-2 Test-Command: /bin/true -Depends: @ +Depends: @, missing a comma Features: unknownfeature Restrictions: unknownrestriction Test-Command: /bin/true Restrictions: breaks-testbed, rw-build-tree, needs-root -Depends: @ +Depends: @, @builddeps@ Tests: test-1, test-2 Depends: @ diff --git a/t/tests/testsuite-general/desc b/t/tests/testsuite-general/desc index c483bbf..6d016ee 100644 --- a/t/tests/testsuite-general/desc +++ b/t/tests/testsuite-general/desc @@ -14,6 +14,7 @@ Test-For: missing-runtime-test-file missing-runtime-tests-field runtime-test-file-is-not-a-regular-file + testsuite-dependency-has-unparsable-elements unknown-runtime-tests-feature unknown-runtime-tests-field unknown-runtime-tests-restriction diff --git a/t/tests/testsuite-general/tags b/t/tests/testsuite-general/tags index 95dcb9a..e05e0b9 100644 --- a/t/tests/testsuite-general/tags +++ b/t/tests/testsuite-general/tags @@ -13,3 +13,4 @@ W: testsuite-general source: exclusive-runtime-tests-field tests, test-command p W: testsuite-general source: illegal-runtime-test-name under_score paragraph starting at line 5 W: testsuite-general source: missing-runtime-test-file debian/tests/missing-test paragraph starting at line 5 W: testsuite-general source: missing-runtime-tests-field tests || test-command paragraph starting at line 24 +W: testsuite-general source: testsuite-dependency-has-unparsable-elements "missing a comma" (in paragraph starting at line 20) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git

