summaryrefslogtreecommitdiff
path: root/t/data/generate/c-tap-harness/output
diff options
context:
space:
mode:
authorRuss Allbery <rra@cpan.org>2019-03-28 14:24:58 -0700
committerRuss Allbery <rra@cpan.org>2019-03-28 14:24:58 -0700
commit9895b736c5efb92658192f5bbacc3a462eb5008f (patch)
tree4896e5e5f85f7ebb607a9ab4d78d411ef80f5061 /t/data/generate/c-tap-harness/output
parent6a912c2019472744c65563c6afec1435631a0afb (diff)
Move test data for generate to a subdirectory
Clear space for other directories of test data for other DocKnot functions.
Diffstat (limited to 't/data/generate/c-tap-harness/output')
-rw-r--r--t/data/generate/c-tap-harness/output/readme292
-rw-r--r--t/data/generate/c-tap-harness/output/readme-md296
-rw-r--r--t/data/generate/c-tap-harness/output/thread220
3 files changed, 808 insertions, 0 deletions
diff --git a/t/data/generate/c-tap-harness/output/readme b/t/data/generate/c-tap-harness/output/readme
new file mode 100644
index 0000000..b75f7d6
--- /dev/null
+++ b/t/data/generate/c-tap-harness/output/readme
@@ -0,0 +1,292 @@
+ C TAP Harness 4.0
+ (C harness for running TAP-compliant tests)
+ Maintained by Russ Allbery <eagle@eyrie.org>
+
+ Copyright 2000-2001, 2004, 2006-2016 Russ Allbery <eagle@eyrie.org>.
+ Copyright 2006-2009, 2011-2013 The Board of Trustees of the Leland
+ Stanford Junior University. This software is distributed under a
+ BSD-style license. Please see the section LICENSE below for more
+ information.
+
+BLURB
+
+ C TAP Harness is a pure-C implementation of TAP, the Test Anything
+ Protocol. TAP is the text-based protocol used by Perl's test suite.
+ This package provides a harness similar to Perl's Test::Harness for
+ running tests, with some additional features useful for test suites in
+ packages that use Autoconf and Automake, and C and shell libraries to
+ make writing TAP-compliant test programs easier.
+
+DESCRIPTION
+
+ This package started as the runtests program I wrote for INN in 2000 to
+ serve as the basis for a new test suite using a test protocol similar to
+ that used for Perl modules. When I started maintaining additional C
+ packages, I adopted runtests for the test suite driver of those as well,
+ resulting in further improvements but also separate copies of the same
+ program in different distributions. The C TAP Harness distribution
+ merges all the various versions into a single code base that all my
+ packages can pull from.
+
+ C TAP Harness provides a full TAP specification driver (apart from a few
+ possible edge cases) and has additional special features for supporting
+ builds outside the source directory. It's mostly useful for packages
+ using Autoconf and Automake and because it doesn't assume or require
+ Perl.
+
+ The runtests program can be built with knowledge of the source and build
+ directory and pass that knowledge on to test scripts, and will search
+ for test scripts in both the source and build directory. This makes it
+ easier for packages using Autoconf and Automake and supporting
+ out-of-tree builds to build some test programs, ship others, and run
+ them all regardless of what tree they're in. It also makes it easier
+ for test cases to find their supporting files when they run.
+
+ Also included in this package are C and shell libraries that provide
+ utility functions for writing test scripts that use TAP to report
+ results. The C library also provides a variety of utility functions
+ useful for test programs running as part of an Automake-built package:
+ finding test data files, creating temporary files, reporting output from
+ external programs running in the background, and similar common
+ problems.
+
+REQUIREMENTS
+
+ C TAP Harness requires a C compiler to build. Any ISO C89 or later C
+ compiler on a system supporting the Single UNIX Specification, version 3
+ (SUSv3) should be sufficient. This should not be a problem on any
+ modern system. The test suite and shell library require a
+ Bourne-compatible shell. Outside of the test suite, C TAP Harness has
+ no other prerequisites or requirements.
+
+ To run the test suite, you will need Perl plus the Perl module
+ Test::More, which comes with Perl 5.8 or later. The following
+ additional Perl modules will be used by the test suite if present:
+
+ * Test::Pod
+ * Test::Spelling
+
+ All are available on CPAN. Those tests will be skipped if the modules
+ are not available.
+
+ To bootstrap from a Git checkout, or if you change the Automake files
+ and need to regenerate Makefile.in, you will need Automake 1.11 or
+ later. For bootstrap or if you change configure.ac or any of the m4
+ files it includes and need to regenerate configure or config.h.in, you
+ will need Autoconf 2.64 or later. Perl is also required to generate
+ manual pages from a fresh Git checkout.
+
+BUILDING
+
+ You can build C TAP Harness with the standard commands:
+
+ ./configure
+ make
+
+ If you are building from a Git clone, first run ./bootstrap in the
+ source directory to generate the build files. Building outside of the
+ source directory is also supported, if you wish, by creating an empty
+ directory and then running configure with the correct relative path.
+
+ Pass --enable-silent-rules to configure for a quieter build (similar to
+ the Linux kernel). Use make warnings instead of make to build with full
+ compiler warnings (requires either GCC or Clang and may require a
+ relatively current version of the compiler).
+
+ Installing C TAP Harness is not normally done. Instead, see the section
+ on using the harness below.
+
+TESTING
+
+ C TAP Harness comes with a comprehensive test suite, which you can run
+ after building with:
+
+ make check
+
+ If a test fails, you can run a single test with verbose output via:
+
+ ./runtests -b `pwd`/tests -s `pwd`/tests -o <name-of-test>
+
+ Do this instead of running the test program directly since it will
+ ensure that necessary environment variables are set up. You may need to
+ change the -s option argument if you build with a separate build
+ directory from the source directory.
+
+USING THE HARNESS
+
+ While there is an install target that installs runtests in the default
+ binary directory (/usr/local/bin by default) and installs the man pages,
+ one normally wouldn't install anything from this package. Instead, the
+ code is intended to be copied into your package and refreshed from the
+ latest release of C TAP Harness for each release.
+
+ You can obviously copy the code and integrate it however works best for
+ your package and your build system. Here's how I do it for my packages
+ as an example:
+
+ * Create a tests directory and copy tests/runtests.c into it. Create a
+ tests/tap subdirectory and copy the portions of the TAP library (from
+ tests/tap) that I need for that package into it. The TAP library is
+ designed to let you drop in additional source and header files for
+ additional utility functions that are useful in your package.
+
+ * Add code to my top-level Makefile.am (I always use a non-recursive
+ Makefile with subdir-objects set) to build runtests and the test
+ library:
+
+ check_PROGRAMS = tests/runtests
+ tests_runtests_CPPFLAGS = -DC_TAP_SOURCE='"$(abs_top_srcdir)/tests"' \
+ -DC_TAP_BUILD='"$(abs_top_builddir)/tests"'
+ check_LIBRARIES = tests/tap/libtap.a
+ tests_tap_libtap_a_CPPFLAGS = -I$(abs_top_srcdir)/tests
+ tests_tap_libtap_a_SOURCES = tests/tap/basic.c tests/tap/basic.h \
+ tests/tap/float.c tests/tap/float.h tests/tap/macros.h
+
+ Omit float.c and float.h from the last line if your package doesn't
+ need the is_double function. Building the build and source
+ directories into runtests will let tests/runtests -o <test> work for
+ users without requiring that they set any other variables, even if
+ they're doing an out-of-source build.
+
+ Add additional source files and headers that should go into the TAP
+ library if you added extra utility functions for your package.
+
+ * Add code to Makefile.am to run the test suite:
+
+ check-local: $(check_PROGRAMS)
+ cd tests && ./runtests -l $(abs_top_srcdir)/tests/TESTS
+
+ See the Makefile.am in this package for an example.
+
+ * List the test programs in the tests/TESTS file. This should have the
+ name of the test executable with the trailing "-t" or ".t" (you can
+ use either extension as you prefer) omitted.
+
+ Test programs must be executable.
+
+ For any test programs that need to be compiled, add build rules for
+ them in Makefile.am, simliar to:
+
+ tests_libtap_c_basic_LDADD = tests/tap/libtap.a
+
+ and add them to check_PROGRAMS. If you include the float.c add-on in
+ your libtap library, you will need to add -lm to the _LDADD setting
+ for all test programs linked against it.
+
+ A more complex example from the remctl package that needs additional
+ libraries:
+
+ tests_client_open_t_LDFLAGS = $(GSSAPI_LDFLAGS)
+ tests_client_open_t_LDADD = client/libremctl.la tests/tap/libtap.a \
+ util/libutil.la $(GSSAPI_LIBS)
+
+ If the test program doesn't need to be compiled, add it to EXTRA_DIST
+ so that it will be included in the distribution.
+
+ * If you have test programs written in shell, copy tests/tap/libtap.sh
+ the tap subdirectory of your tests directory and add it to EXTRA_DIST.
+ Shell programs should start with:
+
+ . "${C_TAP_SOURCE}/tap/libtap.sh"
+
+ and can then use the functions defined in the library.
+
+ * Optionally copy docs/writing-tests into your package somewhere, such
+ as tests/README, as instructions to contributors on how to write tests
+ for this framework.
+
+ If you have configuration files that the user must create to enable some
+ of the tests, conventionally they go into tests/config.
+
+ If you have data files that your test cases use, conventionally they go
+ into tests/data. You can then find the data directory relative to the
+ C_TAP_SOURCE environment variable (set by runtests) in your test
+ program. If you have data that's compiled or generated by Autoconf, it
+ will be relative to the BUILD environment variable. Don't forget to add
+ test data to EXTRA_DIST as necessary.
+
+ For more TAP library add-ons, generally ones that rely on additional
+ portability code not shipped in this package or with narrower uses, see
+ the rra-c-util package [1]. There are several additional TAP library
+ add-ons in the tests/tap directory in that package. It's also an
+ example of how to use this test harness in another package.
+
+ [1] https://www.eyrie.org/~eagle/software/rra-c-util/
+
+SUPPORT
+
+ The C TAP Harness web page at:
+
+ https://www.eyrie.org/~eagle/software/c-tap-harness/
+
+ will always have the current version of this package, the current
+ documentation, and pointers to any additional resources.
+
+ For bug tracking, use the issue tracker on GitHub:
+
+ https://github.com/rra/c-tap-harness/issues
+
+ However, please be aware that I tend to be extremely busy and work
+ projects often take priority. I'll save your report and get to it as
+ soon as I can, but it may take me a couple of months.
+
+SOURCE REPOSITORY
+
+ C TAP Harness is maintained using Git. You can access the current
+ source on GitHub at:
+
+ https://github.com/rra/c-tap-harness
+
+ or by cloning the repository at:
+
+ https://git.eyrie.org/git/devel/c-tap-harness.git
+
+ or view the repository via the web at:
+
+ https://git.eyrie.org/?p=devel/c-tap-harness.git
+
+ The eyrie.org repository is the canonical one, maintained by the author,
+ but using GitHub is probably more convenient for most purposes. Pull
+ requests are gratefully reviewed and normally accepted.
+
+LICENSE
+
+ The C TAP Harness package as a whole is covered by the following
+ copyright statement and license:
+
+ Copyright 2000-2001, 2004, 2006-2016 Russ Allbery <eagle@eyrie.org>
+ Copyright 2006-2009, 2011-2013
+ The Board of Trustees of the Leland Stanford Junior University
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Some files in this distribution are individually released under
+ different licenses, all of which are compatible with the above general
+ package license but which may require preservation of additional
+ notices. All required notices, and detailed information about the
+ licensing of each file, are recorded in the LICENSE file.
+
+ Files covered by a license with an assigned SPDX License Identifier
+ include SPDX-License-Identifier tags to enable automated processing of
+ license information. See https://spdx.org/licenses/ for more
+ information.
+
+ For any copyright range specified by files in this package as YYYY-ZZZZ,
+ the range specifies every single year in that closed interval.
diff --git a/t/data/generate/c-tap-harness/output/readme-md b/t/data/generate/c-tap-harness/output/readme-md
new file mode 100644
index 0000000..c744386
--- /dev/null
+++ b/t/data/generate/c-tap-harness/output/readme-md
@@ -0,0 +1,296 @@
+# C TAP Harness 4.0
+
+Copyright 2000-2001, 2004, 2006-2016 Russ Allbery <eagle@eyrie.org>.
+Copyright 2006-2009, 2011-2013 The Board of Trustees of the Leland
+Stanford Junior University. This software is distributed under a
+BSD-style license. Please see the section [License](#license) below for
+more information.
+
+## Blurb
+
+C TAP Harness is a pure-C implementation of TAP, the Test Anything
+Protocol. TAP is the text-based protocol used by Perl's test suite. This
+package provides a harness similar to Perl's Test::Harness for running
+tests, with some additional features useful for test suites in packages
+that use Autoconf and Automake, and C and shell libraries to make writing
+TAP-compliant test programs easier.
+
+## Description
+
+This package started as the runtests program I wrote for INN in 2000 to
+serve as the basis for a new test suite using a test protocol similar to
+that used for Perl modules. When I started maintaining additional C
+packages, I adopted runtests for the test suite driver of those as well,
+resulting in further improvements but also separate copies of the same
+program in different distributions. The C TAP Harness distribution merges
+all the various versions into a single code base that all my packages can
+pull from.
+
+C TAP Harness provides a full TAP specification driver (apart from a few
+possible edge cases) and has additional special features for supporting
+builds outside the source directory. It's mostly useful for packages
+using Autoconf and Automake and because it doesn't assume or require Perl.
+
+The runtests program can be built with knowledge of the source and build
+directory and pass that knowledge on to test scripts, and will search for
+test scripts in both the source and build directory. This makes it easier
+for packages using Autoconf and Automake and supporting out-of-tree builds
+to build some test programs, ship others, and run them all regardless of
+what tree they're in. It also makes it easier for test cases to find
+their supporting files when they run.
+
+Also included in this package are C and shell libraries that provide
+utility functions for writing test scripts that use TAP to report results.
+The C library also provides a variety of utility functions useful for test
+programs running as part of an Automake-built package: finding test data
+files, creating temporary files, reporting output from external programs
+running in the background, and similar common problems.
+
+## Requirements
+
+C TAP Harness requires a C compiler to build. Any ISO C89 or later C
+compiler on a system supporting the Single UNIX Specification, version 3
+(SUSv3) should be sufficient. This should not be a problem on any modern
+system. The test suite and shell library require a Bourne-compatible
+shell. Outside of the test suite, C TAP Harness has no other
+prerequisites or requirements.
+
+To run the test suite, you will need Perl plus the Perl module Test::More,
+which comes with Perl 5.8 or later. The following additional Perl modules
+will be used by the test suite if present:
+
+* Test::Pod
+* Test::Spelling
+
+All are available on CPAN. Those tests will be skipped if the modules are
+not available.
+
+To bootstrap from a Git checkout, or if you change the Automake files and
+need to regenerate Makefile.in, you will need Automake 1.11 or later. For
+bootstrap or if you change configure.ac or any of the m4 files it includes
+and need to regenerate configure or config.h.in, you will need Autoconf
+2.64 or later. Perl is also required to generate manual pages from a
+fresh Git checkout.
+
+## Building
+
+You can build C TAP Harness with the standard commands:
+
+```
+ ./configure
+ make
+```
+
+If you are building from a Git clone, first run `./bootstrap` in the
+source directory to generate the build files. Building outside of the
+source directory is also supported, if you wish, by creating an empty
+directory and then running configure with the correct relative path.
+
+Pass `--enable-silent-rules` to configure for a quieter build (similar to
+the Linux kernel). Use `make warnings` instead of `make` to build with
+full GCC compiler warnings (requires either GCC or Clang and may require a
+relatively current version of the compiler).
+
+Installing C TAP Harness is not normally done. Instead, see the section
+on using the harness below.
+
+## Testing
+
+C TAP Harness comes with a comprehensive test suite, which you can run
+after building with:
+
+```
+ make check
+```
+
+If a test fails, you can run a single test with verbose output via:
+
+```
+ ./runtests -b `pwd`/tests -s `pwd`/tests -o <name-of-test>
+```
+
+Do this instead of running the test program directly since it will ensure
+that necessary environment variables are set up. You may need to change
+the `-s` option argument if you build with a separate build directory from
+the source directory.
+
+## Using the Harness
+
+While there is an install target that installs runtests in the default
+binary directory (`/usr/local/bin` by default) and installs the man pages,
+one normally wouldn't install anything from this package. Instead, the
+code is intended to be copied into your package and refreshed from the
+latest release of C TAP Harness for each release.
+
+You can obviously copy the code and integrate it however works best for
+your package and your build system. Here's how I do it for my packages as
+an example:
+
+* Create a tests directory and copy tests/runtests.c into it. Create a
+ `tests/tap` subdirectory and copy the portions of the TAP library (from
+ `tests/tap`) that I need for that package into it. The TAP library is
+ designed to let you drop in additional source and header files for
+ additional utility functions that are useful in your package.
+
+* Add code to my top-level `Makefile.am` (I always use a non-recursive
+ Makefile with `subdir-objects` set) to build `runtests` and the test
+ library:
+
+ ```make
+ check_PROGRAMS = tests/runtests
+ tests_runtests_CPPFLAGS = -DC_TAP_SOURCE='"$(abs_top_srcdir)/tests"' \
+ -DC_TAP_BUILD='"$(abs_top_builddir)/tests"'
+ check_LIBRARIES = tests/tap/libtap.a
+ tests_tap_libtap_a_CPPFLAGS = -I$(abs_top_srcdir)/tests
+ tests_tap_libtap_a_SOURCES = tests/tap/basic.c tests/tap/basic.h \
+ tests/tap/float.c tests/tap/float.h tests/tap/macros.h
+ ```
+
+ Omit `float.c` and `float.h` from the last line if your package doesn't
+ need the `is_double` function. Building the build and source
+ directories into runtests will let `tests/runtests -o <test>` work for
+ users without requiring that they set any other variables, even if
+ they're doing an out-of-source build.
+
+ Add additional source files and headers that should go into the TAP
+ library if you added extra utility functions for your package.
+
+* Add code to `Makefile.am` to run the test suite:
+
+ ```make
+ check-local: $(check_PROGRAMS)
+ cd tests && ./runtests -l $(abs_top_srcdir)/tests/TESTS
+ ```
+
+ See the `Makefile.am` in this package for an example.
+
+* List the test programs in the `tests/TESTS` file. This should have the
+ name of the test executable with the trailing "-t" or ".t" (you can use
+ either extension as you prefer) omitted.
+
+ Test programs must be executable.
+
+ For any test programs that need to be compiled, add build rules for them
+ in `Makefile.am`, simliar to:
+
+ ```make
+ tests_libtap_c_basic_LDADD = tests/tap/libtap.a
+ ```
+
+ and add them to `check_PROGRAMS`. If you include the `float.c` add-on
+ in your libtap library, you will need to add `-lm` to the `_LDADD`
+ setting for all test programs linked against it.
+
+ A more complex example from the remctl package that needs additional
+ libraries:
+
+ ```make
+ tests_client_open_t_LDFLAGS = $(GSSAPI_LDFLAGS)
+ tests_client_open_t_LDADD = client/libremctl.la tests/tap/libtap.a \
+ util/libutil.la $(GSSAPI_LIBS)
+ ```
+
+ If the test program doesn't need to be compiled, add it to `EXTRA_DIST`
+ so that it will be included in the distribution.
+
+* If you have test programs written in shell, copy `tests/tap/libtap.sh`
+ the tap subdirectory of your tests directory and add it to `EXTRA_DIST`.
+ Shell programs should start with:
+
+ ```sh
+ . "${C_TAP_SOURCE}/tap/libtap.sh"
+ ```
+
+ and can then use the functions defined in the library.
+
+* Optionally copy `docs/writing-tests` into your package somewhere, such
+ as `tests/README`, as instructions to contributors on how to write tests
+ for this framework.
+
+If you have configuration files that the user must create to enable some
+of the tests, conventionally they go into `tests/config`.
+
+If you have data files that your test cases use, conventionally they go
+into `tests/data`. You can then find the data directory relative to the
+`C_TAP_SOURCE` environment variable (set by `runtests`) in your test
+program. If you have data that's compiled or generated by Autoconf, it
+will be relative to the `BUILD` environment variable. Don't forget to add
+test data to `EXTRA_DIST` as necessary.
+
+For more TAP library add-ons, generally ones that rely on additional
+portability code not shipped in this package or with narrower uses, see
+[the rra-c-util
+package](https://www.eyrie.org/~eagle/software/rra-c-util/). There are
+several additional TAP library add-ons in the `tests/tap` directory in
+that package. It's also an example of how to use this test harness in
+another package.
+
+## Support
+
+The [C TAP Harness web
+page](https://www.eyrie.org/~eagle/software/c-tap-harness/) will always
+have the current version of this package, the current documentation, and
+pointers to any additional resources.
+
+For bug tracking, use the [issue tracker on
+GitHub](https://github.com/rra/c-tap-harness/issues). However, please be
+aware that I tend to be extremely busy and work projects often take
+priority. I'll save your report and get to it as soon as I can, but it
+may take me a couple of months.
+
+## Source Repository
+
+C TAP Harness is maintained using Git. You can access the current source
+on [GitHub](https://github.com/rra/c-tap-harness) or by cloning the
+repository at:
+
+https://git.eyrie.org/git/devel/c-tap-harness.git
+
+or [view the repository on the
+web](https://git.eyrie.org/?p=devel/c-tap-harness.git).
+
+The eyrie.org repository is the canonical one, maintained by the author,
+but using GitHub is probably more convenient for most purposes. Pull
+requests are gratefully reviewed and normally accepted.
+
+## License
+
+The C TAP Harness package as a whole is covered by the following copyright
+statement and license:
+
+> Copyright 2000-2001, 2004, 2006-2016
+> Russ Allbery <eagle@eyrie.org>
+>
+> Copyright 2006-2009, 2011-2013
+> The Board of Trustees of the Leland Stanford Junior University
+>
+> Permission is hereby granted, free of charge, to any person obtaining a
+> copy of this software and associated documentation files (the "Software"),
+> to deal in the Software without restriction, including without limitation
+> the rights to use, copy, modify, merge, publish, distribute, sublicense,
+> and/or sell copies of the Software, and to permit persons to whom the
+> Software is furnished to do so, subject to the following conditions:
+>
+> The above copyright notice and this permission notice shall be included in
+> all copies or substantial portions of the Software.
+>
+> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+> THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+> DEALINGS IN THE SOFTWARE.
+
+Some files in this distribution are individually released under different
+licenses, all of which are compatible with the above general package
+license but which may require preservation of additional notices. All
+required notices, and detailed information about the licensing of each
+file, are recorded in the LICENSE file.
+
+Files covered by a license with an assigned SPDX License Identifier
+include SPDX-License-Identifier tags to enable automated processing of
+license information. See https://spdx.org/licenses/ for more information.
+
+For any copyright range specified by files in this package as YYYY-ZZZZ,
+the range specifies every single year in that closed interval.
diff --git a/t/data/generate/c-tap-harness/output/thread b/t/data/generate/c-tap-harness/output/thread
new file mode 100644
index 0000000..4001bef
--- /dev/null
+++ b/t/data/generate/c-tap-harness/output/thread
@@ -0,0 +1,220 @@
+\==[doc] [2] [\bullet(packed)[\link[\1][\2]]]
+\==[program] [3]
+ [\tablerow[\1 \version[\2]] [\release[\2]]
+ [\link[https://archives.eyrie.org/software/\3.tar.gz][tar.gz]
+ (\link[https://archives.eyrie.org/software/\3.tar.gz.asc]
+ [PGP signature])]
+ [\link[https://archives.eyrie.org/software/\3.tar.xz][tar.xz]
+ (\link[https://archives.eyrie.org/software/\3.tar.xz.asc]
+ [PGP signature])]]
+\==[download] [3]
+ [\1 \version[\2]\break
+ \link[https://archives.eyrie.org/software/\3.tar.gz][tar.gz]
+ (\link[https://archives.eyrie.org/software/\3.tar.gz.asc]
+ [signature])\break
+ \link[https://archives.eyrie.org/software/\3.tar.xz][tar.xz]
+ (\link[https://archives.eyrie.org/software/\3.tar.xz.asc]
+ [signature])\break
+ Released \release[\2]]
+
+\heading[C TAP Harness][software]
+
+\h1[C TAP Harness]
+
+\div(sidebar)[
+ \h2[Download]
+
+ \download[C TAP Harness][c-tap-harness]
+ [devel/c-tap-harness-\version[c-tap-harness]]
+
+ \link[https://archives.eyrie.org/software/ARCHIVE/c-tap-harness/]
+ [Archive]
+
+ \h2[Documentation]
+
+ \link[readme.html][General overview] \break
+ \link[news.html][Change summary] \break
+ \link[writing.html][Writing TAP tests] \break
+ \link[runtests.html][runtests manual page]
+
+ \h2[Development]
+
+ \link[todo.html][To-do list] \break
+ \link[https://github.com/rra/c-tap-harness]
+ [GitHub] \break
+ \link[https://github.com/rra/c-tap-harness/issues]
+ [Bug tracker] \break
+ \link[https://git.eyrie.org/?p=devel/c-tap-harness.git]
+ [Git repository] \break
+ \link[https://www.openhub.net/p/c-tap-harness]
+ [Open HUB code analysis]
+]
+
+\h2[Blurb]
+
+C TAP Harness is a pure-C implementation of TAP, the Test Anything
+Protocol. TAP is the text-based protocol used by Perl's test suite. This
+package provides a harness similar to Perl's Test::Harness for running
+tests, with some additional features useful for test suites in packages
+that use Autoconf and Automake, and C and shell libraries to make writing
+TAP-compliant test programs easier.
+
+\h2[Description]
+
+This package started as the runtests program I wrote for INN in 2000 to
+serve as the basis for a new test suite using a test protocol similar to
+that used for Perl modules. When I started maintaining additional C
+packages, I adopted runtests for the test suite driver of those as well,
+resulting in further improvements but also separate copies of the same
+program in different distributions. The C TAP Harness distribution merges
+all the various versions into a single code base that all my packages can
+pull from.
+
+C TAP Harness provides a full TAP specification driver (apart from a few
+possible edge cases) and has additional special features for supporting
+builds outside the source directory. It's mostly useful for packages
+using Autoconf and Automake and because it doesn't assume or require Perl.
+
+The runtests program can be built with knowledge of the source and build
+directory and pass that knowledge on to test scripts, and will search for
+test scripts in both the source and build directory. This makes it easier
+for packages using Autoconf and Automake and supporting out-of-tree builds
+to build some test programs, ship others, and run them all regardless of
+what tree they're in. It also makes it easier for test cases to find
+their supporting files when they run.
+
+Also included in this package are C and shell libraries that provide
+utility functions for writing test scripts that use TAP to report results.
+The C library also provides a variety of utility functions useful for test
+programs running as part of an Automake-built package: finding test data
+files, creating temporary files, reporting output from external programs
+running in the background, and similar common problems.
+
+\h2[Requirements]
+
+C TAP Harness requires a C compiler to build. Any ISO C89 or later C
+compiler on a system supporting the Single UNIX Specification, version 3
+(SUSv3) should be sufficient. This should not be a problem on any modern
+system. The test suite and shell library require a Bourne-compatible
+shell. Outside of the test suite, C TAP Harness has no other
+prerequisites or requirements.
+
+To run the test suite, you will need Perl plus the Perl module Test::More,
+which comes with Perl 5.8 or later. The following additional Perl modules
+will be used by the test suite if present:
+
+\bullet(packed)[Test::Pod]
+\bullet(packed)[Test::Spelling]
+
+All are available on CPAN. Those tests will be skipped if the modules are
+not available.
+
+To bootstrap from a Git checkout, or if you change the Automake files and
+need to regenerate Makefile.in, you will need Automake 1.11 or later. For
+bootstrap or if you change configure.ac or any of the m4 files it includes
+and need to regenerate configure or config.h.in, you will need Autoconf
+2.64 or later. Perl is also required to generate manual pages from a
+fresh Git checkout.
+
+\h2[Download]
+
+The distribution:
+
+\table[][
+ \program[C TAP Harness][c-tap-harness]
+ [devel/c-tap-harness-\version[c-tap-harness]]
+]
+
+An \link[https://archives.eyrie.org/software/ARCHIVE/c-tap-harness/]
+[archive of older releases] is also available.
+
+C TAP Harness is maintained using the Git version control system. To
+check out the current development tree, see
+\link[https://github.com/rra/c-tap-harness][GitHub] or clone:
+
+\pre[ https://git.eyrie.org/git/devel/c-tap-harness.git]
+
+Pull requests on GitHub are welcome. You can also
+\link[https://git.eyrie.org/?p=devel/c-tap-harness.git][browse the current
+development source].
+
+\h2[Documentation]
+
+\div(left)[
+ \class(first)[User documentation:]
+
+ \doc[readme.html][README]
+ \doc[news.html][Change summary]
+ \doc[writing.html][Writing TAP tests]
+ \doc[runtests.html][runtests manual page]
+ \doc[license.html][License and copyright]
+
+ Developer documentation:
+
+ \doc[todo.html][To-do list]
+ \doc[https://github.com/rra/c-tap-harness]
+ [GitHub]
+ \doc[https://github.com/rra/c-tap-harness/issues]
+ [Bug tracker]
+ \doc[https://www.openhub.net/p/c-tap-harness]
+ [Open HUB code analysis]
+
+]
+
+\div(right)[
+ \class(first)[API documentation:]
+
+ \doc[bail.html][bail and sysbail]
+ \doc[bmalloc.html][bmalloc, bcalloc, brealloc, bstrdup, and bstrndup]
+ \doc[breallocarray.html][breallocarray]
+ \doc[diag.html][diag and sysdiag]
+ \doc[diag_file_add.html][diag_file_add and diag_file_remove]
+ \doc[is_int.html][is_bool, is_int, is_double, is_string, and is_hex]
+ \doc[ok.html][ok, okv, and ok_block]
+ \doc[plan.html][plan and plan_lazy]
+ \doc[skip.html][skip and skip_block]
+ \doc[skip_all.html][skip_all]
+ \doc[test_cleanup_register.html][test_cleanup_register]
+ \doc[test_file_path.html][test_file_path and test_file_path_free]
+ \doc[test_tmpdir.html][test_tmpdir and test_tmpdir_free]
+]
+
+\h2(after)[License]
+
+The C TAP Harness package as a whole is covered by the following copyright
+and license:
+
+\block[
+
+ Copyright 2000-2001, 2004, 2006-2016
+ Russ Allbery <eagle@eyrie.org>
+
+ Copyright 2006-2009, 2011-2013
+ The Board of Trustees of the Leland Stanford Junior University
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+]
+
+Some individual source files are covered by other, compatible licenses.
+For complete copyright and license information, see the file
+\link[license.html][LICENSE] in the C TAP Harness source distribution.
+
+\signature