Re: chainlint test failing on Linux sparc64
From: Eric Sunshine <hidden>
Date: 2024-05-20 08:21:13
On Mon, May 20, 2024 at 3:56 AM John Paul Adrian Glaubitz [off-list ref] wrote:
quoted hunk ↗ jump to hunk
the chainlint test is failing on sparc64 (see below) and I'm wondering if anyone can tell me how to run tests manually. I suspect there might be an unaligned access which causes a crash on sparc64 only. rm -f -r 'test-results'--- chainlinttmp/expect 2024-05-19 12:26:50.051507198 +0000 +++ chainlinttmp/actual 2024-05-19 12:26:50.051507198 +0000@@ -1,955 +0,0 @@ -# chainlint: chainlinttmp/tests -# chainlint: arithmetic-expansion -( - foo && - bar=$((42 + 1)) && - baz -) &&[...snip...]
The thing failing here is chainlint's own self-test, which you don't
actually need if you're merely building Git. You'd only care about
chainlint (let alone its self-test) if you're modifying tests or
creating new ones. You can bypass chainlint altogether by setting
environment variable GIT_TEST_CHAIN_LINT=0.
That said, chainlint is just a Perl script, and you can manually run
the self-test like this:
cd t
make check-chainlint
The output you posted is coming from this line in t/Makefile:
diff -u '$(CHAINLINTTMP_SQ)'/expect '$(CHAINLINTTMP_SQ)'/actual
Based upon what you pasted, it looks like the "actual" file has no
content. That might suggest a problem with this line which immediately
precedes it:
$(CHAINLINT) --emit-all '$(CHAINLINTTMP_SQ)'/tests | \
sed -e 's/^[1-9][0-9]* //' >'$(CHAINLINTTMP_SQ)'/actual && \
"actual" might end up empty if the Perl script isn't emitting anything
for some reason, or if `sed` isn't emitting anything. Presumably you
have a working `sed` installed(?), but do you have Perl installed?