mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
split: suffix auto-widening and auto-width tests
This commit is contained in:
parent
733359d48b
commit
fbb454a080
2 changed files with 79 additions and 1 deletions
|
@ -769,8 +769,13 @@ fn suffix_from(
|
||||||
&& !(matches.value_source(OPT_SUFFIX_LENGTH) == Some(ValueSource::CommandLine)
|
&& !(matches.value_source(OPT_SUFFIX_LENGTH) == Some(ValueSource::CommandLine)
|
||||||
&& suffix_length > 0)
|
&& suffix_length > 0)
|
||||||
{
|
{
|
||||||
|
// with auto-width ON the auto-widening is OFF
|
||||||
suffix_auto_widening = false;
|
suffix_auto_widening = false;
|
||||||
suffix_length = required_suffix_length;
|
|
||||||
|
// do not reduce suffix length with auto-width
|
||||||
|
if suffix_length < required_suffix_length {
|
||||||
|
suffix_length = required_suffix_length;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if suffix_length < required_suffix_length {
|
if suffix_length < required_suffix_length {
|
||||||
|
|
|
@ -824,6 +824,79 @@ fn test_hex_dynamic_suffix_length() {
|
||||||
assert_eq!(file_read(&at, "xf000"), "a");
|
assert_eq!(file_read(&at, "xf000"), "a");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Test for dynamic suffix length (auto-widening) disabled when suffix start number is specified
|
||||||
|
#[test]
|
||||||
|
fn test_dynamic_suffix_length_off_with_suffix_start() {
|
||||||
|
new_ucmd!()
|
||||||
|
.args(&["-b", "1", "--numeric-suffixes=89", "ninetyonebytes.txt"])
|
||||||
|
.fails()
|
||||||
|
.stderr_only("split: output file suffixes exhausted\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test for dynamic suffix length (auto-widening) enabled when suffix start number is NOT specified
|
||||||
|
#[test]
|
||||||
|
fn test_dynamic_suffix_length_on_with_suffix_start_no_value() {
|
||||||
|
let (at, mut ucmd) = at_and_ucmd!();
|
||||||
|
ucmd.args(&["-b", "1", "--numeric-suffixes", "ninetyonebytes.txt"])
|
||||||
|
.succeeds();
|
||||||
|
assert_eq!(file_read(&at, "x9000"), "a");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test for suffix auto-width with --number strategy and suffix start number
|
||||||
|
#[test]
|
||||||
|
fn test_suffix_auto_width_with_number() {
|
||||||
|
let (at, mut ucmd) = at_and_ucmd!();
|
||||||
|
ucmd.args(&["--numeric-suffixes=1", "--number=r/100", "fivelines.txt"])
|
||||||
|
.succeeds();
|
||||||
|
let glob = Glob::new(&at, ".", r"x\d\d\d$");
|
||||||
|
assert_eq!(glob.count(), 100);
|
||||||
|
assert_eq!(glob.collate(), at.read_bytes("fivelines.txt"));
|
||||||
|
assert_eq!(file_read(&at, "x001"), "1\n");
|
||||||
|
assert_eq!(file_read(&at, "x100"), "");
|
||||||
|
|
||||||
|
new_ucmd!()
|
||||||
|
.args(&["--numeric-suffixes=100", "--number=r/100", "fivelines.txt"])
|
||||||
|
.fails();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test for edge case of specifying 0 for suffix length
|
||||||
|
#[test]
|
||||||
|
fn test_suffix_length_zero() {
|
||||||
|
let (at, mut ucmd) = at_and_ucmd!();
|
||||||
|
ucmd.args(&[
|
||||||
|
"--numeric-suffixes=1",
|
||||||
|
"--number=r/100",
|
||||||
|
"-a",
|
||||||
|
"0",
|
||||||
|
"fivelines.txt",
|
||||||
|
])
|
||||||
|
.succeeds();
|
||||||
|
let glob = Glob::new(&at, ".", r"x\d\d\d$");
|
||||||
|
assert_eq!(glob.count(), 100);
|
||||||
|
|
||||||
|
new_ucmd!()
|
||||||
|
.args(&[
|
||||||
|
"--numeric-suffixes=100",
|
||||||
|
"--number=r/100",
|
||||||
|
"-a",
|
||||||
|
"0",
|
||||||
|
"fivelines.txt",
|
||||||
|
])
|
||||||
|
.fails();
|
||||||
|
|
||||||
|
new_ucmd!()
|
||||||
|
.args(&[
|
||||||
|
"-b",
|
||||||
|
"1",
|
||||||
|
"--numeric-suffixes=89",
|
||||||
|
"-a",
|
||||||
|
"0",
|
||||||
|
"ninetyonebytes.txt",
|
||||||
|
])
|
||||||
|
.fails()
|
||||||
|
.stderr_only("split: output file suffixes exhausted\n");
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_suffixes_exhausted() {
|
fn test_suffixes_exhausted() {
|
||||||
new_ucmd!()
|
new_ucmd!()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue