From: Jeff King <peff@peff.net>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: Alex Henrie <alexhenrie24@gmail.com>,
Fabian Stelzer <fabian.stelzer@campoint.net>,
Git mailing list <git@vger.kernel.org>
Subject: Re: progress test failure on fedora34
Date: Mon, 19 Jul 2021 05:00:02 -0400 [thread overview]
Message-ID: <YPU/Enow8Mgn5f4j@coredump.intra.peff.net> (raw)
In-Reply-To: <87h7gsvybx.fsf@evledraar.gmail.com>
On Sun, Jul 18, 2021 at 10:05:44AM +0200, Ævar Arnfjörð Bjarmason wrote:
> > 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.
That would be truly evil. :)
Another possible source of weirdness: some shells are picky about
assigning to COLUMNS, and are eager to set it themselves. E.g.:
$ echo $COLUMNS
119
$ COLUMNS=80 bash -c 'echo $COLUMNS'
80
$ COLUMNS=80 zsh -c 'echo $COLUMNS'
119
So zsh, even in a non-interactive shell, will set it. It does at least
accept setting it, and will preserve it in sub-shells and forks. But it
will silently ignore invalid values, instead going back to the ioctl:
$ zsh -c 'COLUMNS=80; echo $COLUMNS; COLUMNS=foo; echo $COLUMNS'
80
119
mksh behaves the same way; I was tipped off to this by b082687cba
(test-lib: skip test with COLUMNS=1 under mksh, 2012-04-27).
I have trouble seeing how this could cause a problem since "80" seems
like a perfectly sensible value. And one would imagine that the same
shell is being used in all cases above (but maybe not, depending on the
configuration of the terminal programs?). But it's another possible
avenue of investigation.
> diff --git a/progress.c b/progress.c
> index 680c6a8bf9..dca254b515 100644
> --- a/progress.c
> +++ b/progress.c
> @@ -144,6 +144,7 @@ static void display(struct progress *progress, uint64_t n, const char *done)
> size_t progress_line_len = progress->title_len +
> counters_sb->len + 2;
> int cols = term_columns();
> + fprintf(stderr, "cols = %d\n", cols);
>
> if (progress->split) {
> fprintf(stderr, " %s%*s", counters_sb->buf,
Yeah, this seems like a good start to see if the value we're getting is
bogus. Likewise, it might be interesting for term_columns() to tell us
if it's getting the value from $COLUMNS or from the ioctl (but it's hard
to believe it wouldn't be from $COLUMNS, given the code).
-Peff
next prev parent reply other threads:[~2021-07-19 9:00 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-14 12:39 progress test failure on fedora34 Fabian Stelzer
2021-07-14 15:35 ` Ævar Arnfjörð Bjarmason
2021-07-14 16:35 ` Alex Henrie
2021-07-18 8:05 ` Ævar Arnfjörð Bjarmason
2021-07-19 9:00 ` Jeff King [this message]
2021-07-19 17:18 ` Alex Henrie
2021-07-19 18:21 ` Alex Henrie
2021-07-19 18:43 ` Felipe Contreras
2021-07-19 19:34 ` Felipe Contreras
2021-07-19 20:42 ` Alex Henrie
2021-07-20 0:40 ` Felipe Contreras
2021-07-21 0:45 ` ZheNing Hu
2021-07-21 2:50 ` Felipe Contreras
2021-07-26 23:57 ` [PATCH] test-lib.sh: use GIT_TEST_COLUMNS over COLUMNS Ævar Arnfjörð Bjarmason
2021-07-27 17:38 ` Jeff King
2021-07-28 0:53 ` Junio C Hamano
2021-08-02 13:46 ` [PATCH v2 0/3] " Ævar Arnfjörð Bjarmason
2021-08-02 13:46 ` [PATCH v2 1/3] test-lib-functions.sh: rename test_must_fail_acceptable() Ævar Arnfjörð Bjarmason
2021-08-02 13:46 ` [PATCH v2 2/3] test-lib-functions.sh: add a test_with_columns function Ævar Arnfjörð Bjarmason
2021-08-02 17:14 ` SZEDER Gábor
2021-08-02 17:24 ` Eric Sunshine
2021-08-02 13:46 ` [PATCH v2 3/3] test-lib.sh: use GIT_TEST_COLUMNS over COLUMNS Ævar Arnfjörð Bjarmason
2021-08-04 23:05 ` [PATCH v3 0/3] " Ævar Arnfjörð Bjarmason
2021-08-04 23:05 ` [PATCH v3 1/3] test-lib-functions.sh: rename test_must_fail_acceptable() Ævar Arnfjörð Bjarmason
2021-08-04 23:05 ` [PATCH v3 2/3] test-lib-functions.sh: add a test_with_columns function Ævar Arnfjörð Bjarmason
2021-08-04 23:05 ` [PATCH v3 3/3] test-lib.sh: use GIT_TEST_COLUMNS over COLUMNS Ævar Arnfjörð Bjarmason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YPU/Enow8Mgn5f4j@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=alexhenrie24@gmail.com \
--cc=avarab@gmail.com \
--cc=fabian.stelzer@campoint.net \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).