summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorSebastian Holmin <sebastian.holmin@mullvad.net>2024-11-21 13:12:46 +0100
committerSebastian Holmin <sebastian.holmin@mullvad.net>2024-11-22 11:51:40 +0100
commit41955ef6e28d275dd17feaf5067f0bb8b753a039 (patch)
tree8d1e3bb3bebb7e57d5f268ded92e902e8e979ca4 /test
parent3b76c34e6d594e346c2161ea1db86f2b431355ae (diff)
downloadmullvadvpn-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.rs2
-rw-r--r--test/test-manager/src/summary.rs4
-rw-r--r--test/test-manager/src/tests/mod.rs27
-rw-r--r--test/test-manager/src/tests/test_metadata.rs1
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,