1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 11:37:44 +00:00

Merge pull request #6141 from BenWiederhake/dev-tr-space-class

tr: fix "space" class, test "blank" class for order
This commit is contained in:
Daniel Hofstetter 2024-03-29 16:20:49 +01:00 committed by GitHub
commit 20a5e9669c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 31 additions and 1 deletions

View file

@ -12,4 +12,4 @@ pub static FF: u8 = 0xC;
pub static CR: u8 = 0xD;
pub static SPACE: u8 = 0x20;
pub static SPACES: &[u8] = &[HT, LF, VT, FF, CR, SPACE];
pub static BLANK: &[u8] = &[SPACE, HT];
pub static BLANK: &[u8] = &[HT, SPACE];

View file

@ -1283,3 +1283,33 @@ fn test_complement_flag_fails_with_more_than_two_operand() {
.fails()
.stderr_contains("extra operand 'c'");
}
#[test]
fn check_regression_class_space() {
// This invocation checks:
// 1. that the [:space:] class has exactly 6 characters,
// 2. that the [:space:] class contains at least the given 6 characters (and therefore no other characters), and
// 3. that the given characters occur in exactly this order.
new_ucmd!()
.args(&["[:space:][:upper:]", "123456[:lower:]"])
// 0x0B = "\v" ("VERTICAL TAB")
// 0x0C = "\f" ("FEED FORWARD")
.pipe_in("A\t\n\u{0B}\u{0C}\r B")
.succeeds()
.no_stderr()
.stdout_only("a123456b");
}
#[test]
fn check_regression_class_blank() {
// This invocation checks:
// 1. that the [:blank:] class has exactly 2 characters,
// 2. that the [:blank:] class contains at least the given 2 characters (and therefore no other characters), and
// 3. that the given characters occur in exactly this order.
new_ucmd!()
.args(&["[:blank:][:upper:]", "12[:lower:]"])
.pipe_in("A\t B")
.succeeds()
.no_stderr()
.stdout_only("a12b");
}