diff --git a/tests/by-util/test_pr.rs b/tests/by-util/test_pr.rs index 59d3c6c64..66f4f1309 100644 --- a/tests/by-util/test_pr.rs +++ b/tests/by-util/test_pr.rs @@ -18,11 +18,7 @@ fn file_last_modified_time(ucmd: &UCommand, path: &str) -> String { i.modified() .map(|x| { let date_time: OffsetDateTime = x.into(); - let offset = OffsetDateTime::now_local().unwrap().offset(); - date_time - .to_offset(offset) - .format(&DATE_TIME_FORMAT) - .unwrap() + date_time.format(&DATE_TIME_FORMAT).unwrap() }) .unwrap_or_default() }) @@ -42,7 +38,7 @@ fn all_minutes(from: OffsetDateTime, to: OffsetDateTime) -> Vec { } fn valid_last_modified_template_vars(from: OffsetDateTime) -> Vec> { - all_minutes(from, OffsetDateTime::now_local().unwrap()) + all_minutes(from, OffsetDateTime::now_utc()) .into_iter() .map(|time| vec![("{last_modified_time}".to_string(), time)]) .collect() @@ -258,7 +254,7 @@ fn test_with_suppress_error_option() { fn test_with_stdin() { let expected_file_path = "stdin.log.expected"; let mut scenario = new_ucmd!(); - let start = OffsetDateTime::now_local().unwrap(); + let start = OffsetDateTime::now_utc(); scenario .pipe_in_fixture("stdin.log") .args(&["--pages=1:2", "-n", "-"]) @@ -321,7 +317,7 @@ fn test_with_mpr() { let expected_test_file_path = "mpr.log.expected"; let expected_test_file_path1 = "mpr1.log.expected"; let expected_test_file_path2 = "mpr2.log.expected"; - let start = OffsetDateTime::now_local().unwrap(); + let start = OffsetDateTime::now_utc(); new_ucmd!() .args(&["--pages=1:2", "-m", "-n", test_file_path, test_file_path1]) .succeeds() @@ -330,7 +326,7 @@ fn test_with_mpr() { &valid_last_modified_template_vars(start), ); - let start = OffsetDateTime::now_local().unwrap(); + let start = OffsetDateTime::now_utc(); new_ucmd!() .args(&["--pages=2:4", "-m", "-n", test_file_path, test_file_path1]) .succeeds() @@ -339,7 +335,7 @@ fn test_with_mpr() { &valid_last_modified_template_vars(start), ); - let start = OffsetDateTime::now_local().unwrap(); + let start = OffsetDateTime::now_utc(); new_ucmd!() .args(&[ "--pages=1:2", @@ -446,7 +442,7 @@ fn test_with_join_lines_option() { let test_file_2 = "test.log"; let expected_file_path = "joined.log.expected"; let mut scenario = new_ucmd!(); - let start = OffsetDateTime::now_local().unwrap(); + let start = OffsetDateTime::now_utc(); scenario .args(&["+1:2", "-J", "-m", test_file_1, test_file_2]) .run() diff --git a/tests/by-util/test_touch.rs b/tests/by-util/test_touch.rs index a0d3fd3dc..6267e018e 100644 --- a/tests/by-util/test_touch.rs +++ b/tests/by-util/test_touch.rs @@ -49,12 +49,7 @@ fn str_to_filetime(format: &str, s: &str) -> FileTime { _ => panic!("unexpected dt format"), }; let tm = time::PrimitiveDateTime::parse(s, &format_description).unwrap(); - let d = match time::OffsetDateTime::now_local() { - Ok(now) => now, - Err(e) => { - panic!("Error {e} retrieving the OffsetDateTime::now_local"); - } - }; + let d = time::OffsetDateTime::now_utc(); let offset_dt = tm.assume_offset(d.offset()); FileTime::from_unix_time(offset_dt.unix_timestamp(), tm.nanosecond()) } diff --git a/tests/common/util.rs b/tests/common/util.rs index 4005c87d9..04876bcd3 100644 --- a/tests/common/util.rs +++ b/tests/common/util.rs @@ -48,6 +48,9 @@ static NO_STDIN_MEANINGLESS: &str = "Setting this flag has no effect if there is pub const TESTS_BINARY: &str = env!("CARGO_BIN_EXE_coreutils"); +/// Default environment variables to run the commands with +const DEFAULT_ENV: [(&str, &str); 2] = [("LC_ALL", "C"), ("TZ", "UTC")]; + /// Test if the program is running under CI pub fn is_ci() -> bool { std::env::var("CI") @@ -1340,6 +1343,18 @@ impl UCommand { self } + pub fn envs(&mut self, iter: I) -> &mut Self + where + I: IntoIterator, + K: AsRef, + V: AsRef, + { + for (k, v) in iter { + self.env(k, v); + } + self + } + #[cfg(any(target_os = "linux", target_os = "android"))] pub fn limit( &mut self, @@ -1454,7 +1469,9 @@ impl UCommand { } } - command.envs(self.env_vars.iter().cloned()); + command + .envs(DEFAULT_ENV) + .envs(self.env_vars.iter().cloned()); if self.timeout.is_none() { self.timeout = Some(Duration::from_secs(30)); @@ -2456,7 +2473,7 @@ pub fn expected_result(ts: &TestScenario, args: &[&str]) -> std::result::Result< let result = ts .cmd(util_name.as_ref()) .keep_env() - .env("LC_ALL", "C") + .envs(DEFAULT_ENV) .args(args) .run(); @@ -2521,7 +2538,7 @@ pub fn run_ucmd_as_root( // check if we can run 'sudo' log_info("run", "sudo -E --non-interactive whoami"); match Command::new("sudo") - .env("LC_ALL", "C") + .envs(DEFAULT_ENV) .args(["-E", "--non-interactive", "whoami"]) .output() { @@ -2531,7 +2548,7 @@ pub fn run_ucmd_as_root( Ok(ts .cmd("sudo") .keep_env() - .env("LC_ALL", "C") + .envs(DEFAULT_ENV) .arg("-E") .arg("--non-interactive") .arg(&ts.bin_path)