Test2::API::Instance - Test2::API 内部使用的对象
此对象封装了 Test2 跟踪的全局共享状态。此包的单个全局实例由 Test2::API 包存储(并隐藏)。
没有理由直接使用此包。此包的文档是为了完整性。此包可能会随时更改或完全消失。直接使用或修补此包在任何情况下都不受支持。
use Test2::API::Instance;
my $obj = Test2::API::Instance->new;
此实例的 PID。
此实例的线程 ID。
将对象重置为默认值。
将内部状态设置为已加载,并运行和存储加载后的回调。
检查状态是否设置为已加载。
获取加载后的回调。
添加加载后的回调。如果load()
已经被调用,那么回调将立即执行。如果load()
还没有被调用,那么回调将被存储,并在以后调用load()
时执行。
获取所有活动上下文,以中心 ID 为键的哈希引用。
获取所有上下文获取回调。
获取所有上下文初始化回调。
获取所有上下文释放回调。
获取所有子测试前的回调。
添加上下文初始化回调。每次创建上下文时都会调用子例程。子例程将新创建的上下文作为其唯一参数。
添加上下文释放回调。每次释放上下文时都会调用子例程。子例程将释放的上下文作为其唯一参数。这些回调不应该在上下文中调用释放。
添加子测试前的回调。每次要运行子测试时都会调用子例程。子例程将获取子测试名称、代码引用和任何参数。
此方法旨在在 END { ... }
代码块中调用。它将检查测试状态并设置 $?。它还会调用任何结束回调,并等待子进程/线程。
通知其他进程和线程存在一个待处理事件。$val
应该是一个唯一的值,其他线程/进程不会生成。
注意: 这也会使当前进程看到一个待处理事件。
如果无法确定,则返回 -1。
如果没有待处理事件,则返回 0。
如果有待处理事件,则返回 1。
在中止之前等待子进程和线程的时间。
获取 IPC 驱动程序列表。
将 IPC 驱动程序添加到列表中。最近添加的 IPC 驱动程序将在初始化期间成为全局驱动程序。如果在初始化发生后添加驱动程序,将生成警告。
"IPC driver $driver loaded too late to be used as the global ipc driver"
检查是否启用了轮询。
开启轮询。这将在每次创建上下文时从其他进程和线程中收集事件。
关闭 IPC 轮询。
获取/设置 no_wait。此选项用于在退出时关闭进程/线程等待。
获取退出回调。
添加退出回调。此回调将由 set_exit()
调用。
检查对象是否已完成。完成发生在对对象调用 ipc()
、stack()
或 format()
时。完成发生后,这些字段将被视为不可更改(此处未强制执行,由 Test2 强制执行)。
获取唯一真正的 IPC 实例。
关闭 IPC
检查 IPC 是否已禁用
获取唯一真正的集线器堆栈。
获取全局格式化器。默认情况下,这是 'Test2::Formatter::TAP'
包。这可以是任何实现 write()
方法的包。这也可以是实例化的对象。
检查是否已设置格式化器。
添加格式化器。最近添加的格式化器将在初始化期间成为全局格式化器。如果在初始化发生后添加格式化器,将生成警告
"Formatter $formatter loaded too late to be used as the global formatter"
这允许您提供 UUID 生成器。如果提供,UUID 将附加到所有事件、集线器和上下文。这对于存储、跟踪和链接这些对象很有用。
您提供的子程序应始终返回唯一的标识符。大多数东西都期望一个正确的 UUID 字符串,但是 Test2::API 中没有任何东西强制执行这一点。
子程序将接收正好 1 个参数,被标记为“context”、“hub”或“event”的类型。将来可能会标记其他内容,在这种情况下,将传入新的字符串。这些纯粹是信息性的,您可以(通常应该)忽略它们。
Test2 的源代码存储库可以在 http://github.com/Test-More/test-more/ 找到。
版权所有 2020 Chad Granum <[email protected]>。
本程序是自由软件;您可以在 Perl 本身相同的条款下重新发布和/或修改它。
参见 https://dev.perl5.cn/licenses/