mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-24 14:59:22 +00:00
fix(ci): fix tests
This commit is contained in:
@@ -125,17 +125,27 @@ fn parse_clean_flags(args: &[String]) -> Result<CleanFlags, String> {
|
||||
fn clean_from_root(root: &Path, flags: &CleanFlags) -> Result<(), String> {
|
||||
let config = Config::open("./dcr.toml").map_err(|err| err.to_string())?;
|
||||
|
||||
let target = flags
|
||||
.target
|
||||
.clone()
|
||||
.or_else(|| {
|
||||
config
|
||||
.get("build.target")
|
||||
.and_then(|v| v.as_str())
|
||||
.map(|s| s.trim().to_string())
|
||||
.filter(|s| !s.is_empty())
|
||||
})
|
||||
.or_else(|| Some(default_target_triple()));
|
||||
let target = flags.target.clone().or_else(|| {
|
||||
config
|
||||
.get("build.target")
|
||||
.and_then(|v| v.as_str())
|
||||
.map(|s| s.trim().to_string())
|
||||
.filter(|s| !s.is_empty())
|
||||
});
|
||||
let target = match target {
|
||||
Some(t) => Some(crate::utils::build::normalize_target_os(&t).to_string()),
|
||||
None if cfg!(target_os = "linux")
|
||||
|| cfg!(any(
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly"
|
||||
)) =>
|
||||
{
|
||||
Some(default_target_triple())
|
||||
}
|
||||
None => None,
|
||||
};
|
||||
|
||||
if flags.all
|
||||
&& let Some(workspace) = parse_workspace(
|
||||
|
||||
@@ -898,6 +898,9 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn needs_rebuild_header_modified() {
|
||||
use std::fs::{File, FileTimes};
|
||||
use std::time::{Duration, SystemTime};
|
||||
|
||||
let dir = temp_dir("rebuild_header");
|
||||
let src = dir.join("test.c");
|
||||
let header = dir.join("test.h");
|
||||
@@ -906,9 +909,33 @@ mod tests {
|
||||
|
||||
fs::write(&src, "int main() {}").unwrap();
|
||||
fs::write(&header, "#define A 1").unwrap();
|
||||
std::thread::sleep(std::time::Duration::from_millis(1100));
|
||||
fs::write(&obj, "").unwrap();
|
||||
|
||||
let past = SystemTime::now() - Duration::from_secs(30);
|
||||
let now = SystemTime::now();
|
||||
let future = now + Duration::from_secs(30);
|
||||
|
||||
let past_t = FileTimes::new().set_modified(past);
|
||||
File::options()
|
||||
.write(true)
|
||||
.open(&src)
|
||||
.unwrap()
|
||||
.set_times(past_t)
|
||||
.unwrap();
|
||||
File::options()
|
||||
.write(true)
|
||||
.open(&header)
|
||||
.unwrap()
|
||||
.set_times(past_t)
|
||||
.unwrap();
|
||||
let now_t = FileTimes::new().set_modified(now);
|
||||
File::options()
|
||||
.write(true)
|
||||
.open(&obj)
|
||||
.unwrap()
|
||||
.set_times(now_t)
|
||||
.unwrap();
|
||||
|
||||
let d_content = format!(
|
||||
"{}: {} {}",
|
||||
obj.to_string_lossy(),
|
||||
@@ -922,8 +949,13 @@ mod tests {
|
||||
"should be fresh"
|
||||
);
|
||||
|
||||
std::thread::sleep(std::time::Duration::from_millis(1100));
|
||||
fs::write(&header, "#define A 2").unwrap();
|
||||
let future_t = FileTimes::new().set_modified(future);
|
||||
File::options()
|
||||
.write(true)
|
||||
.open(&header)
|
||||
.unwrap()
|
||||
.set_times(future_t)
|
||||
.unwrap();
|
||||
|
||||
assert!(
|
||||
needs_rebuild(&src.to_string_lossy(), &obj.to_string_lossy()),
|
||||
|
||||
Reference in New Issue
Block a user