<br />

Added: 16

## **PROTOCOLS**

## DebugDataIterator

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=467)*

An iterator protocol over which a client may retrieve debug data information.

<br />

### 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.
Removed: 31

#### Request

\<EMPTY\>

#### Response

| Name | Type |
|---|---|
| `data` | `vector<https://fuchsia.dev/reference/fidl/fuchsia.test.manager#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.
Added: 31

#### Request

\<EMPTY\>

#### Response

| Name | Type |
|---|---|
| `data` | `vector<https://fuchsia.dev/reference/fidl/fuchsia.test.manager#DebugData>` |

## EarlyBootProfile

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=538)*

Protocol to manage Early boot profiles. This should be called by our clients
after running all the tests.

<br />

### RegisterWatcher

Register iterator for watching early boot profiles.

#### Request

| Name | Type |
|---|---|
| `iterator` | `server_end:https://fuchsia.dev/reference/fidl/fuchsia.test.manager#DebugDataIterator` |

## SuiteController

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=215)*

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.

<br />

### 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.
Added: 20

#### Request

\<EMPTY\>

#### Response

| Name | Type |
|---|---|
| `payload` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#SuiteController_WatchEvents_Result` |

## SuiteRunner

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=93)*

Runs test suites.
Added: 20

<br />

### Run

Run a test suite. A suite is a test component that implements `fuchsia.test.Suite`.

#### Request

| Name | Type |
|---|---|
| `test_suite_url` | `https://fuchsia.dev/reference/fuchsia.url//https://fuchsia.dev/reference/fuchsia.url#Url` |
| `options` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#RunSuiteOptions` |
| `controller` | `server_end:https://fuchsia.dev/reference/fidl/fuchsia.test.manager#SuiteController` |

## TestCaseEnumerator

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=48)*

Enumerates cases in test suites, which implement the `fuchsia.test.Suite` protocol.
Added: 20

<br />

### Enumerate

Creates an iterator for test cases.

#### Request

| Name | Type |
|---|---|
| `test_suite_url` | `https://fuchsia.dev/reference/fuchsia.url//https://fuchsia.dev/reference/fuchsia.url#Url` |
| `options` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#EnumerateTestCasesOptions` |
| `iterator` | `server_end:https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseIterator` |

#### Response

| Name | Type |
|---|---|
| `payload` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseEnumerator_Enumerate_Result` |

## TestCaseIterator

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=73)*

Iterator for listing available test cases.
Added: 20

<br />

### 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<https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCase>:1024` |

## **STRUCTS**

### DirectoryAndToken [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=456)*

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.

<br />

| Field | Type | Description | Default |
|---|---|---|---|
| `directory` | `client_end:https://fuchsia.dev/reference/fuchsia.io//https://fuchsia.dev/reference/fuchsia.io#Directory` | `Directory` channel providing access to the directory. This channel should not be used after `release_fence` is closed. | 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](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=228)*

| Field | Type | Description | Default |
|---|---|---|---|
| `events` | `vector<https://fuchsia.dev/reference/fidl/fuchsia.test.manager#Event>:1024` |   | No default |

### TestCaseEnumerator_Enumerate_Response

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=59)*

\<EMPTY\>

## **ENUMS**

### LaunchError [flexible](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible)

Type: `uint32`

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=495)*

Error for `LaunchSuite` call.

<br />

| Name | Value | Description |
|---|---|---|
| ### RESOURCE_UNAVAILABLE | `1` | There were insufficient resources to perform the operation. |
| ### INSTANCE_CANNOT_RESOLVE | `2` | Cannot resolve `test_suite_url`. |
| ### INVALID_ARGS | `3` | Invalid argument(s) passed. |
| ### FAILED_TO_CONNECT_TO_TEST_SUITE | `4` | Failed to connect to the `fuchsia.test.TestSuite` that the test should expose. |
| ### 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](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible)

Type: `uint32`

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=197)*

Enumeration of alternative log iteration mechanisms.
Added: 20

<br />

| Name | Value | Description |
|---|---|---|
| ### BATCH | `1` | Indicates use of `fuchsia.diagnostics.BatchIterator`. This iterator type employs VMOs, which yields the best performance locally but cannot be used remotely (e.g. from the host). When this type is selected, artifacts of type `log` will have values that use the `batch` variant of the `Syslog` union. |
| ### SOCKET | `2` | Indicates the use of a socket as described in `fuchsia.diagnostics.host.ArchiveAccessor`. can be used remote (e.g. from the host). When this type is selected. artifacts of type `log` will have values that use the `stream` variant of the `Syslog` union. |

### SuiteResult [flexible](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible)

Type: `uint32`

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=389)*

Represents the result of a suite run.
Added: 20

<br />

