#![allow(dead_code)]
use std::env;
use std::fs;
use std::path::Path;
pub mod conf;
pub mod files;
pub mod run;
const FIXTURES_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/tests/fixtures/");
const MOCK_BIN_DIR: &str = concat!(env!("CARGO_TARGET_TMPDIR"), "/mock_bin/");
pub fn mock_bin(bin_name: &str, file: &str) {
let fixtures_dir = Path::new(FIXTURES_DIR);
let bin_dir = Path::new(MOCK_BIN_DIR);
let fixture = fixtures_dir.join(file).with_extension("sh");
let test_mock = bin_dir.join(bin_name);
assert!(
fs::create_dir_all(bin_dir).is_ok(),
"Error creating mock bin directory: '{}'.",
bin_dir.display()
);
assert!(
fs::copy(&fixture, test_mock).is_ok(),
"Error setting up mock executable: '{}'.",
fixture.display()
);
unsafe {
env::set_var("PATH", format!("{}:/bin:/usr/bin/", bin_dir.display()));
}
}
pub fn read_output_file(file: &str) -> String {
let bin_dir = Path::new(MOCK_BIN_DIR);
fs::read_to_string(bin_dir.join(file).with_extension("txt"))
.expect("if file doesn't exist, the test failed")
}
pub fn output_file_exists(file: &str) -> bool {
let bin_dir = Path::new(MOCK_BIN_DIR);
bin_dir.join(file).with_extension("txt").exists()
}
pub fn remove_output_file(file: &str) {
let bin_dir = Path::new(MOCK_BIN_DIR);
let output = bin_dir.join(file).with_extension("txt");
if output.exists() {
fs::remove_file(output).unwrap();
}
}