Re: [PATCH v4] tests: adjust whitespace in chainlint expectations
From: Eric Sunshine <hidden>
Date: 2023-12-15 07:17:33
On Fri, Dec 15, 2023 at 1:42 AM Patrick Steinhardt [off-list ref] wrote:
quoted hunk ↗ jump to hunk
[...] Instead of improving the detection logic, fix our ".expect" files so that we do not need any post-processing at all anymore. This allows us to drop the `-w` flag when diffing so that we can always use diff(1) now. Note that we keep some of the post-processing of `chainlint.pl` output intact to strip leading line numbers generated by the script. Having these would cause a rippling effect whenever we add a new test that sorts into the middle of existing tests and would require us to renumerate all subsequent lines, which seems rather pointless. Signed-off-by: Patrick Steinhardt <redacted> ---diff --git a/t/Makefile b/t/Makefile@@ -103,20 +103,12 @@ check-chainlint: for i in $(CHAINLINTTESTS); do \ echo "# chainlint: $$i" && \ - sed -e '/^[ ]*$$/d' chainlint/$$i.expect; \ + cat chainlint/$$i.expect; \ done \ $(CHAINLINT) --emit-all '$(CHAINLINTTMP_SQ)'/tests | \ - sed -e 's/^[1-9][0-9]* //;/^[ ]*$$/d' >'$(CHAINLINTTMP_SQ)'/actual && \ + sed -e 's/^[1-9][0-9]* //' >'$(CHAINLINTTMP_SQ)'/actual && \ + diff -u '$(CHAINLINTTMP_SQ)'/expect '$(CHAINLINTTMP_SQ)'/actual
Thanks, this version looks fine. FWIW, you may consider this:
Reviewed-by: Eric Sunshine [off-list ref]
Aside: I was rather surprised to see this output from git-am when applying v4:
Applying: tests: adjust whitespace in chainlint expectations
.git/rebase-apply/patch:205: new blank line at EOF.
+
.git/rebase-apply/patch:219: new blank line at EOF.
+
warning: 2 lines add whitespace errors.
But upon investigating the two "test" files in question,
dqstring-line-splice.test and dqstring-no-interpolate.test, I recalled
that I had to play tricks to escape the single-quote context created
by the Makefile when generating t/chainlinttmp/tests in order to allow
chainlint.pl to see a double-quoted string. So, the abovementioned
blank lines are indeed expected output from chainlint.pl given the
tricks played.