From 9dcc4c986867c6ee1d52ae1fa74b7144bfd606c0 Mon Sep 17 00:00:00 2001 From: Dorota Czaplejewicz Date: Sat, 28 Nov 2020 18:35:48 +0000 Subject: [PATCH] tests: Prefer the env var for finding test layouts The builtin file path is embedded in the binary and subject to substitution, which makes it invalid when trying to build a .deb reproducibly. Out of the two solutions, it's easier to make the change here rather than customize .debu building not to run tests reproducibly. --- src/data.rs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/data.rs b/src/data.rs index ab0c4d5a..41123b24 100644 --- a/src/data.rs +++ b/src/data.rs @@ -746,13 +746,21 @@ mod tests { use ::logging::ProblemPanic; - const THIS_FILE: &str = file!(); - fn path_from_root(file: &'static str) -> PathBuf { - PathBuf::from(THIS_FILE) - .parent().unwrap() - .parent().unwrap() - .join(file) + let source_dir = env::var("SOURCE_DIR") + .map(PathBuf::from) + .unwrap_or_else(|e| { + if let env::VarError::NotPresent = e { + let this_file = file!(); + PathBuf::from(this_file) + .parent().unwrap() + .parent().unwrap() + .into() + } else { + panic!("{:?}", e); + } + }); + source_dir.join(file) } #[test]