| Name | Value | Description |
|---|---|---|
| ### FINISHED | `1` | The suite finished normally, with all test case results being either `SKIPPED` or `PASSED`. |
| ### FAILED | `2` | The suite finished normally, with some test case results being neither `SKIPPED` nor `PASSED`. |
| ### DID_NOT_FINISH | `3` | Suite implementation crashed, did not send `Finish` event, or did not report test case result for one or more test cases. |
| ### TIMED_OUT | `4` | The overall suite run timed out . |
| ### STOPPED | `5` | The suite run was stopped. |
| ### INTERNAL_ERROR | `6` |   |

### TestCaseResult [flexible](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible)

Type: `uint32`

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=370)*

Represent the result of a test case run.
Added: 20

<br />

| 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](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=442)*

Describes a directory containing 'custom' (unclassified) artifacts produced by a test.

<br />

| 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` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#DirectoryAndToken` | A directory containing the artifacts. |

### DebugData [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=486)*

Describes available debug data.

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `name` | `string:512` | Name of the file. Must be unique per `DebugDataIterator`. |
| ### 2 | `socket` | `handle<socket>` | Socket over which the file may be accessed. |

### EnumerateTestCasesOptions [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=64)*

Options specifying how test cases should be enumerated.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `realm_options` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#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](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=235)*

An event delivered via `SuiteController.WatchEvents`.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `timestamp` | `https://fuchsia.dev/reference/zx//https://fuchsia.dev/reference/zx#Time` | The time at which the event occurred. |
| ### 2 | `details` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#EventDetails` | The details of the event. |

### RealmOptions [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=184)*

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.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `realm` | `client_end:https://fuchsia.dev/reference/fuchsia.component//https://fuchsia.dev/reference/fuchsia.component#Realm` | The realm which contains the collection in which to launch the test. This field is required. |
| ### 2 | `offers` | `vector<https://fuchsia.dev/reference/fuchsia.component.decl//https://fuchsia.dev/reference/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](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=110)*

Options specifying how a test suite should be run.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `realm_options` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#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` | `https://fuchsia.dev/reference/zx//https://fuchsia.dev/reference/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: - No positive filters are specfied, or the test case matches one of the positive filters. - The test case does not match any specified negative filter. For example, given that a suite has the test cases `Foo.Test1`, `Foo.Test2`, `Bar.Test1`, and `Bar.Test2`: - The filters `["Foo.*"]` will execute `Foo.Test1` and `Foo.Test2`. - The filters `["-Foo.*"]` will execute `Bar.Test1` and `Bar.Test2`. - The filters `["Foo.*", "-*.Test1"]` will execute `Foo.Test2`. |
| ### 7 | `logs_iterator_type` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#LogsIteratorType` | Specifies what kind of iterator the client will use for retrieving logs. This value is `BATCH` by default. |
| ### 8 | `log_interest` | `vector<https://fuchsia.dev/reference/fuchsia.diagnostics//https://fuchsia.dev/reference/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](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=353)*

Details for `suite_artifact_generated` events.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `artifact` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#Artifact` | Describes the artifact. This field will always be provided. |

### SuiteStartedEventDetails

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=300)*

Details for `suite_started` events.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|

### SuiteStoppedEventDetails

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=360)*

Details for `suite_stopped` events.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `result` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#SuiteResult` | The suite result. This field will always be provided. |

### TestCase

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=82)*

Description of an enumerated test case.

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `name` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseName` | Name of the test case. |

### TestCaseArtifactGeneratedEventDetails [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=323)*

Details for `test_case_artifact_generated` events.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `test_case_id` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#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` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#Artifact` | Describes the artifact. This field will always be provided. |

### TestCaseFinishedEventDetails

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=345)*

Details for `test_case_finished` events.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `test_case_id` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#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](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=304)*

Details for `test_case_found` events.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `test_case_name` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseName` | Name of the test case that was found. This field will always be provided. |
| ### 2 | `test_case_id` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseId` | Identifies this test case in subsequent events. This field will always be provided and is unique for a given `SuiteController`. |

### TestCaseStartedEventDetails

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=315)*

Details for `test_case_started` events.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `test_case_id` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#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](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=334)*

Details for `test_case_stopped` events.
Added: 20

<br />

| Ordinal | Field | Type | Description |
|---|---|---|---|
| ### 1 | `test_case_id` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#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` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseResult` | The test case result. This field will always be provided. |

## **UNIONS**

### Artifact [flexible](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible) [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=412)*

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` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#Syslog` | The artifact is the syslog of the suite or test case. The artifact is delivered using a batch iterator or socket. |
| ### 4 | `custom` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#CustomArtifact` | The artifacts are one or more files in a directory and may be read using `fuchsia.io`. |
| ### 5 | `debug_data` | `client_end:https://fuchsia.dev/reference/fidl/fuchsia.test.manager#DebugDataIterator` | The artifacts are debug data delivered using a `DebugDataIterator` channel. |

<br />

### EventDetails [flexible](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible) [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=266)*

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_found`
- `test_case_started`
- `test_case_stopped`
- `test_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.
Added: 20

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 1 | `suite_started` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#SuiteStartedEventDetails` | Suite started execution. `suite_artifact_generated` events may occur before this event. |
| ### 2 | `test_case_found` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseFoundEventDetails` | A test_case was found. This is always the first event for a given test case. |
| ### 3 | `test_case_started` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseStartedEventDetails` | A test case started execution. Only one `test_case_started` event is produced for a given test case, and it always precedes the `test_case_stopped` event for that test case. `test_case_artifact_generated` events for the test case may occur before this event. |
| ### 4 | `test_case_artifact_generated` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseArtifactGeneratedEventDetails` | Artifact from a test case. Note that `test_case_artifact_generated` events for a given test case may occur before `test_case_started` and after `test_case_stopped`. |
| ### 5 | `test_case_stopped` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseStoppedEventDetails` | A test case stopped executing. This event includes the resulting `TestCaseResult` of the test case. `test_case_artifact_generated` events for the case may occur after this event. |
| ### 6 | `test_case_finished` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#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` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#SuiteArtifactGeneratedEventDetails` | Artifact pertaining to the entire suite. |
| ### 8 | `suite_stopped` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#SuiteStoppedEventDetails` | Suite run stopped executing. This event includes the resulting `SuiteResult` of the suite. `suite_artifact_generated` events may occur after this event. |

<br />

### LogsIterator [flexible](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible) [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=526)*

Holds the server end of an iterator over the isolated logs of a test.

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 2 | `batch` | `server_end:https://fuchsia.dev/reference/fuchsia.diagnostics//https://fuchsia.dev/reference/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. |

<br />

### SuiteController_WatchEvents_Result [strict](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible) [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=228)*

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 1 | `response` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#SuiteController_WatchEvents_Response` |   |
| ### 2 | `err` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#LaunchError` |   |

<br />

### Syslog [flexible](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible) [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=433)*

Delivery method for syslog.

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 2 | `batch` | `client_end:https://fuchsia.dev/reference/fuchsia.diagnostics//https://fuchsia.dev/reference/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. |

<br />

### TestCaseEnumerator_Enumerate_Result [strict](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible)

*Defined in [fuchsia.test.manager/test_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=59)*

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 1 | `response` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#TestCaseEnumerator_Enumerate_Response` |   |
| ### 2 | `err` | `https://fuchsia.dev/reference/fidl/fuchsia.test.manager#LaunchError` |   |
| ### 3 | `framework_err` | `internal` |   |

<br />

## **CONSTANTS**

| Name | Value | Type | Description |
|---|---|---|---|
| [MAX_ARGUMENTS](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=25) | `https://fuchsia.dev/reference/fuchsia.io//https://fuchsia.dev/reference/fuchsia.io#MAX_PATH_LENGTH` | `uint64` | Added: 20 |
| [MAX_ARGUMENT_LENGTH](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=22) | `16384` | `uint64` | Added: 28 |
| [MAX_DEBUG_DATAS_PER_GET](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=43) | `1024` | `uint64` | Added: 20 |
| [MAX_EVENTS_PER_WATCH](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=40) | `1024` | `uint64` | Added: 20 |
| [MAX_FILTERS](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=31) | `1024` | `uint64` | Added: 20 |
| [MAX_FILTER_LENGTH](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=28) | `https://fuchsia.dev/reference/fuchsia.component//https://fuchsia.dev/reference/fuchsia.component#MAX_MONIKER_LENGTH` | `uint64` | Added: 20 |
| [MAX_OFFERS](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=34) | `1024` | `uint64` | Added: 20 |
| [MAX_TEST_CASES_PER_GET](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=16) | `1024` | `uint64` | Added: 20 |
| [MAX_TEST_COLLECTION_NAME_LENGTH](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=37) | `https://fuchsia.dev/reference/fuchsia.io//https://fuchsia.dev/reference/fuchsia.io#MAX_NAME_LENGTH` | `uint64` | Added: 20 |

## **ALIASES**

| Name | Value | Description |
|---|---|---|
| [TestCaseId](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=366) | `uint32` | Test case identifier. Unique in a suite run. |
| [TestCaseName](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.test.manager/test_manager.fidl;l=88) | `string`\[`https://fuchsia.dev/reference/fuchsia.test//https://fuchsia.dev/reference/fuchsia.test#MAX_TEST_NAME`\] | Human-readable name for a test case. |