t: use portable wrapper for readlink(1)
commit7c0afdf23c1cb331eab0068d70ad5c0c156f216a
authorJeff King <peff@peff.net>
Fri, 18 Jun 2021 16:32:22 +0000 (18 12:32 -0400)
committerJunio C Hamano <gitster@pobox.com>
Sat, 19 Jun 2021 06:26:05 +0000 (19 15:26 +0900)
tree09144cf5ea34c8de3b5cbf38408c6216d40a3fd4
parentebf3c04b262aa27fbb97f8a0156c2347fecafafb
t: use portable wrapper for readlink(1)

Not all systems have a readlink program available for use by the shell.
This causes t3210 to fail on at least AIX. Let's provide a perl
one-liner to do the same thing, and use it there.

I also updated calls in t9802. Nobody reported failure there, but it's
the same issue. Presumably nobody actually tests with p4 on AIX in the
first place (if it is even available there).

I left the use of readlink in the "--valgrind" setup in test-lib.sh, as
valgrind isn't available on exotic platforms anyway (and I didn't want
to increase dependencies between test-lib.sh and test-lib-functions.sh).

There's one other curious case. Commit d2addc3b96 (t7800: readlink may
not be available, 2016-05-31) fixed a similar case. We can't use our
wrapper function there, though, as it's inside a sub-script triggered by
Git. It uses a slightly different technique ("ls" piped to "sed"). I
chose not to use that here as it gives confusing "ls -l" output if the
file is unexpectedly not a symlink (which is OK for its limited use, but
potentially confusing for general use within the test suite). The perl
version emits the empty string.

Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3210-pack-refs.sh
t/t9802-git-p4-filetype.sh
t/test-lib-functions.sh