1. 31 Jul, 2019 1 commit
  2. 30 Jul, 2019 2 commits
    • Chris Lamb's avatar
      Correct multiple "gobject-introspection" typos. Thanks to Simon McVittie... · 40632738
      Chris Lamb authored
      Correct multiple "gobject-introspection" typos. Thanks to Simon McVittie (smcv) for the kindly pointer. (Closes: #933394)
      40632738
    • Felix Lechner's avatar
      Eliminate stray message from internal harness test. · d1bd76a9
      Felix Lechner authored
      On occasion, tests printed stray messages in the TAP harness. It
      happened in every test run with t/scripts/harness/check_result.t,
      which produced odd looking lines like:
      
          # +++ ../../../../tmp/en5zJjXdAX/distribution-multiple-bad/tags.nomatch
      
      Removes the command 'diag', which produced the stray message.
      
      The stray message actually appeared whenever test results did not
      match expectations. That did not normally happen, except in the
      internal test which looked for that condition. When other tests failed
      during Lintian development, the stray message was probably lost among
      other more voluminous error messages.
      
      Gbp-Dch: ignore
      d1bd76a9
  3. 29 Jul, 2019 8 commits
    • Felix Lechner's avatar
      In commands/lintian.pm, enhance error message for better debugging of tag/check code. · 7e39194c
      Felix Lechner authored
      Gives more information about a possible null exception. It came in
      helpful when debugging a nearby series of commits, in which the check
      relationships were documented in the tag descriptions.
      
      Gbp-Dch: ignore
      7e39194c
    • Felix Lechner's avatar
      Adjust t/scripts/profiles-coverage.t for new tag layout with check... · ca8c66a5
      Felix Lechner authored
      Adjust t/scripts/profiles-coverage.t for new tag layout with check relationships documented in tags.
      
      This test did not work with the new field for tags, which records the
      check relationship. There was also some non-standard usage of
      TAP-related functions. The test was updated and enhanced.
      
      Gbp-Dch: ignore
      ca8c66a5
    • Felix Lechner's avatar
      In Lintian::Profile, load check associations from tag files. · 0df766b7
      Felix Lechner authored
      The associations between tags and check were transferred to the tag
      descriptions. This commit modifies Lintian::Profile to use them
      properly.
      
      Gbp-Dch: ignore
      0df766b7
    • Felix Lechner's avatar
      In Lintian::Tag::Info, offer method to load tag description from a path. · 4574d538
      Felix Lechner authored
      This converts the instantiator ->new to work without parameters and
      instead offloads the burden of initializing all internal data
      structures to another function called ->load, which accepts a file
      path to the tag description.
      
      This is part of an effort to collect more functionality related to
      tags in the class Lintian::Tag::Info.
      
      Gbp-Dch: ignore
      4574d538
    • Felix Lechner's avatar
      In Lintian::CheckScript, offer a method to associate a Lintian::Tag::Info structure with a check. · a972cc02
      Felix Lechner authored
      This information was removed from the check descriptions and can no
      longer be gleaned from them.  To minimize changes to surrounding code,
      it is helpful to obtain the related tags from Lintian::CheckScript.
      This commit offers a programmatic way to add the information to
      Lintian::CheckScript.
      
      Gbp-Dch: ignore
      a972cc02
    • Felix Lechner's avatar
      Test script for the fields in separate tag descriptions that also mention checks. · dbc8666a
      Felix Lechner authored
      The format of the tag descriptions changed. Adds a test script for the
      fields in these files.
      
      Gbp-Dch: ignore
      dbc8666a
    • Felix Lechner's avatar
      Remove tag relationships from check descriptions. · f70be387
      Felix Lechner authored
      The relationship between checks and tags is already recorded in the
      tag description, where it is less likely to cause merge conflicts.
      This commit removes the tag relationships from the check descriptions.
      
      Gbp-Dch: ignore
      f70be387
    • Felix Lechner's avatar
      Record check relationship in tag description. · da3b3a72
      Felix Lechner authored
      A tag that is used in two checks could in the future cause the
      issuance of a duplicate.  For that reason tags are, and always have
      been, expected to be associated with a single check. This commit
      records the relationship in a field in the tag description.
      
      The field may hold only one value.
      
      A future commit will remove the reverse relationship, which was a
      cumbersome list prone to cause merge conflicts, from the check
      description.
      
      Please do not use the same tag in two check. It is not possible to
      keep the heuristics in both checks, which are textually so distant,
      balanced over time so that they never issue duplicates.  Instead,
      please create a new tag.  The new tag can have a similar name.
      
      Gbp-Dch: ignore
      da3b3a72
  4. 28 Jul, 2019 2 commits
  5. 26 Jul, 2019 5 commits
    • Felix Lechner's avatar
      Test for new tag 'empty-debian-tests-control'. · 4e1bef77
      Felix Lechner authored
      This test uses the template for uploads (dpkg-buildpackage). The test for the
      removed tag 'syntax-error-in-debian-tests-control' used the template for source
      packages (dpkg-source). Most tests are for uploads so it seemed more
      appropriate.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      4e1bef77
    • Felix Lechner's avatar
      Associate new tag empty-debian-tests-control with check testsuite. · 291ecf3d
      Felix Lechner authored
      This tag replaced 'syntax-error-in-debian-tests-control' which could not be
      tested except for the condition in the new tag. For clarity, the new tag was
      also given a better name.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      291ecf3d
    • Felix Lechner's avatar
      Implement tag empty-debian-tests-control in check testsuite. · e68998e1
      Felix Lechner authored
      Issues the new tag empty-debian-tests-control when d/tests/control is empty or
      contains only comments. That currently applies to two packages, freeipa and
      kiten, for which Lintian would otherwise croak after the tag
      syntax-error-in-debian-tests-control was turned into a non-recoverable error.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      e68998e1
    • Felix Lechner's avatar
      Add new tag 'empty-debian-tests-control'. · b5529bc5
      Felix Lechner authored
      This tag replaces 'syntax-error-in-debian-tests-control' which was removed
      recently because it was difficult to generate using standard tools, which
      already caught those errors. The old tag was actually produced, perhaps
      incorrectly, when d/tests/control contained only comments. The new tag now
      indicates precisely that condition.
      
      The severity of the tag was bumped to 'important' because the README for
      autopkgtest says that one of the fields Tests: or Test-Command: is required.
      Thanks to Vergo and pabs on #debian-mentors.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      b5529bc5
    • Felix Lechner's avatar
      Require that all tests in t/tags/checks use Match-Strategy: tags or the default in t/defaults/desc. · 0ad99bf7
      Felix Lechner authored
      All tests in t/tags/checks should use Match-Strategy: tags, while those below
      that hierarchy often use Match-Strategy: literal. This internal harness test
      checks for that condition.
      
      One advantage of Match-Strategy: tags is that no recalibration is needed when
      only tag severities have changed. The tag severity is not part of the universal
      tag output format.
      
      Also, with Match-Strategy: tags, t/bin/runtests will offer to recalibrate
      failed tests interactively when new tags appear or old ones have disappeared.
      
      The older Match-Strategy: literal checks that Lintian output matches the
      contents of $testpath/output exactly. (That is how all tests used to work.)
      Nowadays, that strategy is only recommended for very broad tests against false
      positives such as t/tags/tests/basic-3.0-native.  (Those tests are also
      unspecific and may be removed in the future.) The literal strategy further
      helps to check for features unrelated to tags, such as XML output in
      t/tags/tests/lintian-output-xml.
      
      As an aside, the layout for the test suite is currently not entirely logical,
      as not all tests in t/tags use the 'tags' strategy.  Perhaps t/tags should be
      renamed t/spec, with 'spec' being short for test specification (as opposed to
      test script).
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      0ad99bf7
  6. 24 Jul, 2019 6 commits
  7. 21 Jul, 2019 10 commits
    • Felix Lechner's avatar
      Remove five tag descriptions for tags not reproducible using dpkg-source. · 47454995
      Felix Lechner authored
      The old suite source is being converted to use standard tools. Some
      tags are then not testable because dpkg-source already catches the
      errors. These five tags could not be reproduced. They were deleted.
      
      The tags are now error messages. If anyone ever sees them, let's
      re-add the tags and use their packages in the test suite.
      
      Gbp-Dch: ignore
      47454995
    • Felix Lechner's avatar
      In checks/testsuite.{desc,pm}, convert three tags to non-recoverable program errors. · 4cb2b9e1
      Felix Lechner authored
      The three tags
      
        debian-tests-control-is-not-a-regular-file
        missing-runtime-tests-field
        syntax-error-in-debian-tests-control
      
      were found to be unreproducible using dpkg-source. They are considered
      untestable in Lintian when using standard tools. The tags were
      converted to non-recoverable errors that cause the program to exit.
      
      The tag messages are now error messages. If anyone ever sees them,
      let's re-add the tags and use their packages in the test suite.
      
      Gbp-Dch: ignore
      4cb2b9e1
    • Felix Lechner's avatar
      In checks/debian-source-dir.{desc,pm}, convert a tag to a non-recoverable program error. · 4e0b1ce6
      Felix Lechner authored
      The tag
      
        unknown-source-format
      
      was found to be unreproducible using dpkg-source. It is considered
      untestable in Lintian when using standard tools. The tag was converted
      to a non-recoverable error that causes the program to exit.
      
      The tag message is now an error message. If anyone ever sees it, let's
      re-add the tag and use their package in the test suite.
      
      Gbp-Dch: ignore
      4e0b1ce6
    • Felix Lechner's avatar
      In checks/control-file.{desc,pm}, convert a tag to a non-recoverable program error. · b86bcd51
      Felix Lechner authored
      The tag
      
        syntax-error-in-control-file
      
      was found to be unreproducible using dpkg-source. It is considered
      untestable in Lintian when using standard tools. The tag was converted
      to a non-recoverable error that causes the program to exit.
      
      The tag message is now an error message. If anyone ever sees it, let's
      re-add the tag and use their package in the test suite.
      
      Gbp-Dch: ignore
      b86bcd51
    • Felix Lechner's avatar
      Delete test debian-source-dir-unknown-source-format; tag cannot be reproduced using dpkg-source. · e01a8f86
      Felix Lechner authored
      The tag 'unknown-source-format' cannot be tested using standard tools.
      The conditions that would be necessary cause dpkg-source to abort with
      the message:
      
      dpkg-source: error: source package format '3.0 (unknown-format)' is invalid
      
      The issue arose when the test was converted to standard tools. (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      e01a8f86
    • Felix Lechner's avatar
      Delete test control-file-duplicate-field; tag cannot be reproduced using dpkg-source. · 00bd64fe
      Felix Lechner authored
      The tag 'syntax-error-in-control-file' cannot be tested using standard
      tools. The conditions that would be necessary cause dpkg-source to
      abort with the message:
      
      dpkg-source: error: syntax error in control-file-duplicate-field-1/debian/control at line 11: duplicate field Depends found
      
      The issue arose when the test was converted to standard tools. (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      00bd64fe
    • Felix Lechner's avatar
      Delete test control-file-syntax-error; tag cannot be reproduced using dpkg-source. · 769117ae
      Felix Lechner authored
      The tag 'syntax-error-in-control-file' cannot be tested using standard
      tools. The conditions that would be necessary cause dpkg-source to
      abort with the message:
      
      dpkg-source: error: syntax error in control-file-syntax-error-1/debian/control at line 11: line with unknown format (not field-colon-value)
      
      The issue arose when the test was converted to standard tools. (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      769117ae
    • Felix Lechner's avatar
      Delete test testsuite-control-syntax-error; tag cannot be reproduced using dpkg-source. · 4f019cb2
      Felix Lechner authored
      The tag 'syntax-error-in-debian-tests-control' cannot be tested using
      standard tools. The conditions that would be necessary cause
      dpkg-source to abort with the message:
      
      dpkg-source: error: syntax error in testsuite-control-syntax-error-1/debian/tests/control at line 1: line with unknown format (not field-colon-value)
      
      The issue arose when the test was converted to standard tools. (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      4f019cb2
    • Felix Lechner's avatar
      Delete test testsuite-control-not-file; tag cannot be reproduced using dpkg-source. · 9ae1abd7
      Felix Lechner authored
      The source tag 'debian-tests-control-is-not-a-regular-file' cannot be
      tested using standard tools. The conditions that would be necessary
      cause dpkg-source to abort with the message:
      
      dpkg-source: error: test control debian/tests/control is not a regular file
      
      The issue arose when the test was converted to standard tools.  (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      9ae1abd7
    • Felix Lechner's avatar
      Delete test testsuite-control-missing-test-field; tag cannot be reproduced using dpkg-source. · ff6a5fef
      Felix Lechner authored
      The source tag 'missing-runtime-tests-field' cannot be tested using
      standard tools. The conditions that would be necessary cause
      dpkg-source to abort with the message:
      
      dpkg-source: error: syntax error in testsuite-control-missing-test-field-1/debian/tests/control at line 1: block lacks either Tests or Test-Command fields
      
      The issue arose when the test was converted to standard tools.  (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      ff6a5fef
  8. 20 Jul, 2019 6 commits
    • Felix Lechner's avatar
      Again, fix pipeline for stretch-backports by using older process facility in IO::Async. · 866f14b5
      Felix Lechner authored
      The open_process method to Loop was not available in IO::Async 0.71, which is
      the version in stretch. This uses the conventional, and perhaps clearer, way of
      explicitly creating an IO::Async::Process before adding it to the loop.
      
      Addresses two more instances of open_process that were in the code base before
      the changes to collections were accepted. The pipeline for stretch-backports
      may have been broken for a little while.
      
      Should fix the Jenkins pipeline for stretch-backports.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      866f14b5
    • Felix Lechner's avatar
      Fix pipeline for stretch-backports by using older process facility in IO::Async. · ee762627
      Felix Lechner authored
      The open_process method to Loop was not available in IO::Async 0.71,
      which is the version in stretch. This uses the conventional, and
      perhaps clearer, way of explicitly creating an IO::Async::Process
      before adding it to the loop.
      
      Should fix the Jenkins pipeline for stretch-backports.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      ee762627
    • Felix Lechner's avatar
      In collection/unpacked, replace routines based on IPC::Run with IO::Async. · 0ece177f
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      0ece177f
    • Felix Lechner's avatar
      In collection/src-orig-index, replace routines based on IPC::Run with IO::Async. · a4c3312b
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      a4c3312b
    • Felix Lechner's avatar
      In collection/override-file, make changes similar to other surrounding scripts. · 72179b6a
      Felix Lechner authored
      It did not have any IPC::Run related code that needed to be replaced
      with IO::Async. These changes simply make the scripts more consistent.
      
      Gbp-Dch: ignore
      72179b6a
    • Felix Lechner's avatar
      In collection/objdump-info, replace routines based on IPC::Run with IO::Async. · 5dbe6e57
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      5dbe6e57