mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-09-15 19:36:16 +00:00
touch: add support for --ref and --date together
This commit resolves issue #4608. To make it relatively straightforward to implement I have taken some code from parse_date and put it inside a function parse_relative_time. This commit changes and adds some test as well to work with the new functionality.
This commit is contained in:
parent
da15928d71
commit
19e456fe2a
2 changed files with 101 additions and 47 deletions
|
@ -251,14 +251,39 @@ fn test_touch_set_both_date_and_reference() {
|
|||
let ref_file = "test_touch_reference";
|
||||
let file = "test_touch_set_both_date_and_reference";
|
||||
|
||||
let start_of_year = str_to_filetime("%Y%m%d%H%M", "201501010000");
|
||||
let start_of_year = str_to_filetime("%Y%m%d%H%M", "201501011234");
|
||||
|
||||
at.touch(ref_file);
|
||||
set_file_times(&at, ref_file, start_of_year, start_of_year);
|
||||
assert!(at.file_exists(ref_file));
|
||||
|
||||
ucmd.args(&["-d", "Thu Jan 01 12:34:00 2015", "-r", ref_file, file])
|
||||
.fails();
|
||||
.succeeds()
|
||||
.no_stderr();
|
||||
let (atime, mtime) = get_file_times(&at, file);
|
||||
assert_eq!(atime, start_of_year);
|
||||
assert_eq!(mtime, start_of_year);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_touch_set_both_offset_date_and_reference() {
|
||||
let (at, mut ucmd) = at_and_ucmd!();
|
||||
let ref_file = "test_touch_reference";
|
||||
let file = "test_touch_set_both_date_and_reference";
|
||||
|
||||
let start_of_year = str_to_filetime("%Y%m%d%H%M", "201501011234");
|
||||
let five_days_later = str_to_filetime("%Y%m%d%H%M", "201501061234");
|
||||
|
||||
at.touch(ref_file);
|
||||
set_file_times(&at, ref_file, start_of_year, start_of_year);
|
||||
assert!(at.file_exists(ref_file));
|
||||
|
||||
ucmd.args(&["-d", "+5 days", "-r", ref_file, file])
|
||||
.succeeds()
|
||||
.no_stderr();
|
||||
let (atime, mtime) = get_file_times(&at, file);
|
||||
assert_eq!(atime, five_days_later);
|
||||
assert_eq!(mtime, five_days_later);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue