1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-27 19:17:43 +00:00

ls: add -T support and fix --classify output (#7616)

* add -T option parsing

* add usage of tab_size in display_grid

* fix test_ls_columns with \t

since this behavior is on by default

* update test_tabsize_formatting

* use grid DEFAULT_SEPARATOR_SIZE

* update Tabs

* fix test with column width

* fix cspell

* fix linter warning on match bool

* add comment for 0 tab_size

* update tabsize test with -C

* update one of the tabs tests to use -x

* remove comment and split tests for both x/C args
This commit is contained in:
Leo Emar-Kar 2025-04-17 13:29:22 +01:00 committed by GitHub
parent 8487e12057
commit 538355fb67
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 75 additions and 26 deletions

View file

@ -837,7 +837,7 @@ fn test_ls_columns() {
for option in COLUMN_ARGS {
let result = scene.ucmd().arg(option).succeeds();
result.stdout_only("test-columns-1 test-columns-2 test-columns-3 test-columns-4\n");
result.stdout_only("test-columns-1\ttest-columns-2\ttest-columns-3\ttest-columns-4\n");
}
for option in COLUMN_ARGS {
@ -846,7 +846,7 @@ fn test_ls_columns() {
.arg("-w=40")
.arg(option)
.succeeds()
.stdout_only("test-columns-1 test-columns-3\ntest-columns-2 test-columns-4\n");
.stdout_only("test-columns-1\ttest-columns-3\ntest-columns-2\ttest-columns-4\n");
}
// On windows we are always able to get the terminal size, so we can't simulate falling back to the
@ -859,7 +859,7 @@ fn test_ls_columns() {
.env("COLUMNS", "40")
.arg(option)
.succeeds()
.stdout_only("test-columns-1 test-columns-3\ntest-columns-2 test-columns-4\n");
.stdout_only("test-columns-1\ttest-columns-3\ntest-columns-2\ttest-columns-4\n");
}
scene
@ -867,7 +867,7 @@ fn test_ls_columns() {
.env("COLUMNS", "garbage")
.arg("-C")
.succeeds()
.stdout_is("test-columns-1 test-columns-2 test-columns-3 test-columns-4\n")
.stdout_is("test-columns-1\ttest-columns-2\ttest-columns-3\ttest-columns-4\n")
.stderr_is("ls: ignoring invalid width in environment variable COLUMNS: 'garbage'\n");
}
scene
@ -4366,28 +4366,52 @@ fn test_tabsize_option() {
scene.ucmd().arg("-T").fails();
}
#[ignore = "issue #3624"]
#[test]
fn test_tabsize_formatting() {
let (at, mut ucmd) = at_and_ucmd!();
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;
at.touch("aaaaaaaa");
at.touch("bbbb");
at.touch("cccc");
at.touch("dddddddd");
ucmd.args(&["-T", "4"])
scene
.ucmd()
.args(&["-x", "-w18", "-T4"])
.succeeds()
.stdout_is("aaaaaaaa bbbb\ncccc\t dddddddd");
.stdout_is("aaaaaaaa bbbb\ncccc\t dddddddd\n");
ucmd.args(&["-T", "2"])
scene
.ucmd()
.args(&["-C", "-w18", "-T4"])
.succeeds()
.stdout_is("aaaaaaaa bbbb\ncccc\t\t dddddddd");
.stdout_is("aaaaaaaa cccc\nbbbb\t dddddddd\n");
scene
.ucmd()
.args(&["-x", "-w18", "-T2"])
.succeeds()
.stdout_is("aaaaaaaa\tbbbb\ncccc\t\t\tdddddddd\n");
scene
.ucmd()
.args(&["-C", "-w18", "-T2"])
.succeeds()
.stdout_is("aaaaaaaa\tcccc\nbbbb\t\t\tdddddddd\n");
scene
.ucmd()
.args(&["-x", "-w18", "-T0"])
.succeeds()
.stdout_is("aaaaaaaa bbbb\ncccc dddddddd\n");
// use spaces
ucmd.args(&["-T", "0"])
scene
.ucmd()
.args(&["-C", "-w18", "-T0"])
.succeeds()
.stdout_is("aaaaaaaa bbbb\ncccc dddddddd");
.stdout_is("aaaaaaaa cccc\nbbbb dddddddd\n");
}
#[cfg(any(