diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-05-02 20:43:12 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-03 00:43:12 +0000 |
commit | b7945a218ee193f6730b4b459e5ab28d13b1f040 (patch) | |
tree | 690bc84008a60f3cd13d4dee11df39a8f66c85c7 /tests/util | |
parent | cf0579c7d4b69fcb205fb0d5320e0a00012720ee (diff) |
chore: move cert itests to spec tests (#23607)
Diffstat (limited to 'tests/util')
-rw-r--r-- | tests/util/server/src/builders.rs | 50 | ||||
-rw-r--r-- | tests/util/server/src/macros.rs | 39 |
2 files changed, 30 insertions, 59 deletions
diff --git a/tests/util/server/src/builders.rs b/tests/util/server/src/builders.rs index b41c684be..bf5de64dc 100644 --- a/tests/util/server/src/builders.rs +++ b/tests/util/server/src/builders.rs @@ -546,9 +546,10 @@ impl TestCommandBuilder { return; } - let args = self.build_args(); + let cwd = self.build_cwd(); + let args = self.build_args(&cwd); let args = args.iter().map(|s| s.as_str()).collect::<Vec<_>>(); - let mut envs = self.build_envs(); + let mut envs = self.build_envs(&cwd); if !envs.contains_key("NO_COLOR") { // set this by default for pty tests envs.insert("NO_COLOR".to_string(), "1".to_string()); @@ -562,11 +563,6 @@ impl TestCommandBuilder { } } - let cwd = self - .cwd - .as_ref() - .map(PathBuf::from) - .unwrap_or_else(|| std::env::current_dir().unwrap()); let command_path = self.build_command_path(); self.diagnostic_logger.writeln(format!( @@ -699,19 +695,18 @@ impl TestCommandBuilder { fn build_command(&self) -> Command { let command_path = self.build_command_path(); - let args = self.build_args(); + let cwd = self.build_cwd(); + let args = self.build_args(&cwd); self.diagnostic_logger.writeln(format!( "command {} {}", command_path, args.join(" ") )); let mut command = Command::new(command_path); - if let Some(cwd) = &self.cwd { - self - .diagnostic_logger - .writeln(format!("command cwd {}", cwd)); - command.current_dir(cwd); - } + self + .diagnostic_logger + .writeln(format!("command cwd {}", cwd.display())); + command.current_dir(&cwd); if let Some(stdin) = &self.stdin { command.stdin(stdin.take()); } @@ -726,7 +721,7 @@ impl TestCommandBuilder { if self.env_clear { command.env_clear(); } - let envs = self.build_envs(); + let envs = self.build_envs(&cwd); command.envs(envs); command.stdin(Stdio::piped()); command @@ -747,7 +742,7 @@ impl TestCommandBuilder { } } - fn build_args(&self) -> Vec<String> { + fn build_args(&self, cwd: &Path) -> Vec<String> { if self.args_vec.is_empty() { std::borrow::Cow::Owned( self @@ -764,11 +759,19 @@ impl TestCommandBuilder { std::borrow::Cow::Borrowed(&self.args_vec) } .iter() - .map(|arg| arg.replace("$TESTDATA", &testdata_path().to_string_lossy())) + .map(|arg| self.replace_vars(arg, cwd)) .collect::<Vec<_>>() } - fn build_envs(&self) -> HashMap<String, String> { + fn build_cwd(&self) -> PathBuf { + self + .cwd + .as_ref() + .map(PathBuf::from) + .unwrap_or_else(|| std::env::current_dir().unwrap()) + } + + fn build_envs(&self, cwd: &Path) -> HashMap<String, String> { let mut envs = self.envs.clone(); if !envs.contains_key("DENO_DIR") { envs.insert("DENO_DIR".to_string(), self.deno_dir.path().to_string()); @@ -788,12 +791,19 @@ impl TestCommandBuilder { // update any test variables in the env value for value in envs.values_mut() { - *value = - value.replace("$DENO_DIR", &self.deno_dir.path().to_string_lossy()); + *value = self.replace_vars(value, cwd); } envs } + + fn replace_vars(&self, text: &str, cwd: &Path) -> String { + // todo(dsherret): use monch to extract out the vars + text + .replace("$DENO_DIR", &self.deno_dir.path().to_string_lossy()) + .replace("$TESTDATA", &testdata_path().to_string_lossy()) + .replace("$PWD", &cwd.to_string_lossy()) + } } pub struct DenoChild { diff --git a/tests/util/server/src/macros.rs b/tests/util/server/src/macros.rs index 542214d20..fdbb977e9 100644 --- a/tests/util/server/src/macros.rs +++ b/tests/util/server/src/macros.rs @@ -66,30 +66,6 @@ macro_rules! itest( ); #[macro_export] -macro_rules! itest_flaky( -($name:ident {$( $key:ident: $value:expr,)*}) => { - #[flaky_test::flaky_test] - fn $name() { - $crate::timeout!(); - let test = $crate::CheckOutputIntegrationTest { - $( - $key: $value, - )* - .. Default::default() - }; - let output = test.output(); - output.assert_exit_code(test.exit_code); - if !test.output.is_empty() { - assert!(test.output_str.is_none()); - output.assert_matches_file(test.output); - } else { - output.assert_matches_text(test.output_str.unwrap_or("")); - } - } -} -); - -#[macro_export] macro_rules! context( ({$( $key:ident: $value:expr,)*}) => { $crate::TestContext::create($crate::TestContextOptions { @@ -102,21 +78,6 @@ macro_rules! context( ); #[macro_export] -macro_rules! itest_steps( -($name:ident {$( $key:ident: $value:expr,)*}) => { - #[test] - fn $name() { - ($crate::CheckOutputIntegrationTestSteps { - $( - $key: $value, - )* - .. Default::default() - }).run() - } -} -); - -#[macro_export] macro_rules! command_step( ({$( $key:ident: $value:expr,)*}) => { $crate::CheckOutputIntegrationTestCommandStep { |