Re: [PATCH 07/15] remote-mediawiki tests: guard test_cmp with test_path_is_file
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 16, 2020, 21:13 UTC
- Message-ID
- <xmqq4knxwhkc.fsf@gitster.c.googlers.com>
- In-Reply-To
- <CAPig+cRg2tuOiQH_CQoHMjkX2gbRPJoV8NPJZnu3=bfo4wk-cQ@mail.gmail.com>
Eric Sunshine <sunshine@sunshineco.com> writes:
Show 14 quoted lines
> On Wed, Sep 16, 2020 at 8:17 AM Ævar Arnfjörð Bjarmason > <avarab@gmail.com> wrote: >> Change a test that used a plain test_cmp to first check the file(s) >> using test_path_is_file. If some of these file(s) don't exist (as >> happened to me during debugging), test_cmp will emit a way less useful >> message about the failure. > > An alternative would be to update test_cmp() to present a more helpful > error message so that all test scripts can benefit rather than just > this script. By the way, were you testing with a reasonably recent > version of Git? I ask because test_cmp() was updated not long ago to > provide better diagnostics when one of the files is missing. > > [1]: d572f52a64 (test_cmp: diagnose incorrect arguments, 2020-08-09)
Yes, you did this with the commit,
test_cmp() {
test $# -eq 2 || BUG "test_cmp requires two arguments"
if ! eval "$GIT_TEST_CMP" '"$@"'
then
test "x$1" = x- || test -e "$1" || BUG "test_cmp '$1' missing"
test "x$2" = x- || test -e "$2" || BUG "test_cmp '$2' missing"
return 1
fi
}and I do not immediately see why "test -e" shouldn't be "test -f". It should ideally be "stdin is OK, otherwise it must be a readable regular file".
Thanks.