automake: Introduction to TAP

1 
1 15.4.1 Introduction to TAP
1 --------------------------
1 
1 TAP, the Test Anything Protocol, is a simple text-based interface
1 between testing modules or programs and a test harness.  The tests (also
1 called “TAP producers” in this context) write test results in a simple
1 format on standard output; a test harness (also called “TAP consumer”)
1 will parse and interpret these results, and properly present them to the
1 user, and/or register them for later analysis.  The exact details of how
1 this is accomplished can vary among different test harnesses.  The
1 Automake harness will present the results on the console in the usual
1 fashion (⇒Testsuite progress on console), and will use the ‘.trs’
1 files (⇒Basics of test metadata) to store the test results and
1 related metadata.  Apart from that, it will try to remain as much
1 compatible as possible with pre-existing and widespread utilities, such
1 as the ‘prove’ utility
1 (http://search.cpan.org/~andya/Test-Harness/bin/prove), at least for the
1 simpler usages.
1 
1    TAP started its life as part of the test harness for Perl, but today
1 it has been (mostly) standardized, and has various independent
1 implementations in different languages; among them, C, C++, Perl,
1 Python, PHP, and Java.  For a semi-official specification of the TAP
1 protocol, please refer to the documentation of ‘Test::Harness::TAP’
1 (http://search.cpan.org/~petdance/Test-Harness/lib/Test/Harness/TAP.pod).
1 
1    The most relevant real-world usages of TAP are obviously in the
1 testsuites of ‘perl’ and of many perl modules.  Still, also other
1 important third-party packages, such as ‘git’ (http://git-scm.com/), use
1 TAP in their testsuite.
1