Split the "file-size" helper into two helpers, one that takes 1 argument, and another one that takes N. This allows us to remove the "BUG" check in test-lib-functions.sh for briefer -x output, and more importantly will clearly distinguish those cases where we expect one argument v.s. many. The use in t1050-large.sh wants to check just one pack, we used to check that explicitly before 53b67a801bb (tests: consolidate the `file_size` function into `test-lib-functions.sh`, 2020-11-07), now we do so again. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> --- t/helper/test-path-utils.c | 11 ++++++++++- t/t1050-large.sh | 2 +- t/t5319-multi-pack-index.sh | 6 +++--- t/test-lib-functions.sh | 3 +-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/t/helper/test-path-utils.c b/t/helper/test-path-utils.c index eed3068ffb7..17645da4a1c 100644 --- a/t/helper/test-path-utils.c +++ b/t/helper/test-path-utils.c @@ -280,6 +280,8 @@ static int protect_ntfs_hfs_benchmark(int argc, const char **argv) int cmd__path_utils(int argc, const char **argv) { + int is_file_size, is_file_sizes; + if (argc == 3 && !strcmp(argv[1], "normalize_path_copy")) { char *buf = xmallocz(strlen(argv[2])); int rv = normalize_path_copy(buf, argv[2]); @@ -395,10 +397,17 @@ int cmd__path_utils(int argc, const char **argv) return !!res; } - if (argc > 2 && !strcmp(argv[1], "file-size")) { + is_file_size = !strcmp(argv[1], "file-size"); + is_file_sizes = !strcmp(argv[1], "file-sizes"); + if (argc > 2 && (is_file_size || is_file_sizes)) { int res = 0, i; struct stat st; + if (is_file_size && argc > 3) { + res = error("too many arguments to is-file-size, use is-file-sizes?"); + return res; + } + for (i = 2; i < argc; i++) if (stat(argv[i], &st)) res = error_errno("Cannot stat '%s'", argv[i]); diff --git a/t/t1050-large.sh b/t/t1050-large.sh index 4bab6a513c5..0b76ab0e3f9 100755 --- a/t/t1050-large.sh +++ b/t/t1050-large.sh @@ -23,7 +23,7 @@ do test_expect_success "add with $config" ' test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && + sz=$(test-tool path-utils file-size .git/objects/pack/pack-*.pack) && case "$expect" in small) test "$sz" -le 100000 ;; large) test "$sz" -ge 100000 ;; diff --git a/t/t5319-multi-pack-index.sh b/t/t5319-multi-pack-index.sh index 5641d158dfc..baeda407b90 100755 --- a/t/t5319-multi-pack-index.sh +++ b/t/t5319-multi-pack-index.sh @@ -648,7 +648,7 @@ test_expect_success 'repack with minimum size does not alter existing packs' ' test-tool chmtime =-3 .git/objects/pack/pack-B* && test-tool chmtime =-2 .git/objects/pack/pack-A* && ls .git/objects/pack >expect && - MINSIZE=$(test-tool path-utils file-size .git/objects/pack/*pack | sort -n | head -n 1) && + MINSIZE=$(test-tool path-utils file-sizes .git/objects/pack/*pack | sort -n | head -n 1) && git multi-pack-index repack --batch-size=$MINSIZE && ls .git/objects/pack >actual && test_cmp expect actual @@ -672,7 +672,7 @@ test_expect_success 'repack respects repack.packKeptObjects=false' ' test_line_count = 5 idx-list && test-tool read-midx .git/objects | grep idx >midx-list && test_line_count = 5 midx-list && - THIRD_SMALLEST_SIZE=$(test-tool path-utils file-size .git/objects/pack/*pack | sort -n | sed -n 3p) && + THIRD_SMALLEST_SIZE=$(test-tool path-utils file-sizes .git/objects/pack/*pack | sort -n | sed -n 3p) && BATCH_SIZE=$((THIRD_SMALLEST_SIZE + 1)) && git multi-pack-index repack --batch-size=$BATCH_SIZE && ls .git/objects/pack/*idx >idx-list && @@ -687,7 +687,7 @@ test_expect_success 'repack creates a new pack' ' cd dup && ls .git/objects/pack/*idx >idx-list && test_line_count = 5 idx-list && - THIRD_SMALLEST_SIZE=$(test-tool path-utils file-size .git/objects/pack/*pack | sort -n | head -n 3 | tail -n 1) && + THIRD_SMALLEST_SIZE=$(test-tool path-utils file-sizes .git/objects/pack/*pack | sort -n | head -n 3 | tail -n 1) && BATCH_SIZE=$(($THIRD_SMALLEST_SIZE + 1)) && git multi-pack-index repack --batch-size=$BATCH_SIZE && ls .git/objects/pack/*idx >idx-list && diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 0adb9fd124d..602d77dee37 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -839,8 +839,7 @@ test_line_count () { } test_file_size () { - test "$#" -ne 1 && BUG "1 param" - test-tool path-utils file-size "$1" + test-tool path-utils file-size "$@" } # Returns success if a comma separated string of keywords ($1) contains a -- 2.31.1.734.gdef39492517