summaryrefslogtreecommitdiffhomepage
path: root/test/test-manager/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-01-09 13:10:37 +0100
committerDavid Lönnhager <david.l@mullvad.net>2024-01-09 14:24:03 +0100
commitda7cbf13a85b09659b1d64b0018e6b9177507147 (patch)
treec031e0355c1bba136daa14bfd66aaba5fff79c51 /test/test-manager/src
parent5d0bcc201050c90353418d3413a92e692ae3faee (diff)
downloadmullvadvpn-da7cbf13a85b09659b1d64b0018e6b9177507147.tar.xz
mullvadvpn-da7cbf13a85b09659b1d64b0018e6b9177507147.zip
Exit immediately if ssh-setup.sh fails
Diffstat (limited to 'test/test-manager/src')
-rw-r--r--test/test-manager/src/vm/provision.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/test/test-manager/src/vm/provision.rs b/test/test-manager/src/vm/provision.rs
index b3b39a2c18..5f01e8f192 100644
--- a/test/test-manager/src/vm/provision.rs
+++ b/test/test-manager/src/vm/provision.rs
@@ -1,6 +1,6 @@
use crate::config::{OsType, Provisioner, VmConfig};
use crate::package;
-use anyhow::{Context, Result};
+use anyhow::{bail, Context, Result};
use ssh2::Session;
use std::fs::File;
use std::io::{self, Read};
@@ -203,5 +203,14 @@ fn ssh_exec(session: &Session, command: &str) -> Result<String> {
channel.send_eof()?;
channel.wait_eof()?;
channel.wait_close()?;
+
+ let exit_status = channel
+ .exit_status()
+ .context("Failed to obtain exit status")?;
+ if exit_status != 0 {
+ log::error!("command failed: {command}\n{output}");
+ bail!("command failed: {exit_status}");
+ }
+
Ok(output)
}