summaryrefslogtreecommitdiff
path: root/t/README
blob: 23ca7f726a02bbcef7e16672afdf42520d172442 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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 ought to be runnable with plain miniperl.
That is, they should not require Config.pm nor should they require any
extensions to have been built.  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/.

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