diff options
| author | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2024-11-21 13:12:46 +0100 |
|---|---|---|
| committer | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2024-11-22 11:51:40 +0100 |
| commit | 41955ef6e28d275dd17feaf5067f0bb8b753a039 (patch) | |
| tree | 8d1e3bb3bebb7e57d5f268ded92e902e8e979ca4 /test | |
| parent | 3b76c34e6d594e346c2161ea1db86f2b431355ae (diff) | |
| download | mullvadvpn-41955ef6e28d275dd17feaf5067f0bb8b753a039.tar.xz mullvadvpn-41955ef6e28d275dd17feaf5067f0bb8b753a039.zip | |
Add `test_upgrade_app` to list tests
Diffstat (limited to 'test')
| -rw-r--r-- | test/test-manager/src/run_tests.rs | 2 | ||||
| -rw-r--r-- | test/test-manager/src/summary.rs | 4 | ||||
| -rw-r--r-- | test/test-manager/src/tests/mod.rs | 27 | ||||
| -rw-r--r-- | test/test-manager/src/tests/test_metadata.rs | 1 |
4 files changed, 25 insertions, 9 deletions
diff --git a/test/test-manager/src/run_tests.rs b/test/test-manager/src/run_tests.rs index dd07ef5f3a..b3b910f05d 100644 --- a/test/test-manager/src/run_tests.rs +++ b/test/test-manager/src/run_tests.rs @@ -102,7 +102,7 @@ impl TestHandler<'_> { pub async fn run( instance: &dyn vm::VmInstance, - tests: Vec<&TestMetadata>, + tests: Vec<TestMetadata>, skip_wait: bool, print_failed_tests_only: bool, summary_logger: Option<SummaryLogger>, diff --git a/test/test-manager/src/summary.rs b/test/test-manager/src/summary.rs index 1beaef91b9..55d290ec5a 100644 --- a/test/test-manager/src/summary.rs +++ b/test/test-manager/src/summary.rs @@ -118,7 +118,7 @@ pub struct Summary { impl Summary { /// Read test summary from `path`. pub async fn parse_log<P: AsRef<Path>>( - all_tests: &[&crate::tests::TestMetadata], + all_tests: &[crate::tests::TestMetadata], path: P, ) -> Result<Summary, Error> { let file = fs::OpenOptions::new() @@ -189,7 +189,7 @@ pub async fn print_summary_table<P: AsRef<Path>>(summary_files: &[P]) { let mut summaries = vec![]; let mut failed_to_parse = vec![]; for sumfile in summary_files { - match Summary::parse_log(&tests, sumfile).await { + match Summary::parse_log(&tests[..], sumfile).await { Ok(summary) => summaries.push(summary), Err(_) => failed_to_parse.push(sumfile), } diff --git a/test/test-manager/src/tests/mod.rs b/test/test-manager/src/tests/mod.rs index a7b3778907..e974430e6d 100644 --- a/test/test-manager/src/tests/mod.rs +++ b/test/test-manager/src/tests/mod.rs @@ -29,7 +29,7 @@ use config::TEST_CONFIG; use helpers::{get_app_env, install_app}; pub use install::test_upgrade_app; use mullvad_management_interface::MullvadProxyClient; -use test_rpc::ServiceClient; +use test_rpc::{mullvad_daemon::MullvadClientVersion, ServiceClient}; const WAIT_FOR_TUNNEL_STATE_TIMEOUT: Duration = Duration::from_secs(40); @@ -76,14 +76,29 @@ pub enum Error { } /// Get a list of all tests, sorted by priority. -pub fn get_tests() -> Vec<&'static TestMetadata> { - let mut tests: Vec<_> = inventory::iter::<TestMetadata>().collect(); +pub fn get_tests() -> Vec<TestMetadata> { + let mut tests: Vec<_> = inventory::iter::<TestMetadata>().cloned().collect(); tests.sort_by_key(|test| test.priority.unwrap_or(0)); - tests + let test_upgrade_app = TestMetadata { + priority: None, + name: "test_upgrade_app", + command: "test_upgrade_app", + targets: &[], + mullvad_client_version: MullvadClientVersion::None, + func: |_, _, _| { + Box::pin(async { + unreachable!("`test_upgrade_app` should not be executed from this function pointer") + }) + }, + }; + [vec![test_upgrade_app], tests].concat() } -pub fn get_filtered_tests(specified_tests: &[String]) -> Result<Vec<&TestMetadata>, anyhow::Error> { - let tests = get_tests(); +/// Return all tests with names matching the input argument. Filters out tests that are skipped for +/// the target platform and `test_upgrade_app`, which is handle separately. +pub fn get_filtered_tests(specified_tests: &[String]) -> Result<Vec<TestMetadata>, anyhow::Error> { + let mut tests: Vec<_> = inventory::iter::<TestMetadata>().cloned().collect(); + tests.sort_by_key(|test| test.priority.unwrap_or(0)); let mut tests = if specified_tests.is_empty() { // Keep all tests diff --git a/test/test-manager/src/tests/test_metadata.rs b/test/test-manager/src/tests/test_metadata.rs index 70476ac199..66447f5ae7 100644 --- a/test/test-manager/src/tests/test_metadata.rs +++ b/test/test-manager/src/tests/test_metadata.rs @@ -1,6 +1,7 @@ use super::TestWrapperFunction; use test_rpc::{meta::Os, mullvad_daemon::MullvadClientVersion}; +#[derive(Clone)] pub struct TestMetadata { pub name: &'static str, pub command: &'static str, |
