touch: accept "modify" & "mtime" for --time arg

This commit is contained in:
Daniel Hofstetter 2023-07-08 16:13:35 +02:00
parent 24c2743e10
commit 6f91371e61
2 changed files with 27 additions and 19 deletions

View file

@ -295,7 +295,7 @@ pub fn uu_app() -> Command {
equivalent to -m", equivalent to -m",
) )
.value_name("WORD") .value_name("WORD")
.value_parser(["access", "atime", "use"]), .value_parser(["access", "atime", "use", "modify", "mtime"]),
) )
.arg( .arg(
Arg::new(ARG_FILES) Arg::new(ARG_FILES)

View file

@ -204,19 +204,23 @@ fn test_touch_set_cymdhms_time() {
#[test] #[test]
fn test_touch_set_only_atime() { fn test_touch_set_only_atime() {
let (at, mut ucmd) = at_and_ucmd!(); let atime_args = ["-a", "--time=access", "--time=atime", "--time=use"];
let file = "test_touch_set_only_atime"; let file = "test_touch_set_only_atime";
ucmd.args(&["-t", "201501011234", "-a", file]) for atime_arg in atime_args {
.succeeds() let (at, mut ucmd) = at_and_ucmd!();
.no_stderr();
assert!(at.file_exists(file)); ucmd.args(&["-t", "201501011234", atime_arg, file])
.succeeds()
.no_stderr();
let start_of_year = str_to_filetime("%Y%m%d%H%M", "201501010000"); assert!(at.file_exists(file));
let (atime, mtime) = get_file_times(&at, file);
assert!(atime != mtime); let start_of_year = str_to_filetime("%Y%m%d%H%M", "201501010000");
assert_eq!(atime.unix_seconds() - start_of_year.unix_seconds(), 45240); let (atime, mtime) = get_file_times(&at, file);
assert!(atime != mtime);
assert_eq!(atime.unix_seconds() - start_of_year.unix_seconds(), 45240);
}
} }
#[test] #[test]
@ -301,19 +305,23 @@ fn test_touch_set_both_time_and_date() {
#[test] #[test]
fn test_touch_set_only_mtime() { fn test_touch_set_only_mtime() {
let (at, mut ucmd) = at_and_ucmd!(); let mtime_args = ["-m", "--time=modify", "--time=mtime"];
let file = "test_touch_set_only_mtime"; let file = "test_touch_set_only_mtime";
ucmd.args(&["-t", "201501011234", "-m", file]) for mtime_arg in mtime_args {
.succeeds() let (at, mut ucmd) = at_and_ucmd!();
.no_stderr();
assert!(at.file_exists(file)); ucmd.args(&["-t", "201501011234", mtime_arg, file])
.succeeds()
.no_stderr();
let start_of_year = str_to_filetime("%Y%m%d%H%M", "201501010000"); assert!(at.file_exists(file));
let (atime, mtime) = get_file_times(&at, file);
assert!(atime != mtime); let start_of_year = str_to_filetime("%Y%m%d%H%M", "201501010000");
assert_eq!(mtime.unix_seconds() - start_of_year.unix_seconds(), 45240); let (atime, mtime) = get_file_times(&at, file);
assert!(atime != mtime);
assert_eq!(mtime.unix_seconds() - start_of_year.unix_seconds(), 45240);
}
} }
#[test] #[test]