summaryrefslogtreecommitdiffhomepage
path: root/test/test-manager/src/tests
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2023-12-27 14:38:36 +0100
committerDavid Lönnhager <david.l@mullvad.net>2024-01-08 11:34:07 +0100
commit857febc80eaff8f5efc4239b2c625fcfbee78999 (patch)
treece29bea94421884ff91021efa8b43d21088edf3c /test/test-manager/src/tests
parentaca939c260f718e3806a67b0a0703a33d4c8157f (diff)
downloadmullvadvpn-857febc80eaff8f5efc4239b2c625fcfbee78999.tar.xz
mullvadvpn-857febc80eaff8f5efc4239b2c625fcfbee78999.zip
Add 'target_os' attribute to test macro
Diffstat (limited to 'test/test-manager/src/tests')
-rw-r--r--test/test-manager/src/tests/config.rs3
-rw-r--r--test/test-manager/src/tests/install.rs2
-rw-r--r--test/test-manager/src/tests/test_metadata.rs10
-rw-r--r--test/test-manager/src/tests/tunnel.rs4
-rw-r--r--test/test-manager/src/tests/ui.rs2
5 files changed, 17 insertions, 4 deletions
diff --git a/test/test-manager/src/tests/config.rs b/test/test-manager/src/tests/config.rs
index a0a22368dd..7ffe737aa7 100644
--- a/test/test-manager/src/tests/config.rs
+++ b/test/test-manager/src/tests/config.rs
@@ -1,5 +1,6 @@
use once_cell::sync::OnceCell;
use std::ops::Deref;
+use test_rpc::meta::Os;
// Default `mullvad_host`. This should match the production env.
pub const DEFAULT_MULLVAD_HOST: &str = "mullvad.net";
@@ -20,6 +21,8 @@ pub struct TestConfig {
pub mullvad_host: String,
pub host_bridge_name: String,
+
+ pub os: Os,
}
#[derive(Debug, Clone)]
diff --git a/test/test-manager/src/tests/install.rs b/test/test-manager/src/tests/install.rs
index 48ce233493..ec1344ede0 100644
--- a/test/test-manager/src/tests/install.rs
+++ b/test/test-manager/src/tests/install.rs
@@ -360,7 +360,7 @@ async fn replace_openvpn_cert(rpc: &ServiceClient) -> Result<(), Error> {
const SOURCE_CERT_FILENAME: &str = "openvpn.ca.crt";
const DEST_CERT_FILENAME: &str = "ca.crt";
- let dest_dir = match rpc.get_os().await.expect("failed to get OS") {
+ let dest_dir = match TEST_CONFIG.os {
Os::Windows => "C:\\Program Files\\Mullvad VPN\\resources",
Os::Linux => "/opt/Mullvad VPN/resources",
Os::Macos => "/Applications/Mullvad VPN.app/Contents/Resources",
diff --git a/test/test-manager/src/tests/test_metadata.rs b/test/test-manager/src/tests/test_metadata.rs
index 39d802e5e0..3e28a4380b 100644
--- a/test/test-manager/src/tests/test_metadata.rs
+++ b/test/test-manager/src/tests/test_metadata.rs
@@ -1,9 +1,11 @@
use super::TestWrapperFunction;
+use test_rpc::meta::Os;
use test_rpc::mullvad_daemon::MullvadClientVersion;
pub struct TestMetadata {
pub name: &'static str,
pub command: &'static str,
+ pub target_os: Option<Os>,
pub mullvad_client_version: MullvadClientVersion,
pub func: TestWrapperFunction,
pub priority: Option<i32>,
@@ -12,5 +14,13 @@ pub struct TestMetadata {
pub cleanup: bool,
}
+impl TestMetadata {
+ pub fn should_run_on_os(&self, os: Os) -> bool {
+ self.target_os
+ .map(|target_os| target_os == os)
+ .unwrap_or(true)
+ }
+}
+
// Register our test metadata struct with inventory to allow submitting tests of this type.
inventory::collect!(TestMetadata);
diff --git a/test/test-manager/src/tests/tunnel.rs b/test/test-manager/src/tests/tunnel.rs
index d36ba4febe..9544f098b2 100644
--- a/test/test-manager/src/tests/tunnel.rs
+++ b/test/test-manager/src/tests/tunnel.rs
@@ -1,7 +1,7 @@
use super::helpers::{
self, connect_and_wait, disconnect_and_wait, set_bridge_settings, set_relay_settings,
};
-use super::{Error, TestContext};
+use super::{config::TEST_CONFIG, Error, TestContext};
use crate::network_monitor::{start_packet_monitor, MonitorOptions};
use mullvad_management_interface::{types, ManagementServiceClient};
@@ -502,7 +502,7 @@ async fn check_tunnel_psk(
mullvad_client: &ManagementServiceClient,
should_have_psk: bool,
) {
- match rpc.get_os().await.expect("failed to get OS") {
+ match TEST_CONFIG.os {
Os::Linux => {
let name = helpers::get_tunnel_interface(mullvad_client.clone())
.await
diff --git a/test/test-manager/src/tests/ui.rs b/test/test-manager/src/tests/ui.rs
index 3600eb1d27..461d20ae10 100644
--- a/test/test-manager/src/tests/ui.rs
+++ b/test/test-manager/src/tests/ui.rs
@@ -32,7 +32,7 @@ pub async fn run_test_env<
let new_params: Vec<String>;
let bin_path;
- match rpc.get_os().await? {
+ match TEST_CONFIG.os {
Os::Linux => {
bin_path = PathBuf::from("/usr/bin/xvfb-run");