Skip to content

Commit 92eab6f

Browse files
Merge branch 'test-runner-dir'
2 parents 7781ac5 + b7ebc08 commit 92eab6f

File tree

4 files changed

+12
-18
lines changed

4 files changed

+12
-18
lines changed

test/test-manager/src/config.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ impl VmConfig {
200200
Some((self.ssh_user.as_ref()?, self.ssh_password.as_ref()?))
201201
}
202202

203-
pub fn get_runner_dir(&self) -> PathBuf {
203+
pub fn get_default_runner_dir(&self) -> PathBuf {
204204
let target_dir = self.get_target_dir();
205205
let subdir = match self.architecture {
206206
None | Some(Architecture::X64) => self.get_x64_runner_subdir(),

test/test-manager/src/main.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use std::{net::SocketAddr, path::PathBuf};
1313

1414
use anyhow::{Context, Result};
1515
use clap::Parser;
16+
use vm::provision;
1617

1718
use crate::tests::config::OpenVPNCertificate;
1819

@@ -126,6 +127,10 @@ enum Commands {
126127
/// Path to output test results in a structured format
127128
#[arg(long, value_name = "PATH")]
128129
test_report: Option<PathBuf>,
130+
131+
/// Path to the directory containing the test runner
132+
#[arg(long, value_name = "DIR")]
133+
runner_dir: Option<PathBuf>,
129134
},
130135

131136
/// Output an HTML-formatted summary of one or more reports
@@ -238,6 +243,7 @@ async fn main() -> Result<()> {
238243
test_filters,
239244
verbose,
240245
test_report,
246+
runner_dir,
241247
} => {
242248
let mut config = config.clone();
243249
config.runtime_opts.display = match (display, vnc.is_some()) {
@@ -282,7 +288,8 @@ async fn main() -> Result<()> {
282288
.unwrap_or_default();
283289

284290
let mut instance = vm::run(&config, &vm).await.context("Failed to start VM")?;
285-
let artifacts_dir = vm::provision(&config, &vm, &*instance, &manifest)
291+
let runner_dir = runner_dir.unwrap_or_else(|| vm_config.get_default_runner_dir());
292+
let artifacts_dir = provision::provision(vm_config, &*instance, &manifest, runner_dir)
286293
.await
287294
.context("Failed to run provisioning for VM")?;
288295

test/test-manager/src/vm/mod.rs

+1-15
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
use anyhow::{Context, Result};
22
use std::net::IpAddr;
33

4-
use crate::{
5-
config::{Config, ConfigFile, VmConfig, VmType},
6-
package,
7-
};
4+
use crate::config::{Config, ConfigFile, VmConfig, VmType};
85

96
mod logging;
107
pub mod network;
@@ -63,17 +60,6 @@ pub async fn run(config: &Config, name: &str) -> Result<Box<dyn VmInstance>> {
6360
Ok(instance)
6461
}
6562

66-
/// Returns the directory in the test runner where the test-runner binary is installed.
67-
pub async fn provision(
68-
config: &Config,
69-
name: &str,
70-
instance: &dyn VmInstance,
71-
app_manifest: &package::Manifest,
72-
) -> Result<String> {
73-
let vm_config = get_vm_config(config, name)?;
74-
provision::provision(vm_config, instance, app_manifest).await
75-
}
76-
7763
pub async fn update_packages(
7864
config: VmConfig,
7965
instance: &dyn VmInstance,

test/test-manager/src/vm/provision.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ pub async fn provision(
1616
config: &VmConfig,
1717
instance: &dyn super::VmInstance,
1818
app_manifest: &package::Manifest,
19+
runner_dir: PathBuf,
1920
) -> Result<String> {
2021
match config.provisioner {
2122
Provisioner::Ssh => {
@@ -25,7 +26,7 @@ pub async fn provision(
2526
provision_ssh(
2627
instance,
2728
config.os_type,
28-
&config.get_runner_dir(),
29+
&runner_dir,
2930
app_manifest,
3031
user,
3132
password,

0 commit comments

Comments
 (0)