From c729e226da0a4696ccee47d62f6627a406d07f6f Mon Sep 17 00:00:00 2001 From: ariasuni Date: Fri, 9 Apr 2021 16:16:05 +0200 Subject: [PATCH 1/4] Fix EXA_GRID_ROWS not working in some cases --- src/output/grid_details.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/output/grid_details.rs b/src/output/grid_details.rs index df8e53c..35ff023 100644 --- a/src/output/grid_details.rs +++ b/src/output/grid_details.rs @@ -174,22 +174,21 @@ impl<'a> Render<'a> { }; if the_grid_fits { - if column_count == file_names.len() { - return Some((grid, column_count)); - } else { - last_working_grid = grid; - } - } else { - // If we’ve figured out how many columns can fit in the user’s - // terminal, and it turns out there aren’t enough rows to - // make it worthwhile, then just resort to the lines view. + last_working_grid = grid; + } + + if !the_grid_fits || column_count == file_names.len() { + let last_column_count = if the_grid_fits { column_count } else { column_count - 1 }; + // If we’ve figured out how many columns can fit in the user’s terminal, + // and it turns out there aren’t enough rows to make it worthwhile + // (according to EXA_GRID_ROWS), then just resort to the lines view. if let RowThreshold::MinimumRows(thresh) = self.row_threshold { - if last_working_grid.fit_into_columns(column_count - 1).row_count() < thresh { + if last_working_grid.fit_into_columns(last_column_count).row_count() < thresh { return None; } } - return Some((last_working_grid, column_count - 1)); + return Some((last_working_grid, last_column_count)); } } From 050931e48fefacf57badfaeda9aecc98685c6787 Mon Sep 17 00:00:00 2001 From: ariasuni Date: Fri, 9 Apr 2021 16:29:31 +0200 Subject: [PATCH 2/4] Fix a typo in test descriptions --- xtests/grid-details-view.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xtests/grid-details-view.toml b/xtests/grid-details-view.toml index a76ba15..7289956 100644 --- a/xtests/grid-details-view.toml +++ b/xtests/grid-details-view.toml @@ -81,7 +81,7 @@ tags = [ 'env', 'long', 'grid' ] # check if exa is using the minimum number of columns with headers [[cmd]] -name = "‘COLUMN=200 exa -lGh’ with one file don’t produce extra columns even if there place for more" +name = "‘COLUMNS=200 exa -lGh’ with one file don’t produce extra columns even if there place for more" shell = "exa -lGh /testcases/files/10_bytes" environment = { COLUMNS = "200" } stdout = { file = "outputs/files_paths_long_grid_header_1file.ansitxt" } @@ -90,7 +90,7 @@ status = 0 tags = [ 'env', 'long', 'grid' ] [[cmd]] -name = "‘COLUMN=200 exa -lGh’ with several files don’t produce extra columns even if there place for more" +name = "‘COLUMNS=200 exa -lGh’ with several files don’t produce extra columns even if there place for more" shell = "exa -lGh /testcases/files/10_{bytes,KiB}" environment = { COLUMNS = "200" } stdout = { file = "outputs/files_paths_long_grid_header_2files.ansitxt" } From a0457f9c87bf9035e9daa19477ccaf7375ffcada Mon Sep 17 00:00:00 2001 From: ariasuni Date: Fri, 9 Apr 2021 17:24:33 +0200 Subject: [PATCH 3/4] Fix misleading name of some test files --- xtests/grid-details-view.toml | 4 ++-- ...der_1file.ansitxt => files_long_grid_header_1file.ansitxt} | 0 ...r_2files.ansitxt => files_long_grid_header_2files.ansitxt} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename xtests/outputs/{files_paths_long_grid_header_1file.ansitxt => files_long_grid_header_1file.ansitxt} (100%) rename xtests/outputs/{files_paths_long_grid_header_2files.ansitxt => files_long_grid_header_2files.ansitxt} (100%) diff --git a/xtests/grid-details-view.toml b/xtests/grid-details-view.toml index 7289956..cfe5d37 100644 --- a/xtests/grid-details-view.toml +++ b/xtests/grid-details-view.toml @@ -84,7 +84,7 @@ tags = [ 'env', 'long', 'grid' ] name = "‘COLUMNS=200 exa -lGh’ with one file don’t produce extra columns even if there place for more" shell = "exa -lGh /testcases/files/10_bytes" environment = { COLUMNS = "200" } -stdout = { file = "outputs/files_paths_long_grid_header_1file.ansitxt" } +stdout = { file = "outputs/files_long_grid_header_1file.ansitxt" } stderr = { empty = true } status = 0 tags = [ 'env', 'long', 'grid' ] @@ -93,7 +93,7 @@ tags = [ 'env', 'long', 'grid' ] name = "‘COLUMNS=200 exa -lGh’ with several files don’t produce extra columns even if there place for more" shell = "exa -lGh /testcases/files/10_{bytes,KiB}" environment = { COLUMNS = "200" } -stdout = { file = "outputs/files_paths_long_grid_header_2files.ansitxt" } +stdout = { file = "outputs/files_long_grid_header_2files.ansitxt" } stderr = { empty = true } status = 0 tags = [ 'env', 'long', 'grid' ] diff --git a/xtests/outputs/files_paths_long_grid_header_1file.ansitxt b/xtests/outputs/files_long_grid_header_1file.ansitxt similarity index 100% rename from xtests/outputs/files_paths_long_grid_header_1file.ansitxt rename to xtests/outputs/files_long_grid_header_1file.ansitxt diff --git a/xtests/outputs/files_paths_long_grid_header_2files.ansitxt b/xtests/outputs/files_long_grid_header_2files.ansitxt similarity index 100% rename from xtests/outputs/files_paths_long_grid_header_2files.ansitxt rename to xtests/outputs/files_long_grid_header_2files.ansitxt From beaf56108685e5dc3f73e9ed3da3576ed399d857 Mon Sep 17 00:00:00 2001 From: ariasuni Date: Fri, 9 Apr 2021 17:40:03 +0200 Subject: [PATCH 4/4] Add xtests for EXA_GRID_ROWS --- xtests/grid-details-view.toml | 30 +++++++++++++++++++ ...s_long_grid_exa_grid_rows_2_3files.ansitxt | 3 ++ ..._long_grid_exa_grid_rows_5_15files.ansitxt | 5 ++++ ..._long_grid_exa_grid_rows_6_15files.ansitxt | 15 ++++++++++ 4 files changed, 53 insertions(+) create mode 100644 xtests/outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt create mode 100644 xtests/outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt create mode 100644 xtests/outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt diff --git a/xtests/grid-details-view.toml b/xtests/grid-details-view.toml index cfe5d37..3488acf 100644 --- a/xtests/grid-details-view.toml +++ b/xtests/grid-details-view.toml @@ -97,3 +97,33 @@ stdout = { file = "outputs/files_long_grid_header_2files.ansitxt" } stderr = { empty = true } status = 0 tags = [ 'env', 'long', 'grid' ] + + +# check if EXA_GRID_ROWS is working + +[[cmd]] +name = "‘COLUMNS=200 EXA_GRID_ROWS=2 exa -lG’ with three files produces a grid details of 1 column" +shell = "exa -lG /testcases/files/1_*" +environment = { COLUMNS = "200", EXA_GRID_ROWS = "2" } +stdout = { file = "outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'env', 'long', 'grid' ] + +[[cmd]] +name = "‘COLUMNS=200 EXA_GRID_ROWS=5 exa -lG’ with 15 files produces a grid details of 3 columns" +shell = "exa -lG /testcases/files/1*" +environment = { COLUMNS = "200", EXA_GRID_ROWS = "5" } +stdout = { file = "outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'env', 'long', 'grid' ] + +[[cmd]] +name = "‘COLUMNS=200 EXA_GRID_ROWS=6 exa -lG’ with 15 files produces a grid details of 1 column" +shell = "exa -lG /testcases/files/1*" +environment = { COLUMNS = "200", EXA_GRID_ROWS = "6" } +stdout = { file = "outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'env', 'long', 'grid' ] diff --git a/xtests/outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt b/xtests/outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt new file mode 100644 index 0000000..1a50d75 --- /dev/null +++ b/xtests/outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt @@ -0,0 +1,3 @@ +.rw-r--r-- 1 cassowary  1 Jan 12:34 /testcases/files/1_bytes +.rw-r--r-- 1.0k cassowary  1 Jan 12:34 /testcases/files/1_KiB +.rw-r--r-- 1.0M cassowary  1 Jan 12:34 /testcases/files/1_MiB diff --git a/xtests/outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt b/xtests/outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt new file mode 100644 index 0000000..e02074e --- /dev/null +++ b/xtests/outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt @@ -0,0 +1,5 @@ +.rw-r--r-- 10 cassowary  1 Jan 12:34 /testcases/files/10_bytes .rw-r--r-- 12M cassowary  1 Jan 12:34 /testcases/files/11_MiB .rw-r--r-- 13k cassowary  1 Jan 12:34 /testcases/files/13_KiB +.rw-r--r-- 10k cassowary  1 Jan 12:34 /testcases/files/10_KiB .rw-r--r-- 12 cassowary  1 Jan 12:34 /testcases/files/12_bytes .rw-r--r-- 14M cassowary  1 Jan 12:34 /testcases/files/13_MiB +.rw-r--r-- 10M cassowary  1 Jan 12:34 /testcases/files/10_MiB .rw-r--r-- 12k cassowary  1 Jan 12:34 /testcases/files/12_KiB .rw-r--r-- 1 cassowary  1 Jan 12:34 /testcases/files/1_bytes +.rw-r--r-- 11 cassowary  1 Jan 12:34 /testcases/files/11_bytes .rw-r--r-- 13M cassowary  1 Jan 12:34 /testcases/files/12_MiB .rw-r--r-- 1.0k cassowary  1 Jan 12:34 /testcases/files/1_KiB +.rw-r--r-- 11k cassowary  1 Jan 12:34 /testcases/files/11_KiB .rw-r--r-- 13 cassowary  1 Jan 12:34 /testcases/files/13_bytes .rw-r--r-- 1.0M cassowary  1 Jan 12:34 /testcases/files/1_MiB diff --git a/xtests/outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt b/xtests/outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt new file mode 100644 index 0000000..98ff7d1 --- /dev/null +++ b/xtests/outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt @@ -0,0 +1,15 @@ +.rw-r--r-- 1 cassowary  1 Jan 12:34 /testcases/files/1_bytes +.rw-r--r-- 1.0k cassowary  1 Jan 12:34 /testcases/files/1_KiB +.rw-r--r-- 1.0M cassowary  1 Jan 12:34 /testcases/files/1_MiB +.rw-r--r-- 10 cassowary  1 Jan 12:34 /testcases/files/10_bytes +.rw-r--r-- 10k cassowary  1 Jan 12:34 /testcases/files/10_KiB +.rw-r--r-- 10M cassowary  1 Jan 12:34 /testcases/files/10_MiB +.rw-r--r-- 11 cassowary  1 Jan 12:34 /testcases/files/11_bytes +.rw-r--r-- 11k cassowary  1 Jan 12:34 /testcases/files/11_KiB +.rw-r--r-- 12M cassowary  1 Jan 12:34 /testcases/files/11_MiB +.rw-r--r-- 12 cassowary  1 Jan 12:34 /testcases/files/12_bytes +.rw-r--r-- 12k cassowary  1 Jan 12:34 /testcases/files/12_KiB +.rw-r--r-- 13M cassowary  1 Jan 12:34 /testcases/files/12_MiB +.rw-r--r-- 13 cassowary  1 Jan 12:34 /testcases/files/13_bytes +.rw-r--r-- 13k cassowary  1 Jan 12:34 /testcases/files/13_KiB +.rw-r--r-- 14M cassowary  1 Jan 12:34 /testcases/files/13_MiB