aboutsummaryrefslogtreecommitdiff
path: root/t/helper/test-path-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 't/helper/test-path-utils.c')
-rw-r--r--t/helper/test-path-utils.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/t/helper/test-path-utils.c b/t/helper/test-path-utils.c
index f5f33751da..874542ec34 100644
--- a/t/helper/test-path-utils.c
+++ b/t/helper/test-path-utils.c
@@ -477,14 +477,20 @@ int cmd__path_utils(int argc, const char **argv)
if (argc > 5 && !strcmp(argv[1], "slice-tests")) {
int res = 0;
- long offset, stride, i;
+ long slice, slices_total, i;
struct string_list list = STRING_LIST_INIT_NODUP;
struct stat st;
- offset = strtol(argv[2], NULL, 10);
- stride = strtol(argv[3], NULL, 10);
- if (stride < 1)
- stride = 1;
+ slices_total = strtol(argv[3], NULL, 10);
+ if (slices_total < 1)
+ die("there must be at least one slice, got '%s'",
+ argv[3]);
+
+ slice = strtol(argv[2], NULL, 10);
+ if (1 > slice || slice > slices_total)
+ die("slice must be in the range 1 <= slice <= %ld, got '%s'",
+ slices_total, argv[2]);
+
for (i = 4; i < argc; i++)
if (stat(argv[i], &st))
res = error_errno("Cannot stat '%s'", argv[i]);
@@ -492,7 +498,7 @@ int cmd__path_utils(int argc, const char **argv)
string_list_append(&list, argv[i])->util =
(void *)(intptr_t)st.st_size;
QSORT(list.items, list.nr, cmp_by_st_size);
- for (i = offset; i < list.nr; i+= stride)
+ for (i = slice - 1; i < list.nr; i+= slices_total)
printf("%s\n", list.items[i].string);
return !!res;