On Tue, May 28, 2019 at 01:06:21PM +0200, Johannes Schindelin wrote: > > Or do you prefer having a one-liner? I'd rather come up with a more > > generic helper to cover this case, that can run any command and compare > > it to a single argument (or stdin). E.g.,: > > > > test_cmp_cmd no-conflict git log -1 --format=%s > > > > or > > > > test_cmp_cmd - git foo <<-\EOF > > multi-line > > expectation > > EOF > > I guess that you and me go into completely opposite directions here. I > want something *less* general. Because I want to optimize for the > unfortunate times when a test fails and most likely somebody else than the > original author of the test case is tasked with figuring out what the heck > goes wrong. > > You seem to want to optimize for writing test cases. Which I find -- with > all due respect -- the wrong thing to optimize for. It is already dirt > easy to write new test cases. But *good* test cases (i.e. easy to debug > ones)? Not so much. Hmm. I too want the test output to be useful to people other than the test author. But I find the output from test_cmp perfectly fine there. My first step in digging into a failure is usually to look at what commands the test is running, which generally makes it obvious why we are expecting one thing and seeing another (or at least, just as obvious as a hand-written message). So to me the two are equal on that front, which makes me want to go with the thing that is shorter to write, as it makes it more likely the test writer will write it. The _worst_ option IMHO is a straight-up use of "test" which provides no output at all in the test log of what value we _did_ see. That requires the person looking into the failure to re-run the test, which is hard if it's a remote CI, or if the failure does not always reproduce. -Peff