The following commit has been merged in the master branch:
commit 7e1293160484712ead203bc39364c3a26d9b99f7
Author: Russ Allbery r...@debian.org
Date: Thu Jan 1 11:10:03 2009 -0800
Add documentation of the new test suite
* t/tests/README:
+ [RA] Add documentation of the new test suite.
Also add some basic information and a pointer to t/runtests and do some
minor reorganization of variable setup.
diff --git a/debian/changelog b/debian/changelog
index acf61ba..d886b9e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -125,6 +125,8 @@ lintian (2.1.4) UNRELEASED; urgency=low
+ [RA] Support finding and running all tests for or against a
particular tag.
+ [RA] Correctly set up non-native packages for dpkg-source.
+ * t/tests/README:
++ [RA] Add documentation of the new test suite.
-- Russ Allbery r...@debian.org Sun, 28 Dec 2008 13:02:03 -0800
diff --git a/t/runtests b/t/runtests
index 88aa2b9..2c597db 100755
--- a/t/runtests
+++ b/t/runtests
@@ -2,6 +2,7 @@
# Copyright © 1998 Richard Braakman
# Copyright © 2008 Frank Lichtenheld
+# Copyright © 2008 Russ Allbery
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +20,10 @@
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
# MA 02110-1301, USA.
+# The harness for Lintian's new test suite. Normally run through the runtests
+# or check-tag targets in debian/rules. For detailed information on the test
+# suite layout and naming conventions, see t/tests/README.
+
use strict;
use warnings;
@@ -46,12 +51,6 @@ END
exit 2;
}
-# for debugging:
-my $debug = 0;
-
-# Tests layout:
-# XXX FIXME XXX
-
# The build output is directed to build.pkgname in the testing-directory.
# Exit codes:
@@ -59,9 +58,10 @@ my $debug = 0;
# 1 - one or more tests failed
# 2 - an error prevented proper running of the tests
+my $debug = 0;
my $run_all_tests = 0;
-my $verbose = 0;
my $tag;
+my $verbose = 0;
# --- Parse options and arguments
Getopt::Long::Configure('bundling');
diff --git a/t/tests/README b/t/tests/README
index 4c60f40..3983f02 100644
--- a/t/tests/README
+++ b/t/tests/README
@@ -1,3 +1,118 @@
+WRITING A TEST
+==
+
+A test in this framework consists of two components: a .desc file
+providing metadata about the test and a directory containing the files
+used to build the test package.
+
+The .desc file
+--
+
+The .desc file is formatted like a Debian control file and should be
+named with a sequence number, an underscore, and the name of the test
+directory. See TEST NAMING CONVENTIONS below for information about
+the sequence number and test and directory naming.
+
+The required fields are:
+
+Testname: should match the directory name
+Version: version number of package
+Description: description of the purpose of the test
+
+In addition, the tags (if any) that the test case is testing for
+should be listed in a Test-For key. The tags that the test case is
+testing are not issued (checking againts false positives) should be
+listed in a Test-Against key. In both cases, the tags should be
+separated by whitespace. The following format is suggested for
+multiple tags:
+
+Test-For:
+ lintian-tag-1
+ lintian-tag-2
+
+with the tags listed in alphabetical order.
+
+By default, all tests are built as native Debian packages. To build
+the test case as a non-native package, add:
+
+Type: non-native
+
+to the .desc file. You will also want to change the version number to
+be non-native unless you're testing a mismatch.
+
+Unless you're writing a test case just to improve Lintian's test
+coverage, you will normally want to add a References field giving the
+source of the test or the bug that you're testing for. This should be
+one of Debian Bug# for a bug report, a URL into the
+debian-lint-maint mailing list archives, or a message ID for the
+message to the list.
+
+All other fields in the .desc file are optional and control the values
+filled into the template control and changelog files by the test suite
+harness. The following additional fields are currently supported:
+
+Date: date for changelog entry
+Author: maintainer for control and changelog
+Architecture: architecture for control
+Section: section for package
+
+See t/runtests and t/templates/skel/{control,changelog}.in for how
+they're used.
+
+The test directory
+--
+
+The test directory should contain the following files and directories:
+
+debian
+The file tree forming the unpacked package. This directory should
+normally have a debian subdirectory containing any files that are
+different than the template unless exactly the default template
+values are used. The skeleton will be copied to the build
+directory for the package and then the contents of this directory
+will be copied over