Re: [PATCH 0/6] fix test failure with busybox
- From
Jeff King <peff@peff.net>
- Date
- Mar 19, 2020, 15:51 UTC
- Message-ID
- <20200319155136.GA3513282@coredump.intra.peff.net>
- In-Reply-To
- <cover.1584625896.git.congdanhqx@gmail.com>
On Thu, Mar 19, 2020 at 09:00:01PM +0700, Đoàn Trần Công Danh wrote:
Show 10 quoted lines
> Despite some non-compiance from busybox's sh(1), grep(1), diff(1),
> Alpine Linux is still a popular choice for container these days.
>
> Fix false-positive failure in testsuite when run in Alpine Linux.
>
> t5703.{4,5,6,7} is still failing.
> Despite git pack-objects behaves correctly,
> upload-pack.c works incorrectly on this platform.
>
> I haven't dig deeper, yet.I was able to reproduce the problems on Debian (with busybox installed) with:
mkdir /tmp/bb
(cd /tmp/bb
bb=$(which busybox)
for i in $($bb --list); do
ln -s $bb $i
done)
PATH=/tmp/bb:$PATH make test TEST_SHELL_PATH=/tmp/bb/shThe issue in t5703 is the sed call in get_actual_commits(). It's trying to cut off the early (text) part of the file, and pass through the binary goo of the packfile. Presumably busybox's sed isn't binary-clean.
Our usual strategy here would be to switch to perl, which is more predictable about binary bytes.
We're also feeding this into a test-tool helper. It's possible that helper could be made smart enough to replace both this sed invocation and the one in get_actual_refs().
-Peff