blob: 700d0e2539a4de8404af3b337c9d14f2ec0da1b1 [file] [log] [blame]
// Copyright 2021 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.
mod helpers;
use {
crate::helpers::{assert_events_eq, run_test},
fidl_fuchsia_test_manager as ftest_manager,
ftest_manager::{CaseStatus, SuiteStatus},
test_manager_test_lib::{GroupRunEventByTestCase, RunEvent},
};
// Stress test with a very large gtest suite.
#[fuchsia_async::run_singlethreaded(test)]
async fn launch_and_run_hugetest() {
let test_url = "fuchsia-pkg://fuchsia.com/gtest-runner-example-tests#meta/huge_gtest.cm";
let (events, _logs) =
run_test(test_url, ftest_manager::RunOptions { parallel: Some(100), ..Default::default() })
.await
.unwrap();
let events = events.into_iter().group_by_test_case_unordered();
let mut expected_events = vec![RunEvent::suite_started()];
for i in 0..1000 {
let s = format!("HugeStress/HugeTest.Test/{}", i);
expected_events.extend(vec![
RunEvent::case_found(&s),
RunEvent::case_started(&s),
RunEvent::case_stopped(&s, CaseStatus::Passed),
RunEvent::case_finished(&s),
])
}
expected_events.push(RunEvent::suite_stopped(SuiteStatus::Passed));
let expected_events = expected_events.into_iter().group_by_test_case_unordered();
assert_events_eq(&expected_events, &events);
}