From: Eric Sunshine Date: Sun, 17 Apr 2016 06:36:24 GMT Subject: Re: [PATCH v2 1/2] test-lib: add a function to compare an expection with stdout from a command Message-ID: In-Reply-To: <20160417035414.GA30002@sigill.intra.peff.net> On Sat, Apr 16, 2016 at 11:54 PM, Jeff King wrote: > On Sat, Apr 16, 2016 at 11:07:02PM -0400, Eric Sunshine wrote: >> > test_stdout accepts an expection and a command to execute. It will execute >> > the command and then compare the stdout from that command to an expectation. >> > If the expectation is not met, a mock diff output is written to stderr. >> >> I wonder if this deserves more flexibility by accepting a comparison >> operator, such as = and !=, similar to test_line_count()? Although, I >> suppose such functionality could be added later if deemed useful. > > [...] Though I do actually find that: > > test_stdout false git rev-parse --whatever > > isn't great, because there's no syntactic separator between the expected > output and the actual command to run. So I dunno, maybe it would be > better as: > > test_stdout false = git rev-parse --whatever > > [...] We could also do: > > test_stdout git rev-parse --whatever <<-\EOF > false > EOF > > which is more robust for multi-line output, but I think part of the > point is to keep these as simple one-liners. You're not buying all that > much over: > > cat >expect <<-\EOF && > false > EOF > git rev-parse --whatever >actual && > test_cmp expect actual > > Though I do admit I've considered such a helper for some tests where > that pattern is repeated ad nauseam. Agreed. I wouldn't mind the version where test_stdout grabs "expected" from <