Re: progress test failure on fedora34

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 14 2021, Alex Henrie wrote:

> On Wed, Jul 14, 2021 at 9:39 AM Ævar Arnfjörð Bjarmason
> <avarab@xxxxxxxxx> wrote:
>>
>>
>> On Wed, Jul 14 2021, Fabian Stelzer wrote:
>>
>> > 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.

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,




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux