Test2::...2Legacy(3)

πŸ“¦ version 1.302214, in opensuse-leap 16.0

✨ NAME ✨

okay bestie, welcome to the Test2::...2Legacy(3) page from User Contributed Perl Documentation πŸ’… the actual module here is Test2::Util::Facets2Legacy β€” it converts facet data to the legacy event API. periodt.

πŸ’– 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.

bestie, this is the part where you do NOT ignore the cycle warning, fr fr 🫢

πŸ¦‹ 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: uuid() will fall back to $e->SUPER::uuid() if a cycle is detected and an event is used as the argument. iconic fallback behavior tbh πŸ‘‘

🌸 SOURCE 🌸

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

πŸ‘‘ MAINTAINERS πŸ‘‘

Chad Granum <exodist@cpan.org>

πŸ’œ AUTHORS πŸ’œ

Chad Granum <exodist@cpan.org>

Copyright 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 <https://dev.perl.org/licenses/>


bye bestie! πŸ’–βœ¨ this page is signing off with perl v5.42.0, dated 2025-07-28, and the manual tag Test2::...2Legacy(3) β€” slay and stay cycle-free πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from