[FTF] FIDL changes for supporting disabled tests
Changes to fuchsia.test.{TestCase, RunOptions}.
Bug: 45852
Change-Id: I6d75450adb6fc96f430e8072cea029880d974f46
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/404795
Reviewed-by: Ankur Mittal <anmittal@google.com>
Reviewed-by: Matthew Boetger <boetger@google.com>
Reviewed-by: Shai Barack <shayba@google.com>
Commit-Queue: Konstantin Pozin <kpozin@google.com>
API-Review: Shai Barack <shayba@google.com>
Testability-Review: Shai Barack <shayba@google.com>
diff --git a/examples/tests/rust/echo_test_client.rs b/examples/tests/rust/echo_test_client.rs
index 1370321..d413573 100644
--- a/examples/tests/rust/echo_test_client.rs
+++ b/examples/tests/rust/echo_test_client.rs
@@ -50,8 +50,10 @@
let mut stream = iterator.into_stream()?;
fasync::spawn(
async move {
+ // TODO(fxb/45852): Support disabled tests.
let mut cases_iter =
- vec![ftest::Case { name: Some("EchoTest".to_string()) }].into_iter();
+ vec![ftest::Case { name: Some("EchoTest".to_string()), enabled: None }]
+ .into_iter();
while let Some(ftest::CaseIteratorRequest::GetNext { responder }) =
stream.try_next().await?
{
diff --git a/sdk/fidl/fuchsia.test/suite.fidl b/sdk/fidl/fuchsia.test/suite.fidl
index 4f08188..2831353 100644
--- a/sdk/fidl/fuchsia.test/suite.fidl
+++ b/sdk/fidl/fuchsia.test/suite.fidl
@@ -17,6 +17,9 @@
/// Uniquely identifies a test case within a test suite.
/// This member is required.
1: Name name;
+ /// Whether the test is enabled or disabled (marked ignored/skipped) by the developer.
+ /// If the member is omitted, the test is assumed to be enabled.
+ 2: bool enabled;
};
/// Represents success, failure, or other possible conditions following a test invocation.
@@ -50,6 +53,9 @@
/// Optional additional instructions for running test cases.
table RunOptions {
+ /// If set to true, test cases that have been disabled by the test author will nonetheless be
+ /// executed.
+ 1: bool include_disabled_tests;
};
/// Result of invoking a single test case.
diff --git a/src/developer/ffx/plugins/test/src/lib.rs b/src/developer/ffx/plugins/test/src/lib.rs
index de76967..7f525c6 100644
--- a/src/developer/ffx/plugins/test/src/lib.rs
+++ b/src/developer/ffx/plugins/test/src/lib.rs
@@ -287,7 +287,7 @@
}
fn spawn_fake_iterator_server(values: Vec<String>, mut stream: CaseIteratorRequestStream) {
- let mut iter = values.into_iter().map(|name| Case { name: Some(name) });
+ let mut iter = values.into_iter().map(|name| Case { name: Some(name), enabled: None });
fuchsia_async::spawn(async move {
while let Ok(Some(CaseIteratorRequest::GetNext { responder })) = stream.try_next().await
{
diff --git a/src/lib/test_executor/rust/src/lib.rs b/src/lib/test_executor/rust/src/lib.rs
index 827c00c..bd0ccc9 100644
--- a/src/lib/test_executor/rust/src/lib.rs
+++ b/src/lib/test_executor/rust/src/lib.rs
@@ -289,7 +289,10 @@
.context("creating request stream")?;
suite.run(
&mut invocations.into_iter().map(|i| i.into()),
- fidl_fuchsia_test::RunOptions {},
+ fidl_fuchsia_test::RunOptions {
+ // TODO(fxb/45852): Support disabled tests.
+ include_disabled_tests: None,
+ },
run_listener_client,
)?;
diff --git a/src/sys/test_runners/rust/src/test_server.rs b/src/sys/test_runners/rust/src/test_server.rs
index b00fe62..8d932d2 100644
--- a/src/sys/test_runners/rust/src/test_server.rs
+++ b/src/sys/test_runners/rust/src/test_server.rs
@@ -462,8 +462,13 @@
.expect("Failed to run test suite")
});
+ // TODO(fxb/45852): Support disabled tests.
suite_proxy
- .run(&mut invocations.into_iter().map(|i| i.into()), RunOptions {}, run_listener_client)
+ .run(
+ &mut invocations.into_iter().map(|i| i.into()),
+ RunOptions::empty(),
+ run_listener_client,
+ )
.context("cannot call run")?;
collect_listener_event(run_listener).await.context("Failed to collect results")
diff --git a/src/sys/test_runners/src/elf/server.rs b/src/sys/test_runners/src/elf/server.rs
index 0c33c19..7386dad 100644
--- a/src/sys/test_runners/src/elf/server.rs
+++ b/src/sys/test_runners/src/elf/server.rs
@@ -75,8 +75,9 @@
fasync::spawn(
async move {
- let mut iter = tests.iter().map(|TestCaseInfo { name }| ftest::Case {
- name: Some(name.clone()),
+ let mut iter = tests.iter().map(|TestCaseInfo { name }| {
+ // TODO(fxb/45852): Support disabled tests.
+ ftest::Case { name: Some(name.clone()), enabled: None }
});
while let Some(ftest::CaseIteratorRequest::GetNext { responder }) =
stream.try_next().await?