1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 12:07:46 +00:00

Merge pull request #5058 from cakebaker/touch_fix_time

touch: accept "modify" & "mtime" for --time arg
This commit is contained in:
Sylvestre Ledru 2023-07-08 18:21:52 +02:00 committed by GitHub
commit d21f1b374d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 19 deletions

View file

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

View file

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