diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-09-10 18:24:53 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-09-12 10:53:56 +0200 |
| commit | cdebc0bc5276708cf2d35e81d0c8f518180a7cfa (patch) | |
| tree | ab6d79d3a303f69c53b1c27019ed465dd212ab41 /test/test-manager/src | |
| parent | 07274dba0b01d4984e9e7d2991e6b9f684da52ab (diff) | |
| download | mullvadvpn-cdebc0bc5276708cf2d35e81d0c8f518180a7cfa.tar.xz mullvadvpn-cdebc0bc5276708cf2d35e81d0c8f518180a7cfa.zip | |
Dump mullvad logs when reinstalling/resetting daemon fails
Diffstat (limited to 'test/test-manager/src')
| -rw-r--r-- | test/test-manager/src/logging.rs | 46 | ||||
| -rw-r--r-- | test/test-manager/src/tests/mod.rs | 47 |
2 files changed, 54 insertions, 39 deletions
diff --git a/test/test-manager/src/logging.rs b/test/test-manager/src/logging.rs index 75b3d3f5cd..d2ce1ec28d 100644 --- a/test/test-manager/src/logging.rs +++ b/test/test-manager/src/logging.rs @@ -239,30 +239,7 @@ impl TestOutput { println_with_time!("{}", format!("TEST {} HAD LOGS:", self.test_name).red()); match &self.log_output { - Some(log) => { - match &log.settings_json { - Ok(settings) => println_with_time!("settings.json: {}", settings), - Err(e) => println_with_time!("Could not get settings.json: {}", e), - } - - match &log.log_files { - Ok(log_files) => { - for log in log_files { - match log { - Ok(log) => { - println_with_time!( - "Log {}:\n{}", - log.name.to_str().unwrap(), - log.content - ) - } - Err(e) => println_with_time!("Could not get log: {}", e), - } - } - } - Err(e) => println_with_time!("Could not get logs: {}", e), - } - } + Some(log) => print_mullvad_logs(log), None => println_with_time!("Missing logs for {}", self.test_name), } @@ -281,3 +258,24 @@ impl TestOutput { println_with_time!("{}", format!("TEST {} END OF OUTPUT", self.test_name).red()); } } + +pub fn print_mullvad_logs(log: &LogOutput) { + match &log.settings_json { + Ok(settings) => println_with_time!("settings.json: {}", settings), + Err(e) => println_with_time!("Could not get settings.json: {}", e), + } + + match &log.log_files { + Ok(log_files) => { + for log in log_files { + match log { + Ok(log) => { + println_with_time!("Log {}:\n{}", log.name.to_str().unwrap(), log.content) + } + Err(e) => println_with_time!("Could not get log: {}", e), + } + } + } + Err(e) => println_with_time!("Could not get logs: {}", e), + } +} diff --git a/test/test-manager/src/tests/mod.rs b/test/test-manager/src/tests/mod.rs index 1981cc0e07..f39e4371d1 100644 --- a/test/test-manager/src/tests/mod.rs +++ b/test/test-manager/src/tests/mod.rs @@ -25,7 +25,9 @@ use anyhow::Context; use futures::future::BoxFuture; use std::{ops::Not, time::Duration}; -use crate::{mullvad_daemon::RpcClientProvider, package::get_version_from_path}; +use crate::{ + logging::print_mullvad_logs, mullvad_daemon::RpcClientProvider, package::get_version_from_path, +}; use config::TEST_CONFIG; use helpers::{find_custom_list, get_app_env, install_app, set_location}; pub use install::test_upgrade_app; @@ -152,22 +154,37 @@ pub async fn prepare_daemon( rpc: &ServiceClient, rpc_provider: &RpcClientProvider, ) -> anyhow::Result<MullvadProxyClient> { - // Check if daemon should be restarted - let mut mullvad_client = ensure_daemon_version(rpc, rpc_provider) - .await - .context("Failed to restart daemon")?; + let client = async { + // Check if daemon should be restarted + let mut mullvad_client = ensure_daemon_version(rpc, rpc_provider) + .await + .context("Failed to restart daemon")?; - log::debug!("Resetting daemon settings before test"); - helpers::disconnect_and_wait(&mut mullvad_client) - .await - .context("Failed to disconnect daemon after test")?; - mullvad_client - .reset_settings() - .await - .context("Failed to reset settings")?; - helpers::ensure_logged_in(&mut mullvad_client).await?; + log::debug!("Resetting daemon settings before test"); + helpers::disconnect_and_wait(&mut mullvad_client) + .await + .context("Failed to disconnect daemon after test")?; + mullvad_client + .reset_settings() + .await + .context("Failed to reset settings")?; + helpers::ensure_logged_in(&mut mullvad_client).await?; + + Ok(mullvad_client) + } + .await; + + if client.is_err() { + log::error!("Failed to prepare daemon. Attempting to get logs from daemon"); + match rpc.get_mullvad_app_logs().await { + Ok(logs) => print_mullvad_logs(&logs), + Err(err) => { + log::error!("Failed to get logs from daemon: {err}"); + } + } + } - Ok(mullvad_client) + client } /// Create and selects an "anonymous" custom list for this test. The custom list will |
