dist/ is for dual-life modules, where the blead source is
canonical.
+For some dual-life modules it has not been discussed if the CPAN version or the
+blead source is canonical. Until that is done, those modules should be in
+F<cpan/>.
+
=item Tests
There are tests for nearly all the modules, built-ins and major bits
C<runops_standard> function in F<run.c>; more specifically, it's done by
these three innocent looking lines:
- while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX))) {
+ while ((PL_op = PL_op->op_ppaddr(aTHX))) {
PERL_ASYNC_CHECK();
}
them out), but it basically works that way. Everything else lives in
F<t/>.
+Testing of warning messages is often separately done by using expect scripts in
+F<t/lib/warnings>. This is because much of the setup for them is already done
+for you.
+
If you add a new test directory under F<t/>, it is imperative that you
add that directory to F<t/HARNESS> and F<t/TEST>.
decision of which to use depends on what part of the test suite you're
working on. This is a measure to prevent a high-level failure (such
as Config.pm breaking) from causing basic functionality tests to fail.
+If you write your own test, use the L<Test Anything Protocol|TAP>.
=over 4
quick hint:
- $ sh Configure -des -Doptimize='-g' -Accflags='-fprofile-arcs -ftest-coverage' \
+ $ sh Configure -des -Dusedevel -Doptimize='-g' \
+ -Accflags='-fprofile-arcs -ftest-coverage' \
-Aldflags='-fprofile-arcs -ftest-coverage' && make perl.gcov
$ rm -f regexec.c.gcov regexec.gcda
$ ./perl.gcov