summaryrefslogtreecommitdiffstats
path: root/upstream/mageia-cauldron/man3pm/Test2::Util::Facets2Legacy.3pm
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/mageia-cauldron/man3pm/Test2::Util::Facets2Legacy.3pm')
-rw-r--r--upstream/mageia-cauldron/man3pm/Test2::Util::Facets2Legacy.3pm237
1 files changed, 237 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man3pm/Test2::Util::Facets2Legacy.3pm b/upstream/mageia-cauldron/man3pm/Test2::Util::Facets2Legacy.3pm
new file mode 100644
index 00000000..4928d1c5
--- /dev/null
+++ b/upstream/mageia-cauldron/man3pm/Test2::Util::Facets2Legacy.3pm
@@ -0,0 +1,237 @@
+.\" -*- 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::Util::Facets2Legacy 3pm"
+.TH Test2::Util::Facets2Legacy 3pm 2023-11-28 "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::Util::Facets2Legacy \- Convert facet data to the legacy event API.
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+This module exports several subroutines from the older event API (see
+Test2::Event). These subroutines can be used as methods on any object that
+provides a custom \f(CWfacet_data()\fR method. These subroutines can also be used as
+functions that take a facet data hashref as arguments.
+.SH SYNOPSIS
+.IX Header "SYNOPSIS"
+.SS "AS METHODS"
+.IX Subsection "AS METHODS"
+.Vb 1
+\& package My::Event;
+\&
+\& use Test2::Util::Facets2Legacy \*(Aq:ALL\*(Aq;
+\&
+\& sub facet_data { return { ... } }
+.Ve
+.PP
+Then to use it:
+.PP
+.Vb 1
+\& my $e = My::Event\->new(...);
+\&
+\& my $causes_fail = $e\->causes_fail;
+\& my $summary = $e\->summary;
+\& ....
+.Ve
+.SS "AS FUNCTIONS"
+.IX Subsection "AS FUNCTIONS"
+.Vb 1
+\& use Test2::Util::Facets2Legacy \*(Aq:ALL\*(Aq;
+\&
+\& my $f = {
+\& assert => { ... },
+\& info => [{...}, ...],
+\& control => {...},
+\& ...
+\& };
+\&
+\& my $causes_fail = causes_fail($f);
+\& my $summary = summary($f);
+.Ve
+.SH "NOTE ON CYCLES"
+.IX Header "NOTE ON CYCLES"
+When used as methods, all these subroutines call \f(CW\*(C`$e\->facet_data()\*(C'\fR. The
+default \f(CWfacet_data()\fR method in Test2::Event relies on the legacy methods
+this module emulates in order to work. As a result of this it is very easy to
+create infinite recursion bugs.
+.PP
+These methods have cycle detection and will throw an exception early if a cycle
+is detected. \f(CWuuid()\fR is currently the only subroutine in this library that
+has a fallback behavior when cycles are detected.
+.SH EXPORTS
+.IX Header "EXPORTS"
+Nothing is exported by default. You must specify which methods to import, or
+use the ':ALL' tag.
+.ie n .IP "$bool = $e\->\fBcauses_fail()\fR" 4
+.el .IP "\f(CW$bool\fR = \f(CW$e\fR\->\fBcauses_fail()\fR" 4
+.IX Item "$bool = $e->causes_fail()"
+.PD 0
+.ie n .IP "$bool = causes_fail($f)" 4
+.el .IP "\f(CW$bool\fR = causes_fail($f)" 4
+.IX Item "$bool = causes_fail($f)"
+.PD
+Check if the event or facets result in a failing state.
+.ie n .IP "$bool = $e\->\fBdiagnostics()\fR" 4
+.el .IP "\f(CW$bool\fR = \f(CW$e\fR\->\fBdiagnostics()\fR" 4
+.IX Item "$bool = $e->diagnostics()"
+.PD 0
+.ie n .IP "$bool = diagnostics($f)" 4
+.el .IP "\f(CW$bool\fR = diagnostics($f)" 4
+.IX Item "$bool = diagnostics($f)"
+.PD
+Check if the event or facets contain any diagnostics information.
+.ie n .IP "$bool = $e\->\fBglobal()\fR" 4
+.el .IP "\f(CW$bool\fR = \f(CW$e\fR\->\fBglobal()\fR" 4
+.IX Item "$bool = $e->global()"
+.PD 0
+.ie n .IP "$bool = global($f)" 4
+.el .IP "\f(CW$bool\fR = global($f)" 4
+.IX Item "$bool = global($f)"
+.PD
+Check if the event or facets need to be globally processed.
+.ie n .IP "$bool = $e\->\fBincrements_count()\fR" 4
+.el .IP "\f(CW$bool\fR = \f(CW$e\fR\->\fBincrements_count()\fR" 4
+.IX Item "$bool = $e->increments_count()"
+.PD 0
+.ie n .IP "$bool = increments_count($f)" 4
+.el .IP "\f(CW$bool\fR = increments_count($f)" 4
+.IX Item "$bool = increments_count($f)"
+.PD
+Check if the event or facets make an assertion.
+.ie n .IP "$bool = $e\->\fBno_display()\fR" 4
+.el .IP "\f(CW$bool\fR = \f(CW$e\fR\->\fBno_display()\fR" 4
+.IX Item "$bool = $e->no_display()"
+.PD 0
+.ie n .IP "$bool = no_display($f)" 4
+.el .IP "\f(CW$bool\fR = no_display($f)" 4
+.IX Item "$bool = no_display($f)"
+.PD
+Check if the event or facets should be rendered or hidden.
+.ie n .IP "($max, $directive, $reason) = $e\->\fBsets_plan()\fR" 4
+.el .IP "($max, \f(CW$directive\fR, \f(CW$reason\fR) = \f(CW$e\fR\->\fBsets_plan()\fR" 4
+.IX Item "($max, $directive, $reason) = $e->sets_plan()"
+.PD 0
+.ie n .IP "($max, $directive, $reason) = sets_plan($f)" 4
+.el .IP "($max, \f(CW$directive\fR, \f(CW$reason\fR) = sets_plan($f)" 4
+.IX Item "($max, $directive, $reason) = sets_plan($f)"
+.PD
+Check if the event or facets set a plan, and return the plan details.
+.ie n .IP "$id = $e\->\fBsubtest_id()\fR" 4
+.el .IP "\f(CW$id\fR = \f(CW$e\fR\->\fBsubtest_id()\fR" 4
+.IX Item "$id = $e->subtest_id()"
+.PD 0
+.ie n .IP "$id = subtest_id($f)" 4
+.el .IP "\f(CW$id\fR = subtest_id($f)" 4
+.IX Item "$id = subtest_id($f)"
+.PD
+Get the subtest id, if any.
+.ie n .IP "$string = $e\->\fBsummary()\fR" 4
+.el .IP "\f(CW$string\fR = \f(CW$e\fR\->\fBsummary()\fR" 4
+.IX Item "$string = $e->summary()"
+.PD 0
+.ie n .IP "$string = summary($f)" 4
+.el .IP "\f(CW$string\fR = summary($f)" 4
+.IX Item "$string = summary($f)"
+.PD
+Get the summary of the event or facets hash, if any.
+.ie n .IP "$undef_or_int = $e\->\fBterminate()\fR" 4
+.el .IP "\f(CW$undef_or_int\fR = \f(CW$e\fR\->\fBterminate()\fR" 4
+.IX Item "$undef_or_int = $e->terminate()"
+.PD 0
+.ie n .IP "$undef_or_int = terminate($f)" 4
+.el .IP "\f(CW$undef_or_int\fR = terminate($f)" 4
+.IX Item "$undef_or_int = terminate($f)"
+.PD
+Check if the event or facets should result in process termination, if so the
+exit code is returned (which could be 0). undef is returned if no termination
+is requested.
+.ie n .IP "$uuid = $e\->\fBuuid()\fR" 4
+.el .IP "\f(CW$uuid\fR = \f(CW$e\fR\->\fBuuid()\fR" 4
+.IX Item "$uuid = $e->uuid()"
+.PD 0
+.ie n .IP "$uuid = uuid($f)" 4
+.el .IP "\f(CW$uuid\fR = uuid($f)" 4
+.IX Item "$uuid = uuid($f)"
+.PD
+Get the UUID of the facets or event.
+.Sp
+\&\fBNote:\fR This will fall back to \f(CW\*(C`$e\->SUPER::uuid()\*(C'\fR if a cycle is
+detected and an event is used as the argument.
+.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 <exodist@cpan.org>" 4
+.IX Item "Chad Granum <exodist@cpan.org>"
+.SH AUTHORS
+.IX Header "AUTHORS"
+.PD 0
+.IP "Chad Granum <exodist@cpan.org>" 4
+.IX Item "Chad Granum <exodist@cpan.org>"
+.PD
+.SH COPYRIGHT
+.IX Header "COPYRIGHT"
+Copyright 2020 Chad Granum <exodist@cpan.org>.
+.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