summaryrefslogtreecommitdiff
path: root/t/helper
diff options
context:
space:
mode:
authorLibravatar Martin Ågren <martin.agren@gmail.com>2018-05-09 22:55:35 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-05-10 14:54:44 +0900
commit75d9a25e1f461c0908aad67d3c32bb9b2fea70ec (patch)
treee24804eb8a6a49c22082d66a3ced5eb034213408 /t/helper
parentGit 2.17 (diff)
downloadtgif-75d9a25e1f461c0908aad67d3c32bb9b2fea70ec.tar.xz
t/helper/test-write-cache: clean up lock-handling
Die in case writing the index fails, so that the caller can notice (instead of, say, being impressed by how performant the writing is). While at it, note that after opening a lock with `LOCK_DIE_ON_ERROR`, we do not need to worry about whether we succeeded. Also, we can move the `struct lock_file` into the function and drop the staticness. (Placing `struct lock_file`s on the stack used to be a bad idea, because the temp- and lockfile-machinery would keep a pointer into the struct. But after 076aa2cbd (tempfile: auto-allocate tempfiles on heap, 2017-09-05), we can safely have lockfiles on the stack.) Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/helper')
-rw-r--r--t/helper/test-write-cache.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/t/helper/test-write-cache.c b/t/helper/test-write-cache.c
index b7ee039669..3d78c728a5 100644
--- a/t/helper/test-write-cache.c
+++ b/t/helper/test-write-cache.c
@@ -1,22 +1,18 @@
#include "cache.h"
#include "lockfile.h"
-static struct lock_file index_lock;
-
int cmd_main(int argc, const char **argv)
{
- int i, cnt = 1, lockfd;
+ struct lock_file index_lock = LOCK_INIT;
+ int i, cnt = 1;
if (argc == 2)
cnt = strtol(argv[1], NULL, 0);
setup_git_directory();
read_cache();
for (i = 0; i < cnt; i++) {
- lockfd = hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR);
- if (0 <= lockfd) {
- write_locked_index(&the_index, &index_lock, COMMIT_LOCK);
- } else {
- rollback_lock_file(&index_lock);
- }
+ hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR);
+ if (write_locked_index(&the_index, &index_lock, COMMIT_LOCK))
+ die("unable to write index file");
}
return 0;