| // Copyright 2018 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.hardware.test; |
| |
| using zx; |
| |
| struct TestReport { |
| uint32 n_tests; |
| uint32 n_success; |
| uint32 n_failed; |
| }; |
| |
| [BanjoLayout = "ddk-callback"] |
| protocol TestFunc { |
| Callback() -> (zx.status s, TestReport report); |
| }; |
| |
| [BanjoLayout = "ddk-protocol"] |
| protocol Test { |
| /// Sets test output socket. |
| SetOutputSocket(zx.handle:SOCKET @handle) -> (); |
| |
| /// Gets test output socket. |
| GetOutputSocket() -> (zx.handle:SOCKET h); |
| |
| /// Gets test channel. This has per-test meaning. |
| GetChannel() -> (zx.handle:CHANNEL h); |
| |
| /// Sets test function. |
| SetTestFunc(TestFunc func) -> (); |
| |
| /// Run tests, calls the function set in |SetTestFunc|. |
| RunTests() -> (zx.status s, TestReport report); |
| |
| /// Calls `device_remove()`. |
| Destroy() -> (); |
| }; |