Skip to content

Commit e96ddc0

Browse files
authored
Merge pull request #10489 from dezgeg/fix_test_ws
test: Trim whitespace in integer comparisons
2 parents 5ccce19 + 5500e1c commit e96ddc0

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

src/uu/test/src/test.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,13 @@ fn integers(a: &OsStr, b: &OsStr, op: &OsStr) -> ParseResult<bool> {
183183
// Parse the two inputs
184184
let a: i128 = a
185185
.to_str()
186+
.map(|s| s.trim())
186187
.and_then(|s| s.parse().ok())
187188
.ok_or_else(|| ParseError::InvalidInteger(a.quote().to_string()))?;
188189

189190
let b: i128 = b
190191
.to_str()
192+
.map(|s| s.trim())
191193
.and_then(|s| s.parse().ok())
192194
.ok_or_else(|| ParseError::InvalidInteger(b.quote().to_string()))?;
193195

@@ -229,6 +231,7 @@ fn files(a: &OsStr, b: &OsStr, op: &OsStr) -> ParseResult<bool> {
229231

230232
fn isatty(fd: &OsStr) -> ParseResult<bool> {
231233
fd.to_str()
234+
.map(|s| s.trim())
232235
.and_then(|s| s.parse().ok())
233236
.ok_or_else(|| ParseError::InvalidInteger(fd.quote().to_string()))
234237
.map(|i| unsafe { libc::isatty(i) == 1 })

tests/by-util/test_test.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,26 @@ fn test_invalid_utf8_integer_compare() {
314314
.stderr_is("test: invalid integer $'fo\\x80o'\n");
315315
}
316316

317+
#[test]
318+
fn test_integer_whitespace_stripping() {
319+
new_ucmd!().args(&["42", "-eq", " 42 "]).succeeds();
320+
new_ucmd!().args(&["42", "-eq", " 42"]).succeeds();
321+
new_ucmd!().args(&["42", "-eq", "42 "]).succeeds();
322+
new_ucmd!().args(&[" 42 ", "-eq", "42"]).succeeds();
323+
324+
new_ucmd!().args(&["42", "-eq", "\t42"]).succeeds();
325+
new_ucmd!().args(&["42", "-eq", "\n42"]).succeeds();
326+
new_ucmd!().args(&["42", "-eq", "\x0b42"]).succeeds(); // Vertical tab
327+
new_ucmd!().args(&["42", "-eq", "\x0c42"]).succeeds(); // Form feed
328+
new_ucmd!().args(&["42", "-eq", "\r42"]).succeeds();
329+
}
330+
331+
#[test]
332+
fn test_isatty_whitespace_stripping() {
333+
new_ucmd!().args(&["-t", " 0 "]).fails_with_code(1);
334+
new_ucmd!().args(&["-t", "\n0\t"]).fails_with_code(1);
335+
}
336+
317337
#[test]
318338
#[cfg(unix)]
319339
fn test_file_is_itself() {

0 commit comments

Comments
 (0)