diff options
Diffstat (limited to 'tests/compiletest/helper/lib.rs')
-rw-r--r-- | tests/compiletest/helper/lib.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/compiletest/helper/lib.rs b/tests/compiletest/helper/lib.rs new file mode 100644 index 00000000000..2ec43d3f522 --- /dev/null +++ b/tests/compiletest/helper/lib.rs @@ -0,0 +1,29 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +extern crate compiletest_rs as compiletest; + +use std::env; +use std::path::PathBuf; + +pub fn run_mode(mode: &'static str) { + + let mut config = compiletest::default_config(); + let cfg_mode = mode.parse().ok().expect("Invalid mode"); + + config.mode = cfg_mode; + config.src_base = PathBuf::from(format!("{}", mode)); + + let mut base_path = env::current_dir().expect("Current directory is invalid"); + base_path.pop(); + base_path.pop(); + base_path.pop(); + + let mode = env::var("BUILD_MODE").expect("BUILD_MODE environment variable must be set"); + let debug_path = base_path.join(PathBuf::from(format!("target/{}", mode))); + let deps_path = base_path.join(PathBuf::from(format!("target/{}/deps", mode))); + + config.target_rustcflags = Some(format!("-L {} -L {}", debug_path.display(), deps_path.display())); + compiletest::run_tests(&config); +} |