diff options
Diffstat (limited to 'third_party/git/t/helper/test-hash.c')
-rw-r--r-- | third_party/git/t/helper/test-hash.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/third_party/git/t/helper/test-hash.c b/third_party/git/t/helper/test-hash.c deleted file mode 100644 index 0a31de66f354..000000000000 --- a/third_party/git/t/helper/test-hash.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "test-tool.h" -#include "cache.h" - -int cmd_hash_impl(int ac, const char **av, int algo) -{ - git_hash_ctx ctx; - unsigned char hash[GIT_MAX_HEXSZ]; - unsigned bufsz = 8192; - int binary = 0; - char *buffer; - const struct git_hash_algo *algop = &hash_algos[algo]; - - if (ac == 2) { - if (!strcmp(av[1], "-b")) - binary = 1; - else - bufsz = strtoul(av[1], NULL, 10) * 1024 * 1024; - } - - if (!bufsz) - bufsz = 8192; - - while ((buffer = malloc(bufsz)) == NULL) { - fprintf(stderr, "bufsz %u is too big, halving...\n", bufsz); - bufsz /= 2; - if (bufsz < 1024) - die("OOPS"); - } - - algop->init_fn(&ctx); - - while (1) { - ssize_t sz, this_sz; - char *cp = buffer; - unsigned room = bufsz; - this_sz = 0; - while (room) { - sz = xread(0, cp, room); - if (sz == 0) - break; - if (sz < 0) - die_errno("test-hash"); - this_sz += sz; - cp += sz; - room -= sz; - } - if (this_sz == 0) - break; - algop->update_fn(&ctx, buffer, this_sz); - } - algop->final_fn(hash, &ctx); - - if (binary) - fwrite(hash, 1, algop->rawsz, stdout); - else - puts(hash_to_hex_algop(hash, algop)); - exit(0); -} |