Thread (25 messages) flat view 25 messages, 8 authors, 2021-08-04

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,
Fabian
I 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help