Skip to content

Commit 4605a73

Browse files
Martin Ågrengitster
authored andcommitted
t1091: don't grep for strerror() string
We grep for "File exists" in stderr of the failing `git sparse-checkout` to make sure that it failed for the right reason. We expect the string to show up there since we call `strerror(errno)` in `unable_to_lock_message()` in lockfile.c. On the NonStop platform, this fails because the error string is "File already exists", which doesn't match our grepping. See 9042140 ("test-dir-iterator: do not assume errno values", 2019-07-30) for a somewhat similar fix. There, we patched a test helper, which meant we had access to `errno` and could investigate it better in the test helper instead of just outputting the numerical value and evaluating it in the test script. The current situation is different, since (short of modifying the lockfile machinery, e.g., to be more verbose) we don't have more than the output from `strerror()` available. Except we do: We prefix `strerror(errno)` with `_("Unable to create '%s.lock': ")`. Let's grep for that part instead. It verifies that we were indeed unable to create the lock file. (If that fails for some other reason than the file existing, we really really should expect other tests to fail as well.) An alternative fix would be to loosen the expression a bit and grep for "File.* exists" instead. There would be no guarantee that some other implementation couldn't come up with another error string, That is, that could be the first move in an endless game of whack-a-mole. Of course, it could also take us from "99" to "100" percent of the platforms and we'd never have this problem again. But since we have another way of addressing this, let's not even try the "loosen it up a bit" strategy. Reported-by: Randall S. Becker <[email protected]> Signed-off-by: Martin Ågren <[email protected]> Acked-by: Derrick Stolee <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 6c11c6a commit 4605a73

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

t/t1091-sparse-checkout-builtin.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ test_expect_success 'fail when lock is taken' '
305305
test_when_finished rm -rf repo/.git/info/sparse-checkout.lock &&
306306
touch repo/.git/info/sparse-checkout.lock &&
307307
test_must_fail git -C repo sparse-checkout set deep 2>err &&
308-
test_i18ngrep "File exists" err
308+
test_i18ngrep "Unable to create .*\.lock" err
309309
'
310310

311311
test_expect_success '.gitignore should not warn about cone mode' '

0 commit comments

Comments
 (0)