git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] test: fix for COLUMNS and bash 5

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Aug 5, 2021, 19:48 UTC
Message-ID
<20210805194825.1796765-1-felipe.contreras@gmail.com>

Since c49a177bec (test-lib.sh: set COLUMNS=80 for --verbose repeatability, 2021-06-29) multiple tests have been failing when using bash 5 because checkwinsize is enabled by default, therefore COLUMNS is reset using TIOCGWINSZ even for non-interactive shells.

It's debatable whether or not bash should even be doing that, but for now we can avoid this undesirable behavior by disabling this option.

Reported-by: Fabian Stelzer <fabian.stelzer@campoint.net>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/test-lib.sh | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/t/test-lib.sh b/t/test-lib.sh
index db61081d6b..a2b7dfecee 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -419,6 +419,12 @@ COLUMNS=80
 export LANG LC_ALL PAGER TZ COLUMNS
 EDITOR=:
 
+# Since bash 5.0, checkwinsize is enabled by default which does update the
+# COLUMNS variable every time a command completes, even for non-interactive
+# shells.
+# Disable that since we are aiming for reproducibility.
+test -n "$BASH_VERSION" && shopt -u checkwinsize 2>/dev/null
+
 # A call to "unset" with no arguments causes at least Solaris 10
 # /usr/xpg4/bin/sh and /bin/ksh to bail out.  So keep the unsets
 # deriving from the command substitution clustered with the other
-- 
2.32.0.40.gb9b36f9b52
Next: Ævar Arnfjörð Bjarmason
Message 1 of 9 in “test: fix for COLUMNS and bash 5”
  1. test: fix for COLUMNS and bash 5Felipe Contreras, Aug 5, 2021
  2. Ævar Arnfjörð BjarmasonAug 5, 2021
  3. Felipe ContrerasAug 6, 2021
  4. SZEDER GáborAug 6, 2021
  5. Junio C HamanoAug 6, 2021
  6. Ævar Arnfjörð BjarmasonAug 23, 2021
  7. Junio C HamanoAug 23, 2021
  8. test: fix for COLUMNS and bash 5Felipe Contreras, Aug 6, 2021
  9. ZheNing HuAug 7, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.