.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Apache::TestRun 3pm" .TH Apache::TestRun 3pm "2021-05-21" "perl v5.32.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Apache::TestRun \- Run the test suite .SH "SYNOPSIS" .IX Header "SYNOPSIS" .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \f(CW\*(C`Apache::TestRun\*(C'\fR package controls the configuration and running of the test suite. .SH "METHODS" .IX Header "METHODS" Several methods are sub-classable, if the default behavior should be changed. .ie n .SS """bug_report""" .el .SS "\f(CWbug_report\fP" .IX Subsection "bug_report" The \f(CW\*(C`bug_report()\*(C'\fR method is executed when \f(CW\*(C`t/TEST\*(C'\fR was executed with the \f(CW\*(C`\-bugreport\*(C'\fR option, and \f(CW\*(C`make test\*(C'\fR (or \f(CW\*(C`t/TEST\*(C'\fR) fail. Normally this is callback which you can use to tell the user how to deal with the problem, e.g. suggesting to read some document or email some details to someone who can take care of it. By default nothing is executed. .PP The \f(CW\*(C`\-bugreport\*(C'\fR option is needed so this feature won't become annoying to developers themselves. It's automatically added to the \&\f(CW\*(C`run_tests\*(C'\fR target in \fIMakefile\fR. So if you repeateadly have to test your code, just don't use \f(CW\*(C`make test\*(C'\fR but run \f(CW\*(C`t/TEST\*(C'\fR directly. Here is an example of a custom \f(CW\*(C`t/TEST\*(C'\fR .PP .Vb 1 \& My::TestRun\->new\->run(@ARGV); \& \& package My::TestRun; \& use base \*(AqApache::TestRun\*(Aq; \& \& sub bug_report { \& my $self = shift; \& \& print <new\->run(@ARGV); \& \& sub pre_configure { \& my $self = shift; \& # Don\*(Aqt load an installed mod_apreq \& Apache::TestConfig::autoconfig_skip_module_add(\*(Aqmod_apreq.c\*(Aq); \& \& $self\->SUPER::pre_configure(); \& } .Ve .PP Notice that the extension is \fI.c\fR, and not \fI.so\fR. .PP Don't forget to run the super class' c<\fBpre_configure()\fR> method. .ie n .SS """new_test_config""" .el .SS "\f(CWnew_test_config\fP" .IX Subsection "new_test_config" \&\s-1META:\s0 to be completed