Fix tests on macos and linux

This commit is contained in:
Federico Terzi 2019-09-13 11:50:39 +02:00
parent 2e068154a7
commit a19b070fde
2 changed files with 38 additions and 19 deletions

View File

@ -283,6 +283,7 @@ mod tests {
use super::*;
use std::io::Write;
use tempfile::{NamedTempFile, TempDir};
use std::any::Any;
const TEST_WORKING_CONFIG_FILE : &str = include_str!("../res/test/working_config.yaml");
const TEST_CONFIG_FILE_WITH_BAD_YAML : &str = include_str!("../res/test/config_with_bad_yaml.yaml");
@ -295,6 +296,10 @@ mod tests {
file
}
fn variant_eq<T>(a: &T, b: &T) -> bool {
std::mem::discriminant(a) == std::mem::discriminant(b)
}
#[test]
fn test_config_file_not_found() {
let config = Configs::load_config(Path::new("invalid/path"));
@ -511,6 +516,6 @@ mod tests {
let config_set = ConfigSet::load(tmp_dir.path());
assert!(config_set.is_err());
assert_eq!(config_set.unwrap_err(), ConfigLoadError::NameDuplicate(specific_path2))
assert!(variant_eq(&config_set.unwrap_err(), &ConfigLoadError::NameDuplicate(PathBuf::new())))
}
}

View File

@ -253,21 +253,28 @@ mod tests {
let config_manager = RuntimeConfigManager::new(config_set.unwrap(), dummy_system_manager);
let sp1index = config_manager.set.specific
.iter().position(|x| x.name == "myname1").unwrap();
let sp2index = config_manager.set.specific
.iter().position(|x| x.name == "myname2").unwrap();
let sp3index = config_manager.set.specific
.iter().position(|x| x.name == "myname3").unwrap();
assert_eq!(config_manager.exec_regexps.len(), 3);
assert_eq!(config_manager.title_regexps.len(), 3);
assert_eq!(config_manager.class_regexps.len(), 3);
assert!(config_manager.class_regexps[0].is_none());
assert!(config_manager.class_regexps[1].is_some());
assert!(config_manager.class_regexps[2].is_none());
assert!(config_manager.class_regexps[sp1index].is_none());
assert!(config_manager.class_regexps[sp2index].is_some());
assert!(config_manager.class_regexps[sp3index].is_none());
assert!(config_manager.title_regexps[0].is_none());
assert!(config_manager.title_regexps[1].is_some());
assert!(config_manager.title_regexps[2].is_some());
assert!(config_manager.title_regexps[sp1index].is_none());
assert!(config_manager.title_regexps[sp2index].is_some());
assert!(config_manager.title_regexps[sp3index].is_some());
assert!(config_manager.exec_regexps[0].is_some());
assert!(config_manager.exec_regexps[1].is_none());
assert!(config_manager.exec_regexps[2].is_none());
assert!(config_manager.exec_regexps[sp1index].is_some());
assert!(config_manager.exec_regexps[sp2index].is_none());
assert!(config_manager.exec_regexps[sp3index].is_none());
}
#[test]
@ -297,21 +304,28 @@ mod tests {
let config_manager = RuntimeConfigManager::new(config_set.unwrap(), dummy_system_manager);
let sp1index = config_manager.set.specific
.iter().position(|x| x.name == "myname1").unwrap();
let sp2index = config_manager.set.specific
.iter().position(|x| x.name == "myname2").unwrap();
let sp3index = config_manager.set.specific
.iter().position(|x| x.name == "myname3").unwrap();
assert_eq!(config_manager.exec_regexps.len(), 3);
assert_eq!(config_manager.title_regexps.len(), 3);
assert_eq!(config_manager.class_regexps.len(), 3);
assert!(config_manager.class_regexps[0].is_none());
assert!(config_manager.class_regexps[1].is_some());
assert!(config_manager.class_regexps[2].is_none());
assert!(config_manager.class_regexps[sp1index].is_none());
assert!(config_manager.class_regexps[sp2index].is_some());
assert!(config_manager.class_regexps[sp3index].is_none());
assert!(config_manager.title_regexps[0].is_none());
assert!(config_manager.title_regexps[1].is_none());
assert!(config_manager.title_regexps[2].is_some());
assert!(config_manager.title_regexps[sp1index].is_none());
assert!(config_manager.title_regexps[sp2index].is_none());
assert!(config_manager.title_regexps[sp3index].is_some());
assert!(config_manager.exec_regexps[0].is_none());
assert!(config_manager.exec_regexps[1].is_none());
assert!(config_manager.exec_regexps[2].is_none());
assert!(config_manager.exec_regexps[sp1index].is_none());
assert!(config_manager.exec_regexps[sp2index].is_none());
assert!(config_manager.exec_regexps[sp3index].is_none());
}
#[test]