From 1f496ddf702ab202e4dc7ce60a3412e18be7f301 Mon Sep 17 00:00:00 2001 From: hi-rustin Date: Mon, 25 Dec 2023 20:21:26 +0800 Subject: [PATCH] test: include a case for setting OUT_DIR Signed-off-by: hi-rustin --- tests/testsuite/test.rs | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/testsuite/test.rs b/tests/testsuite/test.rs index 6357b950c0b3..8a9e4ab36cb9 100644 --- a/tests/testsuite/test.rs +++ b/tests/testsuite/test.rs @@ -4897,3 +4897,51 @@ fn cargo_test_print_env_verbose() { ) .run(); } + +#[cargo_test] +fn cargo_test_set_out_dir_env_var() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + edition = "2021" + "#, + ) + .file( + "src/lib.rs", + r#" + pub fn add(left: usize, right: usize) -> usize { + left + right + } + "#, + ) + .file( + "build.rs", + r#" + fn main() {} + "#, + ) + .file( + "tests/case.rs", + r#" + #[cfg(test)] + pub mod tests { + #[test] + fn test_add() { + assert!(std::env::var("OUT_DIR").is_ok()); + assert_eq!(foo::add(2, 5), 7); + } + } + "#, + ) + .build(); + + p.cargo("test").run(); + p.cargo("test --package foo --test case -- tests::test_add --exact --nocapture") + .with_stdout_contains("test tests::test_add ... FAILED") + .with_status(101) + .run(); +}