.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (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 .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . 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 "Test2::Tools::Tiny 3perl" .TH Test2::Tools::Tiny 3perl 2024-01-12 "perl v5.38.2" "Perl Programmers Reference Guide" .\" 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 Test2::Tools::Tiny \- Tiny set of tools for unfortunate souls who cannot use Test2::Suite. .SH DESCRIPTION .IX Header "DESCRIPTION" You should really look at Test2::Suite. This package is some very basic essential tools implemented using Test2. This exists only so that Test2 and other tools required by Test2::Suite can be tested. This is the package Test2 uses to test itself. .SH "USE Test2::Suite INSTEAD" .IX Header "USE Test2::Suite INSTEAD" Use Test2::Suite if at all possible. .SH EXPORTS .IX Header "EXPORTS" .ie n .IP "ok($bool, $name)" 4 .el .IP "ok($bool, \f(CW$name\fR)" 4 .IX Item "ok($bool, $name)" .PD 0 .ie n .IP "ok($bool, $name, @diag)" 4 .el .IP "ok($bool, \f(CW$name\fR, \f(CW@diag\fR)" 4 .IX Item "ok($bool, $name, @diag)" .PD Run a simple assertion. .ie n .IP "is($got, $want, $name)" 4 .el .IP "is($got, \f(CW$want\fR, \f(CW$name\fR)" 4 .IX Item "is($got, $want, $name)" .PD 0 .ie n .IP "is($got, $want, $name, @diag)" 4 .el .IP "is($got, \f(CW$want\fR, \f(CW$name\fR, \f(CW@diag\fR)" 4 .IX Item "is($got, $want, $name, @diag)" .PD Assert that 2 strings are the same. .ie n .IP "isnt($got, $do_not_want, $name)" 4 .el .IP "isnt($got, \f(CW$do_not_want\fR, \f(CW$name\fR)" 4 .IX Item "isnt($got, $do_not_want, $name)" .PD 0 .ie n .IP "isnt($got, $do_not_want, $name, @diag)" 4 .el .IP "isnt($got, \f(CW$do_not_want\fR, \f(CW$name\fR, \f(CW@diag\fR)" 4 .IX Item "isnt($got, $do_not_want, $name, @diag)" .PD Assert that 2 strings are not the same. .ie n .IP "like($got, $regex, $name)" 4 .el .IP "like($got, \f(CW$regex\fR, \f(CW$name\fR)" 4 .IX Item "like($got, $regex, $name)" .PD 0 .ie n .IP "like($got, $regex, $name, @diag)" 4 .el .IP "like($got, \f(CW$regex\fR, \f(CW$name\fR, \f(CW@diag\fR)" 4 .IX Item "like($got, $regex, $name, @diag)" .PD Check that the input string matches the regex. .ie n .IP "unlike($got, $regex, $name)" 4 .el .IP "unlike($got, \f(CW$regex\fR, \f(CW$name\fR)" 4 .IX Item "unlike($got, $regex, $name)" .PD 0 .ie n .IP "unlike($got, $regex, $name, @diag)" 4 .el .IP "unlike($got, \f(CW$regex\fR, \f(CW$name\fR, \f(CW@diag\fR)" 4 .IX Item "unlike($got, $regex, $name, @diag)" .PD Check that the input string does not match the regex. .ie n .IP "is_deeply($got, $want, $name)" 4 .el .IP "is_deeply($got, \f(CW$want\fR, \f(CW$name\fR)" 4 .IX Item "is_deeply($got, $want, $name)" .PD 0 .ie n .IP "is_deeply($got, $want, $name, @diag)" 4 .el .IP "is_deeply($got, \f(CW$want\fR, \f(CW$name\fR, \f(CW@diag\fR)" 4 .IX Item "is_deeply($got, $want, $name, @diag)" .PD Check 2 data structures. Please note that this is a \fIDUMB\fR implementation that compares the output of Data::Dumper against both structures. .IP diag($msg) 4 .IX Item "diag($msg)" Issue a diagnostics message to STDERR. .IP note($msg) 4 .IX Item "note($msg)" Issue a diagnostics message to STDOUT. .IP skip_all($reason) 4 .IX Item "skip_all($reason)" Skip all tests. .ie n .IP "todo $reason => sub { ... }" 4 .el .IP "todo \f(CW$reason\fR => sub { ... }" 4 .IX Item "todo $reason => sub { ... }" Run a block in TODO mode. .IP plan($count) 4 .IX Item "plan($count)" Set the plan. .IP \fBdone_testing()\fR 4 .IX Item "done_testing()" Set the plan to the current test count. .ie n .IP "$warnings = warnings { ... }" 4 .el .IP "\f(CW$warnings\fR = warnings { ... }" 4 .IX Item "$warnings = warnings { ... }" Capture an arrayref of warnings from the block. .ie n .IP "$exception = exception { ... }" 4 .el .IP "\f(CW$exception\fR = exception { ... }" 4 .IX Item "$exception = exception { ... }" Capture an exception. .ie n .IP "tests $name => sub { ... }" 4 .el .IP "tests \f(CW$name\fR => sub { ... }" 4 .IX Item "tests $name => sub { ... }" Run a subtest. .ie n .IP "$output = capture { ... }" 4 .el .IP "\f(CW$output\fR = capture { ... }" 4 .IX Item "$output = capture { ... }" Capture STDOUT and STDERR output. .Sp Result looks like this: .Sp .Vb 4 \& { \& STDOUT => "...", \& STDERR => "...", \& } .Ve .SH SOURCE .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\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