diff --git a/src/config.rs b/src/config.rs index 73e78f33..dabb4d50 100644 --- a/src/config.rs +++ b/src/config.rs @@ -117,7 +117,7 @@ impl Config { /// Create a configuration for testing the output of running /// `rustc` on the test files. #[cfg(feature = "rustc")] - pub fn rustc(root_dir: impl Into) -> Self { + pub fn rustc(root_dir: impl Into, cargo_target_tmpdir: impl Into) -> Self { let mut comment_defaults = Comments::default(); #[derive(Debug)] @@ -177,10 +177,7 @@ impl Config { program: CommandBuilder::rustc(), output_conflict_handling: error_on_output_conflict, bless_command: None, - out_dir: std::env::var_os("CARGO_TARGET_DIR") - .map(PathBuf::from) - .unwrap_or_else(|| std::env::current_dir().unwrap().join("target")) - .join("ui"), + out_dir: cargo_target_tmpdir.into().join("ui"), skip_files: Vec::new(), filter_files: Vec::new(), threads: None, @@ -260,13 +257,13 @@ impl Config { /// Create a configuration for testing the output of running /// `cargo` on the test `Cargo.toml` files. #[cfg(feature = "rustc")] - pub fn cargo(root_dir: impl Into) -> Self { + pub fn cargo(root_dir: impl Into, cargo_target_tmpdir: impl Into) -> Self { let mut this = Self { program: CommandBuilder::cargo(), custom_comments: Default::default(), diagnostic_extractor: diagnostics::rustc::cargo_diagnostics_extractor, comment_start: "#", - ..Self::rustc(root_dir) + ..Self::rustc(root_dir, cargo_target_tmpdir) }; this.comment_defaults.base().custom.clear(); this diff --git a/tests/integrations/basic-bin/Cargo.lock b/tests/integrations/basic-bin/Cargo.lock index 257c6788..d9b6e29a 100644 --- a/tests/integrations/basic-bin/Cargo.lock +++ b/tests/integrations/basic-bin/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -716,7 +716,7 @@ dependencies = [ [[package]] name = "ui_test" -version = "0.29.1" +version = "0.29.2" dependencies = [ "annotate-snippets", "anyhow", diff --git a/tests/integrations/basic-bin/tests/ui_tests.rs b/tests/integrations/basic-bin/tests/ui_tests.rs index 852d0d25..e1ecb0ac 100644 --- a/tests/integrations/basic-bin/tests/ui_tests.rs +++ b/tests/integrations/basic-bin/tests/ui_tests.rs @@ -9,7 +9,7 @@ fn main() -> ui_test::color_eyre::Result<()> { ui_test::error_on_output_conflict }, bless_command: Some("cargo test".to_string()), - ..Config::rustc("tests/actual_tests") + ..Config::rustc("tests/actual_tests", env!("CARGO_TARGET_TMPDIR")) }; config .comment_defaults diff --git a/tests/integrations/basic-fail-mode/Cargo.lock b/tests/integrations/basic-fail-mode/Cargo.lock index 08d20867..3f746e9b 100644 --- a/tests/integrations/basic-fail-mode/Cargo.lock +++ b/tests/integrations/basic-fail-mode/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -716,7 +716,7 @@ dependencies = [ [[package]] name = "ui_test" -version = "0.29.1" +version = "0.29.2" dependencies = [ "annotate-snippets", "anyhow", diff --git a/tests/integrations/basic-fail-mode/tests/run_file.rs b/tests/integrations/basic-fail-mode/tests/run_file.rs index 5864b7c4..d7a5bd9c 100644 --- a/tests/integrations/basic-fail-mode/tests/run_file.rs +++ b/tests/integrations/basic-fail-mode/tests/run_file.rs @@ -5,7 +5,7 @@ use ui_test::*; #[test] fn run_file() -> Result<()> { - let mut config = Config::rustc(PathBuf::new()); + let mut config = Config::rustc(PathBuf::new(), env!("CARGO_TARGET_TMPDIR")); let tmp_dir = tempfile::tempdir_in(env!("CARGO_TARGET_TMPDIR"))?; let tmp_dir = tmp_dir.path(); @@ -25,7 +25,7 @@ fn run_file() -> Result<()> { #[test] fn fail_run_file() { - let mut config = Config::rustc(PathBuf::new()); + let mut config = Config::rustc(PathBuf::new(), env!("CARGO_TARGET_TMPDIR")); config.host = Some(String::new()); config.program = CommandBuilder::cmd("invalid_alsdkfjalsdfjalskdfj"); @@ -45,7 +45,7 @@ fn fail_run_file() { fn run_file_no_deps() -> Result<()> { let path = "../../../target"; - let mut config = Config::rustc(PathBuf::new()); + let mut config = Config::rustc(PathBuf::new(), env!("CARGO_TARGET_TMPDIR")); let tmp_dir = tempfile::tempdir_in(path)?; let tmp_dir = tmp_dir.path(); diff --git a/tests/integrations/basic-fail-mode/tests/ui_tests.rs b/tests/integrations/basic-fail-mode/tests/ui_tests.rs index 92b14795..0dd846ff 100644 --- a/tests/integrations/basic-fail-mode/tests/ui_tests.rs +++ b/tests/integrations/basic-fail-mode/tests/ui_tests.rs @@ -9,7 +9,7 @@ fn main() -> ui_test::color_eyre::Result<()> { ui_test::error_on_output_conflict }, bless_command: Some("cargo test".to_string()), - ..Config::rustc("tests/actual_tests") + ..Config::rustc("tests/actual_tests", env!("CARGO_TARGET_TMPDIR")) }; config .comment_defaults diff --git a/tests/integrations/basic-fail/Cargo.lock b/tests/integrations/basic-fail/Cargo.lock index 15e721d8..6d3398c9 100644 --- a/tests/integrations/basic-fail/Cargo.lock +++ b/tests/integrations/basic-fail/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -716,7 +716,7 @@ dependencies = [ [[package]] name = "ui_test" -version = "0.29.1" +version = "0.29.2" dependencies = [ "annotate-snippets", "anyhow", diff --git a/tests/integrations/basic-fail/tests/ui_tests.rs b/tests/integrations/basic-fail/tests/ui_tests.rs index 2432f749..8c29cce1 100644 --- a/tests/integrations/basic-fail/tests/ui_tests.rs +++ b/tests/integrations/basic-fail/tests/ui_tests.rs @@ -6,7 +6,7 @@ fn main() -> ui_test::color_eyre::Result<()> { // Never bless integrations-fail tests, we want to see stderr mismatches output_conflict_handling: ui_test::error_on_output_conflict, bless_command: Some("DO NOT BLESS. These are meant to fail".to_string()), - ..Config::rustc("tests/actual_tests") + ..Config::rustc("tests/actual_tests", env!("CARGO_TARGET_TMPDIR")) }; config diff --git a/tests/integrations/basic-fail/tests/ui_tests_bless.rs b/tests/integrations/basic-fail/tests/ui_tests_bless.rs index 2fb5e96f..125fad14 100644 --- a/tests/integrations/basic-fail/tests/ui_tests_bless.rs +++ b/tests/integrations/basic-fail/tests/ui_tests_bless.rs @@ -19,7 +19,7 @@ fn main() -> ui_test::color_eyre::Result<()> { ui_test::error_on_output_conflict }, bless_command: Some("cargo test".to_string()), - ..Config::rustc(root_dir) + ..Config::rustc(root_dir, env!("CARGO_TARGET_TMPDIR")) }; config.comment_defaults.base().exit_status = match rustfix { RustfixMode::Everything => None.into(), diff --git a/tests/integrations/basic-fail/tests/ui_tests_diff_only.rs b/tests/integrations/basic-fail/tests/ui_tests_diff_only.rs index 022eb3f2..6205be2f 100644 --- a/tests/integrations/basic-fail/tests/ui_tests_diff_only.rs +++ b/tests/integrations/basic-fail/tests/ui_tests_diff_only.rs @@ -5,7 +5,7 @@ fn main() -> ui_test::color_eyre::Result<()> { // Never bless integrations-fail tests, we want to see stderr mismatches output_conflict_handling: ui_test::error_on_output_conflict, bless_command: Some("DO NOT BLESS. These are meant to fail".to_string()), - ..Config::rustc("tests/actual_tests") + ..Config::rustc("tests/actual_tests", env!("CARGO_TARGET_TMPDIR")) }; run_tests_generic( diff --git a/tests/integrations/basic-fail/tests/ui_tests_invalid_program.rs b/tests/integrations/basic-fail/tests/ui_tests_invalid_program.rs index d0aac471..94f2a329 100644 --- a/tests/integrations/basic-fail/tests/ui_tests_invalid_program.rs +++ b/tests/integrations/basic-fail/tests/ui_tests_invalid_program.rs @@ -6,7 +6,7 @@ fn main() -> ui_test::color_eyre::Result<()> { // Never bless integrations-fail tests, we want to see stderr mismatches output_conflict_handling: ui_test::error_on_output_conflict, bless_command: Some("DO NOT BLESS. These are meant to fail".to_string()), - ..Config::rustc("tests/actual_tests") + ..Config::rustc("tests/actual_tests", env!("CARGO_TARGET_TMPDIR")) }; run_tests_generic( diff --git a/tests/integrations/basic-fail/tests/ui_tests_invalid_program2.rs b/tests/integrations/basic-fail/tests/ui_tests_invalid_program2.rs index e3d072e0..f794ed49 100644 --- a/tests/integrations/basic-fail/tests/ui_tests_invalid_program2.rs +++ b/tests/integrations/basic-fail/tests/ui_tests_invalid_program2.rs @@ -7,7 +7,7 @@ fn main() -> ui_test::color_eyre::Result<()> { output_conflict_handling: ui_test::error_on_output_conflict, bless_command: Some("DO NOT BLESS. These are meant to fail".to_string()), host: Some("foo".into()), - ..Config::rustc("tests/actual_tests") + ..Config::rustc("tests/actual_tests", env!("CARGO_TARGET_TMPDIR")) }; run_tests_generic( diff --git a/tests/integrations/basic/Cargo.lock b/tests/integrations/basic/Cargo.lock index a2712be7..0b04aada 100644 --- a/tests/integrations/basic/Cargo.lock +++ b/tests/integrations/basic/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -639,7 +639,7 @@ dependencies = [ [[package]] name = "ui_test" -version = "0.29.1" +version = "0.29.2" dependencies = [ "annotate-snippets", "anyhow", diff --git a/tests/integrations/basic/tests/run_file.rs b/tests/integrations/basic/tests/run_file.rs index 98bb257b..918800a3 100644 --- a/tests/integrations/basic/tests/run_file.rs +++ b/tests/integrations/basic/tests/run_file.rs @@ -5,7 +5,7 @@ use ui_test::*; #[test] fn run_file() -> Result<()> { - let mut config = Config::rustc(PathBuf::new()); + let mut config = Config::rustc(PathBuf::new(), env!("CARGO_TARGET_TMPDIR")); let tmp_dir = tempfile::tempdir_in(env!("CARGO_TARGET_TMPDIR"))?; let tmp_dir = tmp_dir.path(); @@ -27,7 +27,7 @@ fn run_file() -> Result<()> { fn run_file_with_deps() -> Result<()> { let path = "../../../target"; - let mut config = Config::rustc(PathBuf::new()); + let mut config = Config::rustc(PathBuf::new(), env!("CARGO_TARGET_TMPDIR")); let tmp_dir = tempfile::tempdir_in(path)?; let tmp_dir = tmp_dir.path(); @@ -61,7 +61,7 @@ fn non_utf8() -> Result<()> { if cfg!(windows) { return Ok(()); } - let mut config = Config::rustc(PathBuf::new()); + let mut config = Config::rustc(PathBuf::new(), env!("CARGO_TARGET_TMPDIR")); config.program = CommandBuilder::cmd("cat"); config.comment_defaults.base().custom.clear(); config.host = Some(String::new()); diff --git a/tests/integrations/basic/tests/ui_tests.rs b/tests/integrations/basic/tests/ui_tests.rs index 9d51f43e..1b77414a 100644 --- a/tests/integrations/basic/tests/ui_tests.rs +++ b/tests/integrations/basic/tests/ui_tests.rs @@ -9,7 +9,7 @@ fn main() -> ui_test::color_eyre::Result<()> { ui_test::error_on_output_conflict }, bless_command: Some("cargo test".to_string()), - ..Config::rustc("tests/actual_tests") + ..Config::rustc("tests/actual_tests", env!("CARGO_TARGET_TMPDIR")) }; config.stderr_filter("in ([0-9]m )?[0-9\\.]+s", ""); config.stdout_filter("in ([0-9]m )?[0-9\\.]+s", ""); diff --git a/tests/integrations/cargo-run/Cargo.lock b/tests/integrations/cargo-run/Cargo.lock index 257c6788..d9b6e29a 100644 --- a/tests/integrations/cargo-run/Cargo.lock +++ b/tests/integrations/cargo-run/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -716,7 +716,7 @@ dependencies = [ [[package]] name = "ui_test" -version = "0.29.1" +version = "0.29.2" dependencies = [ "annotate-snippets", "anyhow", diff --git a/tests/integrations/cargo-run/tests/ui_tests.rs b/tests/integrations/cargo-run/tests/ui_tests.rs index 4efd0ec2..e4e311a0 100644 --- a/tests/integrations/cargo-run/tests/ui_tests.rs +++ b/tests/integrations/cargo-run/tests/ui_tests.rs @@ -8,7 +8,7 @@ fn main() -> ui_test::color_eyre::Result<()> { ui_test::error_on_output_conflict }, bless_command: Some("cargo test".to_string()), - ..Config::cargo("tests/actual_tests") + ..Config::cargo("tests/actual_tests", env!("CARGO_TARGET_TMPDIR")) }; config.comment_defaults.base().exit_status = Spanned::dummy(101).into(); config.comment_defaults.base().require_annotations = Spanned::dummy(false).into();