summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2002-05-10 13:48:10 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2002-05-10 13:48:10 +0000
commite018f8be847d79ec3f2a470a400d481ec2d7bbd6 (patch)
tree7c969788feea58f88b8116c7e454c1272a65dbf2
parent436c6dd385a3b29cadf4fa091af1c55eed665e29 (diff)
downloadperl-e018f8be847d79ec3f2a470a400d481ec2d7bbd6.tar.gz
Don't do JAPHs unless doing "make torturetest".
Document the less obvious make test targets. p4raw-id: //depot/perl@16534
-rw-r--r--Makefile.SH7
-rw-r--r--pod/perlhack.pod41
-rwxr-xr-xt/TEST9
-rw-r--r--t/harness8
4 files changed, 61 insertions, 4 deletions
diff --git a/Makefile.SH b/Makefile.SH
index 2c123c6750..3361b42ae1 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -980,7 +980,7 @@ makedepend: makedepend.SH config.sh
.PHONY: test check test_prep test_prep_nodll test_prep_pre _test_prep \
test_tty test-tty _test_tty test_notty test-notty _test_notty \
- utest ucheck test.utf8 check.utf8 \
+ utest ucheck test.utf8 check.utf8 test.torture torturetest \
test.third check.third utest.third ucheck.third test_notty.third \
test.deparse test_notty.deparse \
minitest coretest
@@ -1037,6 +1037,11 @@ test-tty: test_tty
test-notty: test_notty
+# Torture testing
+
+test.torture torturetest: test_prep
+ PERL=./perl TEST_ARGS=-torture $(MAKE) _test
+
# Targets for Third Degree testing.
test_prep.third: test_prep perl.third
diff --git a/pod/perlhack.pod b/pod/perlhack.pod
index 97772b8b23..2750e9e495 100644
--- a/pod/perlhack.pod
+++ b/pod/perlhack.pod
@@ -1803,6 +1803,47 @@ You must be triply conscious of cross-platform concerns. This usually
boils down to using File::Spec and avoiding things like C<fork()> and
C<system()> unless absolutely necessary.
+=head2 Special Make Test Targets
+
+There are various special make targets that can be used to test Perl
+slightly differently than the standard "test" target. Not all them
+are expected to give a 100% success rate. Many of them have several
+aliases.
+
+=over 4
+
+=item coretest
+
+Run F<perl> on all but F<lib/*> tests.
+
+=item test.deparse
+
+Run all the tests through the B::Deparse. Not all tests will succeed.
+
+=item minitest
+
+Run F<miniperl> on F<t/base>, F<t/comp>, F<t/cmd>, F<t/run>, F<t/io>,
+F<t/op>, and F<t/uni> tests.
+
+=item test.third check.third utest.third ucheck.third
+
+(Only in Tru64) Run all the tests using the memory leak + naughty
+memory access tool "Third Degree". The log files will be named
+F<perl3.log.testname>.
+
+=item test.torture torturetest
+
+Run all the usual tests and some extra tests. As of Perl 5.8.0 the
+only extra tests are Abigail's JAPHs, t/japh/abigail.t.
+
+You can also run the torture test with F<t/harness> by giving
+C<-torture> argument to F<t/harness>.
+
+=item utest ucheck test.utf8 check.utf8
+
+Run all the tests with -Mutf8. Not all tests will succeed.
+
+=back
=head1 EXTERNAL TOOLS FOR DEBUGGING PERL
diff --git a/t/TEST b/t/TEST
index af9edc8dd8..47560cdc71 100755
--- a/t/TEST
+++ b/t/TEST
@@ -19,6 +19,7 @@ if ($#ARGV >= 0) {
push( @argv, $ARGV[$idx] ), next unless $ARGV[$idx] =~ /^-(\S+)$/;
$core = 1 if $1 eq 'core';
$verbose = 1 if $1 eq 'v';
+ $torture = 1 if $1 eq 'torture';
$with_utf= 1 if $1 eq 'utf8';
$byte_compile = 1 if $1 eq 'bytecompile';
$compile = 1 if $1 eq 'compile';
@@ -110,9 +111,11 @@ unless (@ARGV) {
} else {
warn "$0: cannot open $mani: $!\n";
}
- _find_tests('pod') unless $core;
- _find_tests('x2p') unless $core;
- _find_tests('japh') unless $core;
+ unless ($core) {
+ _find_tests('pod');
+ _find_tests('x2p');
+ _find_tests('japh') if $torture;
+ }
}
# Tests known to cause infinite loops for the perlcc tests.
diff --git a/t/harness b/t/harness
index 1a15ebcca2..fafba45c2a 100644
--- a/t/harness
+++ b/t/harness
@@ -9,11 +9,18 @@ BEGIN {
$ENV{PERL5LIB} = '../lib'; # so children will see it too
}
+my $torture; # torture testing?
+
use Test::Harness;
$Test::Harness::switches = ""; # Too much noise otherwise
$Test::Harness::verbose = shift if @ARGV && $ARGV[0] eq '-v';
+if ($ARGV[0] eq '-torture') {
+ shift;
+ $torture = 1;
+}
+
# Let tests know they're running in the perl core. Useful for modules
# which live dual lives on CPAN.
$ENV{PERL_CORE} = 1;
@@ -57,6 +64,7 @@ if (@ARGV) {
push @tests, <op/*.t>;
push @tests, <uni/*.t>;
push @tests, <lib/*.t>;
+ push @tests, <japh/*.t> if $torture;
push @tests, <win32/*.t> if $^O eq 'MSWin32';
use File::Spec;
my $updir = File::Spec->updir;