Thread (2 messages) flat view 2 messages, 2 authors, 2020-10-16

Re: Funny test flake failure: t7518-ident-corner-cases.sh, test 1

From: Jeff King <hidden>
Date: 2020-10-16 20:00:34

On Fri, Oct 16, 2020 at 12:29:26PM -0700, Elijah Newren wrote:
The issue comes from this test code:

       (
               sane_unset GIT_AUTHOR_EMAIL &&
               GIT_AUTHOR_NAME= &&
               test_must_fail git commit --allow-empty -m foo 2>err &&
               test_i18ngrep ! null err
       )

The last line expects 'null' to NOT be found in err, unfortunately,
the file err contained the line:

fatal: empty ident name (for
[off-list ref])
not allowed
218

Note that 'null' appears as a substring of the domain name, found
within 'gcliasfzo2nullsdbrimjtbyhg'.
Heh. That's an amusing find. Good detective work, and sorry I created
the problem.
+# confirm that we do not segfault _and_ that we do not say "(null)", as
+# glibc systems will quietly handle our NULL pointer

Should we tighten the test to check for "(null)" instead of "null", or
should we do something else?  Or just ignore it as it is somewhat
unlikely that anyone ever hits this flake again?
I think it's worth tightening the test. The "(null)" phrasing is pretty
common, and it's really the best we can do. The chance that somebody is
on a platform that neither segfaults not prints "(null)", _and_ that
they introduce a regression there seems pretty low. And in comparison,
you already wasted time tracking down a false negative. Let's make sure
that doesn't happen again.

I wish there was an environment variable or something we could set in
the test suite to convince glibc to actually segfault on NULL (because
it _will_ segfault on other platforms, and we're rather catch such
things sooner rather than later).

Another option, I guess, is that we probably _do_ run the tests on such
a platform (IIRC BSD will segfault, so macos probably does). So we could
just remove the grep entirely from this test and let any regression get
caught there.

Of the two, I think I have a slight preference for matching (null), but
I don't feel strongly.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help