PROTOCOLS
DebugDataIterator
Defined in fuchsia.test.manager/test_manager.fidl
An iterator protocol over which a client may retrieve debug data information.
GetNext
Retrieve the next batch of debug data. This is a hanging get; if no data is immediately available, the call hangs until data is available. After all data has been returned, the call returns an empty vector.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
data |
vector<DebugData>
|
GetNextCompressed
Retrieve the next batch of debug data (compressed using zstd). This is a hanging get; if no data is immediately available, the call hangs until data is available. After all data has been returned, the call returns an empty vector.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
data |
vector<DebugData>
|
EarlyBootProfile
Defined in fuchsia.test.manager/test_manager.fidl
Protocol to manage Early boot profiles. This should be called by our clients after running all the tests.
RegisterWatcher
Register iterator for watching early boot profiles.
Request
| Name | Type |
|---|---|
iterator |
server_end:DebugDataIterator
|
SuiteController
Defined in fuchsia.test.manager/test_manager.fidl
Provides for control and monitoring of a running test suite started with SuiteRunner.RunSuite.
The server closes its end of the channel after the suite run has finished and all events have
been delivered via WatchEvents. If the client disconnects, the suite is terminated immediately
and all results discarded.
Kill
Immediately terminate the run. SuiteController will disconnect after all resources are released. This method will terminate tests even if they are in progress.
Request
<EMPTY>
Stop
Stop the suite run gracefully. SuiteController will disconnect after all resources are released and all the events in this controller are drained.
Request
<EMPTY>
WatchEvents
Returns events when they're available using a hanging get pattern. Returns an empty vector to indicate there will be no further events.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
payload |
SuiteController_WatchEvents_Result
|
SuiteRunner
Defined in fuchsia.test.manager/test_manager.fidl
Runs test suites.
Run
Run a test suite. A suite is a test component that implements fuchsia.test.Suite.
Request
| Name | Type |
|---|---|
test_suite_url |
fuchsia.url/Url
|
options |
RunSuiteOptions
|
controller |
server_end:SuiteController
|
TestCaseEnumerator
Defined in fuchsia.test.manager/test_manager.fidl
Enumerates cases in test suites, which implement the fuchsia.test.Suite protocol.
Enumerate
Creates an iterator for test cases.
Request
| Name | Type |
|---|---|
test_suite_url |
fuchsia.url/Url
|
options |
EnumerateTestCasesOptions
|
iterator |
server_end:TestCaseIterator
|
Response
| Name | Type |
|---|---|
payload |
TestCaseEnumerator_Enumerate_Result
|
TestCaseIterator
Defined in fuchsia.test.manager/test_manager.fidl
Iterator for listing available test cases.
GetNext
Returns the next batch of test cases. Returns the empty vector to indicate that the iteration is complete.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
test_cases |
vector<TestCase>:1024
|
STRUCTS
DirectoryAndToken resource
Defined in fuchsia.test.manager/test_manager.fidl
A handle to a directory and a token used to indicate when the client has completed inspecting the directory. The server end will retain all resources, such as subdirectories and files, within |directory| while |release_fence| remains open. |release_fence| is used instead of observing the |directory| channel directly as it is possible to clone and open new channels to the same directory.
| Field | Type | Description | Default |
|---|---|---|---|
directory |
client_end:fuchsia.io/Directory
|
|
No default |
token |
handle<eventpair>
|
An eventpair handle used to control the retention of the directory. When this handle is closed, the directory is no longer retained. |
No default |
SuiteController_WatchEvents_Response resource
Defined in fuchsia.test.manager/test_manager.fidl
| Field | Type | Description | Default |
|---|---|---|---|
events |
vector<Event>:1024
|
No default |
TestCaseEnumerator_Enumerate_Response
Defined in fuchsia.test.manager/test_manager.fidl
<EMPTY>
ENUMS
LaunchError flexible
Type: uint32
Defined in fuchsia.test.manager/test_manager.fidl
Error for LaunchSuite call.
| Name | Value | Description |
|---|---|---|
RESOURCE_UNAVAILABLE |
1 |
There were insufficient resources to perform the operation. |
INSTANCE_CANNOT_RESOLVE |
2 |
Cannot resolve |
INVALID_ARGS |
3 |
Invalid argument(s) passed. |
FAILED_TO_CONNECT_TO_TEST_SUITE |
4 |
Failed to connect to the |
CASE_ENUMERATION |
5 |
Failed to enumerate tests. |
INTERNAL_ERROR |
6 |
Some internal error occurred. Something wrong with test manager setup. Check logs and report bug. |
NO_MATCHING_CASES |
7 |
No test cases matched the specified test filters. This error is only returned when a test filter is specified. In the case of a test suite with no test cases, the suite will pass. |
INVALID_MANIFEST |
8 |
Test manifest is invalid. |
LogsIteratorType flexible
Type: uint32
Defined in fuchsia.test.manager/test_manager.fidl
Enumeration of alternative log iteration mechanisms.
| Name | Value | Description |
|---|---|---|
BATCH |
1 |
Indicates use of |
SOCKET |
2 |
Indicates the use of a socket as described in |
SuiteResult flexible
Type: uint32
Defined in fuchsia.test.manager/test_manager.fidl
Represents the result of a suite run.
| Name | Value | Description |
|---|---|---|
FINISHED |
1 |
The suite finished normally, with all test case results being either |
FAILED |
2 |
The suite finished normally, with some test case results being neither |
DID_NOT_FINISH |
3 |
Suite implementation crashed, did not send |
TIMED_OUT |
4 |
The overall suite run timed out . |
STOPPED |
5 |
The suite run was stopped. |
INTERNAL_ERROR |
6 |
TestCaseResult flexible
Type: uint32
Defined in fuchsia.test.manager/test_manager.fidl
Represent the result of a test case run.
| Name | Value | Description |
|---|---|---|
SKIPPED |
1 |
Test case was skipped. |
PASSED |
2 |
The test case passed. |
FAILED |
3 |
Test case failed. |
TIMED_OUT |
4 |
Test case timed out. |
ERROR |
5 |
Suite implementation did not return a result for the test case. |
TABLES
CustomArtifact resource
Defined in fuchsia.test.manager/test_manager.fidl
Describes a directory containing 'custom' (unclassified) artifacts produced by a test.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
component_moniker |
string:4096
|
The moniker of the component that produced the directory, relative to the root of the test realm. |
2 |
directory_and_token |
DirectoryAndToken
|
A directory containing the artifacts. |
DebugData resource
Defined in fuchsia.test.manager/test_manager.fidl
Describes available debug data.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
name |
string:512
|
Name of the file. Must be unique per |
2 |
socket |
handle<socket>
|
Socket over which the file may be accessed. |
EnumerateTestCasesOptions resource
Defined in fuchsia.test.manager/test_manager.fidl
Options specifying how test cases should be enumerated.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
realm_options |
RealmOptions
|
Specifies the realm in which to enumerate test cases. If this field is not supplied, the test cases will be enumerated in a hermetic realm inside the test manager. This option is used by clients that require non-hermetic realms or test realms with custom runners. |
Event resource
Defined in fuchsia.test.manager/test_manager.fidl
An event delivered via SuiteController.WatchEvents.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
timestamp |
zx/Time
|
The time at which the event occurred. |
2 |
details |
EventDetails
|
The details of the event. |
RealmOptions resource
Defined in fuchsia.test.manager/test_manager.fidl
Options specifying the realm in which a test suite should be run. These options are used by clients that require non-hermetic realms or test realms with custom runners. See [https://fuchsia.dev/fuchsia-src/development/testing/components/create_test_realm] and [https://fuchsia.dev/fuchsia-src/development/testing/components/test_runner_framework#non-hermetic_tests] for details.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
realm |
client_end:fuchsia.component/Realm
|
The realm which contains the collection in which to launch the test. This field is required. |
2 |
offers |
vector<fuchsia.component.decl/Offer>:1024
|
All offers from the realm to the test collection. This field is required. |
3 |
test_collection |
string:255
|
The test collection in which to launch the test. This field is required. |
RunSuiteOptions resource
Defined in fuchsia.test.manager/test_manager.fidl
Options specifying how a test suite should be run.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
realm_options |
RealmOptions
|
Specifies the realm in which to run the test suite. If this field is not supplied, the test will run in a hermetic realm inside the test manager. This option is used by clients that require non-hermetic realms or test realms with custom runners. |
2 |
run_disabled_tests |
bool
|
If set to true, test cases that have been disabled by the test author will nonetheless be executed. This value is false by default. |
3 |
max_concurrent_test_case_runs |
uint16
|
Defines the maximum number of test cases to run concurrently. If unspecified, the test suite component decides this value. |
4 |
arguments |
vector<string:16384>:4095
|
Command-line arguments to pass to the test. Test runners decide how to pass these arguments to tests. This value is an empty vector (no arguments) by default. |
5 |
timeout |
zx/Duration
|
Timeout for the entire suite run. If unspecified, there is no timeout, and the suite run may hang indefinitely. |
6 |
test_case_filters |
vector<string:4096>:1024
|
Test case filters as glob patterns [https://en.wikipedia.org/wiki/Glob_(programming)]. Negative filters may be specified by prepending '-'. This value is an empty vector (no filters) by default. A given test case is run if both of the following are true:
For example, given that a suite has the test cases
|
7 |
logs_iterator_type |
LogsIteratorType
|
Specifies what kind of iterator the client will use for retrieving logs. This value is
|
8 |
log_interest |
vector<fuchsia.diagnostics/LogInterestSelector>:64
|
Configures the minimum severity to apply when filtering logs from the test suite component. |
9 |
accumulate_debug_data |
bool
|
If set to true, debug data collected for this run will be accumulated in test manager's tmp folder with debug data collected in previous runs with this flag set true. Defaults to false. This option is used when many tests are run in a batch, and delivering the accumulated data is more performant than delivering the debug data one test at a time. |
10 |
no_exception_channel |
bool
|
If true, indicates the test creates an exception channel. In this case, the test manager will refrain from creating its own exception channels to avoid conflicts. Default value is false. Added: 26
|
11 |
break_on_failure |
bool
|
If true, the test runner should halt (if supported) the test suite when a failure is encountered such that a debugger may attach to the process in the future. Test runners may safely ignore this if they do not support stopping running test suites. Added: 28
|
SuiteArtifactGeneratedEventDetails resource
Defined in fuchsia.test.manager/test_manager.fidl
Details for suite_artifact_generated events.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
artifact |
Artifact
|
Describes the artifact. This field will always be provided. |
SuiteStartedEventDetails
Defined in fuchsia.test.manager/test_manager.fidl
Details for suite_started events.
| Ordinal | Field | Type | Description |
|---|
SuiteStoppedEventDetails
Defined in fuchsia.test.manager/test_manager.fidl
Details for suite_stopped events.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
result |
SuiteResult
|
The suite result. This field will always be provided. |
TestCase
Defined in fuchsia.test.manager/test_manager.fidl
Description of an enumerated test case.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
name |
TestCaseName
|
Name of the test case. |
TestCaseArtifactGeneratedEventDetails resource
Defined in fuchsia.test.manager/test_manager.fidl
Details for test_case_artifact_generated events.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
test_case_id |
TestCaseId
|
The test case to which this event pertains. This event will be preceeded by a 'test_case found' event with a matching id. This field will always be provided. |
2 |
artifact |
Artifact
|
Describes the artifact. This field will always be provided. |
TestCaseFinishedEventDetails
Defined in fuchsia.test.manager/test_manager.fidl
Details for test_case_finished events.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
test_case_id |
TestCaseId
|
The test case to which this event pertains. This event will be preceeded by a 'test_case found' event with a matching id. This field will always be provided. |
TestCaseFoundEventDetails
Defined in fuchsia.test.manager/test_manager.fidl
Details for test_case_found events.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
test_case_name |
TestCaseName
|
Name of the test case that was found. This field will always be provided. |
2 |
test_case_id |
TestCaseId
|
Identifies this test case in subsequent events. This field will always be provided
and is unique for a given |
TestCaseStartedEventDetails
Defined in fuchsia.test.manager/test_manager.fidl
Details for test_case_started events.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
test_case_id |
TestCaseId
|
The test case to which this event pertains. This event will be preceeded by a 'test_case found' event with a matching id. This field will always be provided. |
TestCaseStoppedEventDetails
Defined in fuchsia.test.manager/test_manager.fidl
Details for test_case_stopped events.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
test_case_id |
TestCaseId
|
The test case to which this event pertains. This event will be preceeded by a 'test_case found' event with a matching id. This field will always be provided. |
2 |
result |
TestCaseResult
|
The test case result. This field will always be provided. |
UNIONS
Artifact flexible resource
Defined in fuchsia.test.manager/test_manager.fidl
Describes one or more artifacts.
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
stdout |
handle<socket>
|
The artifact is the 'stdout' stream of the suite or test case. The artifact is delivered via a socket, the consumer end of which is provided here. |
2 |
stderr |
handle<socket>
|
The artifact is the 'stderr' stream of the suite or test case. The artifact is delivered via a socket, the consumer end of which is provided here. |
3 |
log |
Syslog
|
The artifact is the syslog of the suite or test case. The artifact is delivered using a batch iterator or socket. |
4 |
custom |
CustomArtifact
|
The artifacts are one or more files in a directory and may be read using |
5 |
debug_data |
client_end:DebugDataIterator
|
The artifacts are debug data delivered using a |
EventDetails flexible resource
Defined in fuchsia.test.manager/test_manager.fidl
Details of an event delivered via SuiteController.WatchEvents.
A suite_started event always precedes any events relating to test cases, and a
suite_stopped event always follows any test case events. suite_artifact_generated may
occur at any point, including before suite_started and after suite_stopped.
A test_case_found event is produced for all test cases found in the suite.
If a particular test case run is enabled (based on RunSuiteOptions.test_case_filters and
RunSuiteOptions.run_disabled_tests), the following sequence is produced, regardless of whether
the test case is actually run, the run completes or whether or not it succeeds:
test_case_foundtest_case_startedtest_case_stoppedtest_case_finished
test_case_artifact_generated events for the test case may occur at any point after the
test_case_found event and before test_case_finished event for that test case. Note that
test case events for multiple events may be interleaved.
If a test case run is not enabled, only the test_case_found event will be produced for
that test case.
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
suite_started |
SuiteStartedEventDetails
|
Suite started execution. |
2 |
test_case_found |
TestCaseFoundEventDetails
|
A test_case was found. This is always the first event for a given test case. |
3 |
test_case_started |
TestCaseStartedEventDetails
|
A test case started execution. Only one |
4 |
test_case_artifact_generated |
TestCaseArtifactGeneratedEventDetails
|
Artifact from a test case. Note that |
5 |
test_case_stopped |
TestCaseStoppedEventDetails
|
A test case stopped executing. This event includes the resulting |
6 |
test_case_finished |
TestCaseFinishedEventDetails
|
A test case has finished and all artifact events have been dispatched to the client. This is always the last event for a given test case. |
7 |
suite_artifact_generated |
SuiteArtifactGeneratedEventDetails
|
Artifact pertaining to the entire suite. |
8 |
suite_stopped |
SuiteStoppedEventDetails
|
Suite run stopped executing. This event includes the resulting |
LogsIterator flexible resource
Defined in fuchsia.test.manager/test_manager.fidl
Holds the server end of an iterator over the isolated logs of a test.
| Ordinal | Variant | Type | Description |
|---|---|---|---|
2 |
batch |
server_end:fuchsia.diagnostics/BatchIterator
|
Server end of the iterator, when this protocol is used by Fuchsia clients. |
3 |
stream |
handle<socket>
|
Server end of the iterator, when this protocol is used by host-side clients. This uses the protocol specified in fuchsia.diagnostics.host.ArchiveReader. |
SuiteController_WatchEvents_Result strict resource
Defined in fuchsia.test.manager/test_manager.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
SuiteController_WatchEvents_Response
|
|
2 |
err |
LaunchError
|
Syslog flexible resource
Defined in fuchsia.test.manager/test_manager.fidl
Delivery method for syslog.
| Ordinal | Variant | Type | Description |
|---|---|---|---|
2 |
batch |
client_end:fuchsia.diagnostics/BatchIterator
|
Client end of the iterator used by Fuchsia clients. |
3 |
stream |
handle<socket>
|
Consumer end of the socket used by host-side clients. |
TestCaseEnumerator_Enumerate_Result strict
Defined in fuchsia.test.manager/test_manager.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
TestCaseEnumerator_Enumerate_Response
|
|
2 |
err |
LaunchError
|
|
3 |
framework_err |
internal
|
CONSTANTS
| Name | Value | Type | Description |
|---|---|---|---|
| MAX_ARGUMENTS |
fuchsia.io/MAX_PATH_LENGTH
|
uint64 |
Added: 20
|
| MAX_ARGUMENT_LENGTH |
16384
|
uint64 |
Added: 28
|
| MAX_DEBUG_DATAS_PER_GET |
1024
|
uint64 |
Added: 20
|
| MAX_EVENTS_PER_WATCH |
1024
|
uint64 |
Added: 20
|
| MAX_FILTERS |
1024
|
uint64 |
Added: 20
|
| MAX_FILTER_LENGTH |
fuchsia.component/MAX_MONIKER_LENGTH
|
uint64 |
Added: 20
|
| MAX_OFFERS |
1024
|
uint64 |
Added: 20
|
| MAX_TEST_CASES_PER_GET |
1024
|
uint64 |
Added: 20
|
| MAX_TEST_COLLECTION_NAME_LENGTH |
fuchsia.io/MAX_NAME_LENGTH
|
uint64 |
Added: 20
|
ALIASES
| Name | Value | Description |
|---|---|---|
| TestCaseId |
uint32 |
Test case identifier. Unique in a suite run. |
| TestCaseName |
string[fuchsia.test/MAX_TEST_NAME] |
Human-readable name for a test case. |