Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes: > On Wed, Sep 16, 2020 at 8:17 AM Ævar Arnfjörð Bjarmason > <avarab@xxxxxxxxx> 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.