.\" -*- 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 3pm"
.TH Test2::Tools::Tiny 3pm 2024-04-27 "perl v5.38.2" "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
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
.
.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