tracetools_test.case module

Module for a tracing-specific unittest.TestCase extension.

class tracetools_test.case.TraceTestCase(*args, session_name_prefix: str, events_ros: List[str], package: str, nodes: List[str], base_path: str | None = None, events_kernel: List[str] = [], additional_actions: List[launch.Action] | None = None, namespace: str | None = None)

Bases: TestCase

TestCase extension for tests on a trace.

Sets up tracing, traces given nodes, and provides the resulting events for an extending class to test on. It also does some basic checks on the resulting trace.

If the TRACETOOLS_TEST_DEBUG environment variable is set (and non-empty), the resulting trace will not be removed after the test.

The assert*() functions are specifically in mixedCase to match the unittest functions.

ENV_VAR_DEBUG = 'TRACETOOLS_TEST_DEBUG'
are_events_ordered(events: List[tracetools_read.DictEvent]) bool

Check that the events were generated in the expected order.

Parameters:

events – the events in the expected order

assertEventAfterTimestamp(event: tracetools_read.DictEvent, timestamp: int) None

Check that the event happens after the given timestamp.

Parameters:
  • event – the event to check

  • timestamp – the reference timestamp

assertEventOrder(events: List[tracetools_read.DictEvent]) None

Check that the events are ordered (from their timestamps).

Parameters:

events – the events in the expected order

assertEventsSet(event_names: List[str]) None

Compare given event names to trace events names as sets.

Parameters:

event_names – the list of event names to compare to (as a set)

assertFieldEquals(event: tracetools_read.DictEvent, field_name: str, value: Any, msg: str | None = None) None

Check the value of a field.

Parameters:
  • event – the event

  • field_name – the name of the field to check

  • value – to value to compare the field value to

  • msg – the message to display on failure

assertFieldType(event: tracetools_read.DictEvent, field_names: str | List[str], field_type: Type) None

Check that the type of a field value corresponds to the given type.

Parameters:
  • event – the event

  • field_names – the name(s) of field(s) to check

  • field_type – the expected field value type

assertMatchingField(initial_event: tracetools_read.DictEvent, field_name: str, matching_event_name: str | None = None, events: List[tracetools_read.DictEvent] | None = None, check_order: bool = True) None

Check that the value of a field for a given event has a matching event that follows.

Parameters:
  • initial_event – the first event, which is the origin of the common field value

  • field_name – the name of the common field to check

  • matching_event_name – the name of the event to check (or None to check all)

  • events – the events to check (or None to check all in trace)

  • check_order – whether to check that the matching event comes after the initial event

assertNumEventsEqual(events: List[tracetools_read.DictEvent], expected_number: int, msg: str | None = None) None

Check number of events.

Parameters:
  • events – the events to check

  • expected_number – the expected number of events

  • msg – the message to display on failure

assertNumEventsGreaterEqual(events: List[tracetools_read.DictEvent], min_expected_number: int, msg: str | None = None) None

Check that the number of events is greater of equal.

Parameters:
  • events – the events to check

  • min_expected_number – the minimum expected number of events

  • msg – the message to display on failure

assertProcessNamesExist(names: List[str]) None

Check that the processes with the given names exist.

Parameters:

names – the node names to look for

assertStringFieldNotEmpty(event: tracetools_read.DictEvent, string_field_name: str) None

Check that a string field is not empty.

Parameters:
  • event – the event which has a string field

  • string_field_name – the field name of the string field

assertValidHandle(event: tracetools_read.DictEvent, handle_field_names: str | List[str], *, can_be_null: bool = False) None

Check that the handle associated to a field name is valid.

Parameters:
  • event – the event which has a handle field

  • handle_field_names – the handle field name(s) to check

  • can_be_null – whether the handle can be null

assertValidPointer(event: tracetools_read.DictEvent, pointer_field_names: str | List[str], *, can_be_null: bool = False) None

Check that the pointer associated to a field name is valid.

Parameters:
  • event – the event which has a pointer field

  • pointer_field_names – the pointer field name(s) to check

  • can_be_null – whether the pointer can be null

assertValidQueueDepth(event: tracetools_read.DictEvent, queue_depth_field_name: str = 'queue_depth') None

Check that the queue depth value is valid.

Parameters:
  • event – the event with the queue depth field

  • queue_depth_field_name – the field name for queue depth

assertValidStaticArray(event: tracetools_read.DictEvent, array_field_names: str | List[str], array_type: Type | None = None, array_length: int | None = None) None

Check that the static array associated to a field name is valid.

Optionally check its length and the type of its elements.

Parameters:
  • event – the event which has a static array field

  • array_field_names – the static array field name(s) to check

  • array_type – the expected type of elements in the array, or None

  • array_length – the expected length of the array, or None

get_event_with_field_value_and_assert(field_name: str, field_values: Any, events: List[tracetools_read.DictEvent] | None = None, *, allow_multiple: bool = False) tracetools_read.DictEvent

Assert that an event with the given field:value exists and return it.

Can expect to get >=1 matching event, but always returns the first matching one.

Parameters:
  • field_name – the name of the field to check

  • field_values – the value(s) of the field to check

  • events – the events to check (or None to check all events)

  • allow_multiple – whether to allow multiple event matches

Returns:

the (first) event with the given field:value pair

get_events_with_field_not_value(field_name: str, field_values: Any, events: List[tracetools_read.DictEvent] | None = None) List[tracetools_read.DictEvent]

Get all events with the given field but not the value.

Parameters:
  • field_name – the name of the field to check

  • field_values – the value(s) of the field to check

  • events – the events to check (or None to check all events)

Returns:

the events with the given field:value pair

get_events_with_field_value(field_name: str, field_values: Any, events: List[tracetools_read.DictEvent] | None = None) List[tracetools_read.DictEvent]

Get all events with the given field:value.

Parameters:
  • field_name – the name of the field to check

  • field_values – the value(s) of the field to check

  • events – the events to check (or None to check all events)

Returns:

the events with the given field:value pair

get_events_with_name(event_name: str, events: List[tracetools_read.DictEvent] | None = None) List[tracetools_read.DictEvent]

Get all events with the given name.

Parameters:
  • event_name – the event name

  • events – the events to check (or None to check all events)

Returns:

the list of events with the given name

get_events_with_procname(procname: str, events: List[tracetools_read.DictEvent] | None = None) List[tracetools_read.DictEvent]

Get all events with the given procname.

Note: the given procname value will be truncated to the same max length as the procname field.

Parameters:
  • procname – the procname

  • events – the events to check (or None to check all events)

Returns:

the events with the given procname

get_field(event: tracetools_read.DictEvent, field_name: str) Any

Get field value; will fail test if not found.

Parameters:
  • event – the event from which to get the value

  • field_name – the field name

Returns:

the value

get_procname(event: tracetools_read.DictEvent) str

Get procname.

Parameters:

event – the event

Returns:

the procname of the event

get_tid(event: tracetools_read.DictEvent) str

Get TID.

Parameters:

event – the event

Returns:

the TID of the event

setUp()

Hook method for setting up the test fixture before exercising it.

tearDown()

Hook method for deconstructing the test fixture after testing it.