Re: chainlint test failing on Linux sparc64
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- May 20, 2024, 08:21 UTC
- Message-ID
- <CAPig+cS+BcQ2t564m8Q4GO+MAThgq8pV0fEFD4S0FBfwokO2Ng@mail.gmail.com>
- In-Reply-To
- <8baa12f8d044265f1ddeabd64209e7ac0d3700ae.camel@physik.fu-berlin.de>
On Mon, May 20, 2024 at 3:56 AM John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> wrote:
Show 16 quoted lines
> 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-chainlintThe 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?