Thread (16 messages) 16 messages, 4 authors, 2020-08-03

Re: [PATCH 2/3] t4216: fix broken '&&'-chain

From: Eric Sunshine <hidden>
Date: 2020-06-30 17:50:37

On Tue, Jun 30, 2020 at 1:17 PM Taylor Blau [off-list ref] wrote:
In a759bfa9ee (t4216: add end to end tests for git log with Bloom
filters, 2020-04-06), a 'rm' invocation was added without a
corresponding '&&' chain.

This ends up working fine when the file already exists, in which case
'rm' exits cleanly and the rest of the function executes normally. When
the file does _not_ exist, however, 'rm' returns an unclean exit code,
causing the function to terminate.
This explanation makes no sense. Since this command was not part of
the &&-chain, its failure would not cause the function to terminate
prematurely nor would it affect the return value of the function. This
explanation would make sense, however, if you're talking about the
behavior _after_ fixing the broken &&-chain.
Fix this by making the test use an '&&'-chain, and passing '-f' to
ignore missing files (as can be the case when specifying which tests are
'--run').
The entire commit message is talking about implementation details and
merely repeats what the subject and patch itself already say quite
clearly; anyone familiar with 'rm' understands implicitly that '-f'
must be added to incorporate it into the &&-chain if the file's
presence is not guaranteed. Thus, you could drop the entire body of
the commit message without losing clarity...

With one minor exception: What is much more interesting for the reader
to know is whether the file being removed is guaranteed to exist (in
which case '-f' is unnecessary) or may be missing (requiring '-f'),
and under what conditions it might be missing. The very last part of
the last sentence of the current commit message gives a good hint
about the latter, thus would be a good bit to retain.
quoted hunk ↗ jump to hunk
diff --git a/t/t4216-log-bloom.sh b/t/t4216-log-bloom.sh
@@ -53,7 +53,7 @@ sane_unset GIT_TRACE2_PERF_BRIEF
 sane_unset GIT_TRACE2_CONFIG_PARAMS
Not related to this patch, but 'sane_unset' is pointless outside of a
test since there is no &&-chain to maintain. Plain 'unset' would work
just as well and be less misleading.
 setup () {
-       rm "$TRASH_DIRECTORY/trace.perf"
+       rm -f "$TRASH_DIRECTORY/trace.perf" &&
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help