Test2::API::Stack(3) Perl Programmers Reference Guide Test2::API::Stack(3)
NAME
Test2::API::Stack - Object to manage a stack of Test2::Hub instances.
***INTERNALS NOTE***
The internals of this package are subject to change at any time! The public
methods provided will not change in backwards incompatible ways, but the
underlying implementation details might. Do not break encapsulation here!
DESCRIPTION
This module is used to represent and manage a stack of Test2::Hub objects.
Hubs are usually in a stack so that you can push a new hub into place that
can intercept and handle events differently than the primary hub.
SYNOPSIS
my $stack = Test2::API::Stack->new;
my $hub = $stack->top;
METHODS
$stack = Test2::API::Stack->new()
This will create a new empty stack instance. All arguments are ignored.
$hub = $stack->new_hub()
$hub = $stack->new_hub(%params)
$hub = $stack->new_hub(%params, class => $class)
This will generate a new hub and push it to the top of the stack. Op-
tionally you can provide arguments that will be passed into the con-
structor for the Test2::Hub object.
If you specify the "'class' => $class" argument, the new hub will be an
instance of the specified class.
Unless your parameters specify 'formatter' or 'ipc' arguments, the for-
matter and IPC instance will be inherited from the current top hub. You
can set the parameters to "undef" to avoid having a formatter or IPC
instance.
If there is no top hub, and you do not ask to leave IPC and formatter
undef, then a new formatter will be created, and the IPC instance from
Test2::API will be used.
$hub = $stack->top()
This will return the top hub from the stack. If there is no top hub yet
this will create it.
$hub = $stack->peek()
This will return the top hub from the stack. If there is no top hub yet
this will return undef.
$stack->cull
This will call "$hub->cull" on all hubs in the stack.
@hubs = $stack->all
This will return all the hubs in the stack as a list.
$stack->clear
This will completely remove all hubs from the stack. Normally you do
not want to do this, but there are a few valid reasons for it.
$stack->push($hub)
This will push the new hub onto the stack.
$stack->pop($hub)
This will pop a hub from the stack, if the hub at the top of the stack
does not match the hub you expect (passed in as an argument) it will
throw an exception.
SOURCE
The source code repository for Test2 can be found at
.
MAINTAINERS
Chad Granum
AUTHORS
Chad Granum
COPYRIGHT
Copyright Chad Granum .
This program is free software; you can redistribute it and/or modify it un-
der the same terms as Perl itself.
See
perl v5.44.0 2026-06-22 Test2::API::Stack(3)