.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" 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 "App::Yath::Converting 3pm" .TH App::Yath::Converting 3pm "2023-03-12" "perl v5.36.0" "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" App::Yath::Converting \- Things you may need to change in your tests before you can use yath. .SH "NON-TAP FORMATTER" .IX Header "NON-TAP FORMATTER" By default yath tells any Test2 or Test::Builder tests to use Test2::Formatter::Stream instead of Test2::Formatter::TAP. This is done in order to make sure as much data as possible makes it to yath, \s-1TAP\s0 is a lossy formater by comparison. .PP This is not normally a problem, but tests that do strange things with \&\s-1STDERR/STDOUT,\s0 or try to intercept output from the regular \s-1TAP\s0 formatter can have issues with this. .SS "\s-1SOLUTIONS\s0" .IX Subsection "SOLUTIONS" \fIHARNESS-NO-STREAM\fR .IX Subsection "HARNESS-NO-STREAM" .PP You can add a harness directive to the top of offending tests that tell the harness those specific tests should still use the \s-1TAP\s0 formatter. .PP .Vb 3 \& #!/usr/bin/perl \& # HARNESS\-NO\-STREAM \& ... .Ve .PP This directive can come after the \f(CW\*(C`#!\*(C'\fR line, and after use statements, but must come \s-1BEFORE\s0 any empty lines or runtime statements. .PP \fI\-\-no\-stream\fR .IX Subsection "--no-stream" .PP You can run yath with the \f(CW\*(C`\-\-no\-stream\*(C'\fR option, which will have tests default to \s-1TAP.\s0 This is not recommended as \s-1TAP\s0 is lossy. .SH "TESTS ARE RUN VIA FORK BY DEFAULT" .IX Header "TESTS ARE RUN VIA FORK BY DEFAULT" The default mode for yath is to preload a few things, then fork to spawn each test. This is a complicated procedure, and it uses goto::file under the hood. Sometimes you have tests that simply will not work this way, or tests that verify specific libraries are not already loaded. .SS "\s-1SOLUTIONS\s0" .IX Subsection "SOLUTIONS" \fIHARNESS-NO-PRELOAD\fR .IX Subsection "HARNESS-NO-PRELOAD" .PP You can use this harness directive inside your tests to tell yath not to fork, but to instead launch a new perl process to run the test. .PP .Vb 3 \& #!/usr/bin/perl \& # HARNESS\-NO\-PRELOAD \& ... .Ve .PP \fI\-\-no\-fork\fR .IX Subsection "--no-fork" .PP \fI\-\-no\-preload\fR .IX Subsection "--no-preload" .PP Both these options tell yath not to preload+fork, but to run \s-1ALL\s0 tests in new processes. This is slow, it is better to mark specific tests that have issues in preload mode. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2\-Harness can be found at \&\fIhttp://github.com/Test\-More/Test2\-Harness/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2020 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR