blob: f36c19b00ebe2f5d4025458d66c8319054e34442 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.test.manager;
using fuchsia.url;
using fuchsia.test;
/// Options to run particular test suite.
/// Reserved for future
table LaunchOptions {
};
/// Error for `LaunchSuite` call.
enum LaunchError {
/// There were insufficient resources to perform the operation.
RESOURCE_UNAVAILABLE = 1;
/// Cannot resolve `test_url`.
INSTANCE_CANNOT_RESOLVE = 2;
/// Invalid argument(s) passed.
INVALID_ARGS = 3;
/// Some internal error occured. Something wrong with test manager setup. Check logs and report bug.
INTERNAL_ERROR = 4;
};
/// Controller for running suite. Suite would be destroyed when client end of this protocol is closed.
protocol SuiteController {
/// Destroys running suite.
Kill();
};
/// Launches a test that implements the `fuchsia.test.Suite` protocol
/// (either directly or via a runner adapter). The test must be a
/// v2 component test.
///
/// Designed to be used by run_test_suite to execute v2 tests.
///
/// If test suite doesn't expose `fuchsia.test.Suite` protocol, this
/// call will suceed but call on suite protocol will fail with `PEER_CLOSED` error.
[Discoverable]
protocol Harness {
LaunchSuite(fuchsia.url.Url test_url, LaunchOptions options,
request<fuchsia.test.Suite> suite, request<SuiteController> controller) -> ()
error LaunchError;
};