Re: [PATCH] trace2: intercept all common signals
On Fri, May 10, 2024 at 01:34:42PM -0700, Junio C Hamano wrote:
Show 11 quoted lines
> Emily Shaffer <nasamuffin@google.com> writes:
>
> > While I'm at it, since you pointed out ! instead of test_must_fail, I
> > wondered if I should change "! test_grep" as well - but when I grep t/
> > it looks like it's not usual to use `test_must_fail test_grep`, but
> > instead to use `test_grep ! <omitted pattern> <file>`. I'll change
> > that too.
>
> "! test_grep" is an anti-pattern. We should have a documentation
> somewhere in t/README or nearby (if we don't, somebody please add
> one).
Better than documentation, maybe something like:
diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl
index b2b28c2ced..7de2c30aa0 100755
--- a/t/check-non-portable-shell.pl
+++ b/t/check-non-portable-shell.pl
@@ -51,6 +51,7 @@ sub err {
err q(quote "$val" in 'local var=$val');
/^\s*([A-Z0-9_]+=(\w*|(["']).*?\3)\s+)+(\w+)/ and exists($func{$4}) and
err '"FOO=bar shell_func" assignment extends beyond "shell_func"';
+ /! test_grep/ and err 'do not invert test_* functions';
$line = '';
# this resets our $. for each file
close ARGV if eof;
There's at least one other case already. If you shorten it to just "!
test_" to catch more functions, you can see there are a lot of wrong
test_cmp invocations, too (maybe not quite as bad because we don't
produce a specific message, but we'd yield a confusing diff output).
But I think we can't cover everything; there are some like
test_have_prereq which obviously are invertible.
-Peff