Browse Source

t/helper/test-read-midx.c: add --checksum mode

Subsequent tests will want to check for the existence of a multi-pack
bitmap which matches the multi-pack-index stored in the pack directory.

The multi-pack bitmap includes the hex checksum of the MIDX it
corresponds to in its filename (for example,
'$packdir/multi-pack-index-<checksum>.bitmap'). As a result, some tests
want a way to learn what '<checksum>' is.

This helper addresses that need by printing the checksum of the
repository's multi-pack-index.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Taylor Blau 4 years ago committed by Junio C Hamano
parent
commit
b1b82d1c30
  1. 16
      t/helper/test-read-midx.c
  2. 4
      t/lib-bitmap.sh

16
t/helper/test-read-midx.c

@ -60,12 +60,26 @@ static int read_midx_file(const char *object_dir, int show_objects) @@ -60,12 +60,26 @@ static int read_midx_file(const char *object_dir, int show_objects)
return 0;
}

static int read_midx_checksum(const char *object_dir)
{
struct multi_pack_index *m;

setup_git_directory();
m = load_multi_pack_index(object_dir, 1);
if (!m)
return 1;
printf("%s\n", hash_to_hex(get_midx_checksum(m)));
return 0;
}

int cmd__read_midx(int argc, const char **argv)
{
if (!(argc == 2 || argc == 3))
usage("read-midx [--show-objects] <object-dir>");
usage("read-midx [--show-objects|--checksum] <object-dir>");

if (!strcmp(argv[1], "--show-objects"))
return read_midx_file(argv[2], 1);
else if (!strcmp(argv[1], "--checksum"))
return read_midx_checksum(argv[2]);
return read_midx_file(argv[1], 0);
}

4
t/lib-bitmap.sh

@ -260,3 +260,7 @@ have_delta () { @@ -260,3 +260,7 @@ have_delta () {
echo $1 | git cat-file --batch-check="%(deltabase)" >actual &&
test_cmp expect actual
}

midx_checksum () {
test-tool read-midx --checksum "$1"
}

Loading…
Cancel
Save