Event

NAME

Test::Async::Event ā€“ collection of standard events

SYNOPSIS

use Test::Async::Event;

test-bundle MyBundle {
    method foo(Str:D $message) is test-tool {
        self.send-test: Event::Ok, :$message
    }
}

DESCRIPTION

General information about Test::Async event management can be found in Test::Async::Manual.

Events are objects of classes derived from Event class. This module defines events used by the core. In general, all event classes can be conventionally split into the following groups:

  • informative ā€“ events signalling about some state changes. Like, for example, suite termination.

  • reporting - events bearing a message to be reported to user.

  • commands ā€“ those which tell the core to perform an action.

  • tests ā€“ outcomes of individual test tools.

EXPORTED CLASSES

Class Event

The base event class.

Attributes

  • $.origin ā€“ event originating object. Defaults to the current test suite object.

  • Int:D $.id ā€“ event id, a sequential number.

  • Instant:D $.time ā€“ the moment when event object was created.

Methods

  • Profile ā€“ returns a Map suitable for passing to an event constructor. The method collects all changed public attributes of an object.

  • gist, Str ā€“ stringify event object for reporting.

Class Event::Report

Is Event.

Base class for events carrying a text message of any kind.

Attributes

  • Str:D $.message ā€“ the event message

Class Event::Command

Is Event.

Base class of commanding events. Test::Async::Hub handles them specially.

Attributes

  • Capture:D $.args ā€“ command arguments

Class Event::Test

Is Event::Report

Base class for events reporting test outcomes.

Attributes

  • Str $.todo ā€“ message to use if test is marked as TODO.

  • Str $.flunks ā€“ message to use if test is marked as anticipated failure (see test-flunks in Test::Async::Base.

  • CallFrame:D $.caller, required ā€“ position in user code where the test was called.

  • @.child-messages ā€“ messages from child suites. Each entry should be a single line ending with newline.

  • @.comments ā€“ comments for the test. Normally expected to be reported with diag. Not special formatting requirements except for a recommendation for the last line not to end with a newline.

Class Event::StageTransition

Emitted each time suite stage is changed.

Attributes

  • $.from ā€“ the stage before transition

  • $.to ā€“ the stage after transition

Class Event::JobsAwaited

Emitted when all pending jobs are completed.

Class Event::Terminate

Is Event.

This is the only kind of event which Term::Async::Aggregator role cares about. It tells the event loop to pull any remaining events from the queue and dispatch them immediately. Then it fulfills event's promise.

Attributes

  • Promise::Vow $.completed, required ā€“ a promise vow to be kept when event loop finishes processing all remaining events.

Class Event::Telemetry

Is Event

Under development yet.

Class Event::Plan

Is Event::Report

Plan reporting event. Emitted when a suite gets to know the number of tests to be done.

Attributes

  • Bool $.skip ā€“ suite is planned for skiping.

  • UInt:D $.planned, required - number of tests planned.

Class Event::Diag

Is Event::Report.

Carries a diagnostics message. See diag in Test::Async::Base.

Class Event::Ok

Is Event::Test.

Test passed.

Class Event::NotOk

Is Event::Test.

Test flunked.

Class Event::Skip

Is Event::Test.

Test skipped.

Class Event::DoneTesting

Is Event::Report.

Emitted when testing is completely done.

Class Event::BailOut

Is Event::Report

Emitted when test suite is about to bail out.

Command event classes Event::Cmd::*

A bundle of events used internally for commands. See Test::Async::Hub and possibly other modules. The set of command events is not standartized and subject for changes.

SEE ALSO

Test::Async::Manual, Test::Async::Aggregator, Test::Async::Hub

AUTHOR

Vadim Belman [email protected]

Test::Async v0.0.16

Thread-safe testing framework

Authors

  • Vadim Belman

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • Test::Async
  • Test::Async::Aggregator
  • Test::Async::Base
  • Test::Async::Decl
  • Test::Async::Event
  • Test::Async::Hub
  • Test::Async::Job
  • Test::Async::JobMgr
  • Test::Async::Metamodel::BundleClassHOW
  • Test::Async::Metamodel::BundleHOW
  • Test::Async::Metamodel::HubHOW
  • Test::Async::Metamodel::ReporterHOW
  • Test::Async::Reporter
  • Test::Async::Reporter::TAP
  • Test::Async::Result
  • Test::Async::TestTool
  • Test::Async::Utils
  • Test::Async::When
  • Test::Async::X

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.