mirror of
https://github.com/Perl/perl5.git
synced 2026-01-27 01:44:43 +00:00
45 lines
2.0 KiB
Plaintext
45 lines
2.0 KiB
Plaintext
This is the perl test library. To run the test suite, just type './TEST'
|
|
or 'make test' from the build directory above t/. See also the section
|
|
"Special Make Test Targets" in pod/perlhack.pod to learn about other
|
|
specific test commands.
|
|
|
|
To add new tests, just look at the current tests and do likewise.
|
|
The library t/test.pl provides some utility functions that you can use
|
|
in most tests, except in the most basic ones.
|
|
|
|
If a test fails, run it by itself to see if it prints any informative
|
|
diagnostics. If not, modify the test to print informative diagnostics.
|
|
If you put out extra lines with a '#' character on the front, you don't
|
|
have to worry about removing the extra print statements later since TEST
|
|
ignores lines beginning with '#'.
|
|
|
|
If you know that Perl is basically working but expect that some tests
|
|
will fail, you may want to use Test::Harness thusly:
|
|
cd t
|
|
./perl harness
|
|
This method pinpoints failed tests automatically.
|
|
|
|
If you come up with new tests, please submit them to
|
|
https://github.com/Perl/perl5/issues.
|
|
|
|
Tests in the t/base/ directory must be runnable with plain miniperl alone.
|
|
That is, they should not assume that require works, let alone that they can
|
|
require Config.pm, strict or warnings. This constraint is frustrating, but
|
|
necessary as they exist to sanity test the rest of the test framework.
|
|
TEST will abort if any tests in the t/base/ directory fail.
|
|
|
|
Tests in the t/comp/, t/cmd/, t/run/, t/io/, t/op/ and t/uni/ directories
|
|
should also be runnable by miniperl and not require Config.pm, but
|
|
failures to comply will not cause TEST to abort like for t/base/.
|
|
|
|
The comment in TEST explains the test bootstrapping order:
|
|
|
|
* base first, as TEST bails out if that can't run
|
|
* then comp, to validate that require works
|
|
* then run, to validate that -M works
|
|
* then we know we can -MTestInit for everything else, making life simpler
|
|
|
|
Tests in t/perf/ are designed to test performance and optimisations,
|
|
and also contain additional tools and files designed to run outside
|
|
of the test suite
|