Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Test2::Util::Facets2Legacy (3)

Name

Test2::Util::Facets2Legacy - Convert facet data to the legacy event API.

Synopsis

AS METHODS
package My::Event;

use Test2::Util::Facets2Legacy ':ALL';

sub facet_data { return { ... } }

Then to use it:

my $e = My::Event->new(...);

my $causes_fail = $e->causes_fail;
my $summary     = $e->summary;
....

AS FUNCTIONS
use Test2::Util::Facets2Legacy ':ALL';

my $f = {
assert => { ... },
info => [{...}, ...],
control => {...},
...
};

my $causes_fail = causes_fail($f);
my $summary     = summary($f);

Description

Perl Programmers Reference Guide
                                                 Test2::Util::Facets2Legacy(3)



NAME
       Test2::Util::Facets2Legacy - Convert facet data to the legacy event
       API.

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 "facet_data()" method. These subroutines can
       also be used as functions that take a facet data hashref as arguments.

SYNOPSIS
   AS METHODS
           package My::Event;

           use Test2::Util::Facets2Legacy ':ALL';

           sub facet_data { return { ... } }

       Then to use it:

           my $e = My::Event->new(...);

           my $causes_fail = $e->causes_fail;
           my $summary     = $e->summary;
           ....

   AS FUNCTIONS
           use Test2::Util::Facets2Legacy ':ALL';

           my $f = {
               assert => { ... },
               info => [{...}, ...],
               control => {...},
               ...
           };

           my $causes_fail = causes_fail($f);
           my $summary     = summary($f);

NOTE ON CYCLES
       When used as methods, all these subroutines call "$e->facet_data()".
       The default "facet_data()" 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.

       These methods have cycle detection and will throw an exception early if
       a cycle is detected. "uuid()" is currently the only subroutine in this
       library that has a fallback behavior when cycles are detected.

EXPORTS
       Nothing is exported by default. You must specify which methods to
       import, or use the ':ALL' tag.

       $bool = $e->causes_fail()
       $bool = causes_fail($f)
           Check if the event or facets result in a failing state.

       $bool = $e->diagnostics()
       $bool = diagnostics($f)
           Check if the event or facets contain any diagnostics information.

       $bool = $e->global()
       $bool = global($f)
           Check if the event or facets need to be globally processed.

       $bool = $e->increments_count()
       $bool = increments_count($f)
           Check if the event or facets make an assertion.

       $bool = $e->no_display()
       $bool = no_display($f)
           Check if the event or facets should be rendered or hidden.

       ($max, $directive, $reason) = $e->sets_plan()
       ($max, $directive, $reason) = sets_plan($f)
           Check if the event or facets set a plan, and return the plan
           details.

       $id = $e->subtest_id()
       $id = subtest_id($f)
           Get the subtest id, if any.

       $string = $e->summary()
       $string = summary($f)
           Get the summary of the event or facets hash, if any.

       $undef_or_int = $e->terminate()
       $undef_or_int = terminate($f)
           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.

       $uuid = $e->uuid()
       $uuid = uuid($f)
           Get the UUID of the facets or event.

           Note: This will fall back to "$e->SUPER::uuid()" if a cycle is
           detected and an event is used as the argument.

SOURCE
       The source code repository for Test2 can be found at
       http://github.com/Test-More/test-more/.

MAINTAINERS
       Chad Granum <exodist@cpan.org>

AUTHORS
       Chad Granum <exodist@cpan.org>

COPYRIGHT
       Copyright 2019 Chad Granum <exodist@cpan.org>.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       See http://dev.perl.org/licenses/



ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+-----------------------+
       |ATTRIBUTE TYPE |   ATTRIBUTE VALUE     |
       +---------------+-----------------------+
       |Availability   | runtime/perl-532      |
       +---------------+-----------------------+
       |Stability      | Pass-through volatile |
       +---------------+-----------------------+

NOTES
       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       http://www.cpan.org/src/5.0/perl-5.32.0.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.perl.org/.



perl v5.32.0                      2020-06-14
                                                 Test2::Util::Facets2Legacy(3)