mirror of
https://github.com/nushell/nushell.git
synced 2024-12-25 00:19:39 +01:00
Return error early if seconds part of timestamp is invalid (#6193)
Signed-off-by: nibon7 <nibon7@163.com>
This commit is contained in:
parent
dd2a0e35f4
commit
26caf7e1b2
@ -121,7 +121,15 @@ impl Command for Touch {
|
|||||||
|
|
||||||
// Checks for the seconds stamp and removes the '.' delimiter if any
|
// Checks for the seconds stamp and removes the '.' delimiter if any
|
||||||
let (val, has_sec): (String, bool) = match stamp.split_once('.') {
|
let (val, has_sec): (String, bool) = match stamp.split_once('.') {
|
||||||
Some((dtime, sec)) => (format!("{}{}", dtime, sec), true),
|
Some((dtime, sec)) => match sec.parse::<u8>() {
|
||||||
|
Ok(sec) if sec < 60 => (format!("{}{}", dtime, sec), true),
|
||||||
|
_ => {
|
||||||
|
return Err(ShellError::UnsupportedInput(
|
||||||
|
"input has an invalid timestamp".to_string(),
|
||||||
|
span,
|
||||||
|
))
|
||||||
|
}
|
||||||
|
},
|
||||||
None => (stamp.to_string(), false),
|
None => (stamp.to_string(), false),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -180,6 +180,34 @@ fn errors_if_change_modified_time_of_file_with_invalid_timestamp() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
assert!(outcome.err.contains("input has an invalid timestamp"));
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -m -t 082412.3012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -m -t 0824.123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -m -t 08.24123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -m -t 0.824123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -401,6 +429,34 @@ fn errors_if_change_access_time_of_file_with_invalid_timestamp() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
assert!(outcome.err.contains("input has an invalid timestamp"));
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -a -t 082412.3012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -a -t 0824.123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -a -t 08.24123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -a -t 0.824123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -634,6 +690,34 @@ fn errors_if_change_modified_and_access_time_of_file_with_invalid_timestamp() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
assert!(outcome.err.contains("input has an invalid timestamp"));
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -m -a -t 082412.3012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -m -a -t 0824.123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -m -a -t 08.24123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
|
|
||||||
|
outcome = nu!(
|
||||||
|
cwd: dirs.test(),
|
||||||
|
"touch -m -a -t 0.824123012 file.txt"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(outcome.err.contains("input has an invalid timestamp"));
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user