Re: progress test failure on fedora34
From: Felipe Contreras <hidden>
Date: 2021-07-19 22:57:22
Felipe Contreras wrote:
Ævar Arnfjörð Bjarmason wrote:quoted
On Wed, Jul 14 2021, Alex Henrie wrote:quoted
On Wed, Jul 14, 2021 at 9:39 AM Ævar Arnfjörð Bjarmason [off-list ref] wrote:quoted
On Wed, Jul 14 2021, Fabian Stelzer wrote:quoted
Hi, The test t0500-progress-display.sh in current master fails on latest fedora34. The break was introduced with: 83ae1edff7ee0b7674bd556955d2cf1706bddb21 ab/fix-columns-to-80-during-tests (2021-06-29) 1 commit Kind regards, FabianI have not been able to reproduce this, it seems the below E-Mail was word-wrapped by your mailer, which is especially bad here since getting to the bottom of this requires looking at the whitespace. Is there a way you could tar that up and send it (to me personally is fine, or some pastebin or whatever). I am able to reproduce something that looks like this if I s/COLUMNS=80/COLUMNS=79/g in the test-lib, but given that we set it to 80, and that the progress.c code just ends up with an atoi(getenv("COLUMNS")), and we do our own wrapping (with no other fancy logic) in progress.c, I'm not seeing right now how this could happen...This test also fails for me when using QTerminal or Konsole, but it passes on XTerm and LXTerminal.I tried this on Debian 11 with QTerminal 0.16.1 and can't reproduce it, resized the window etc., always get COLUMNS=80 if I add some printf debugging. Do you mind testing with an ad-hoc patch like this on top? It will fail right away, but should say COLUMNS = 80 in the output. The only thing I can think of right now is that some terminals are doing some evil trickery to LD_PRELOAD or whatever and intercept getenv() for COLUMNS and the like, but that's an entirely unfounded hunch.I'm able to reproduce this. The test fails when running directly with bash, but not with prove. And it seems to be a bug in bash: export COLUMNS=80 echo "COLUMNS: $COLUMNS" cat > /tmp/expect <<EOF foobar EOF echo "COLUMNS: $COLUMNS" I get: COLUMNS: 80 COLUMNS: 115 Even directly in the console.
Hmm, from man bash:
checkwinsize
If set, bash checks the window size after each external (non‐builtin) com‐
mand and, if necessary, updates the values of LINES and COLUMNS. This op‐
tion is enabled by default.
Seems like since bash 5.0 this is on by default.
--
Felipe Contreras