On Sat, Dec 28, 2024 at 10:47:05AM +0100, René Scharfe wrote:
Show 29 quoted lines
> @@ -141,5 +146,30 @@ int cmd_main(int argc UNUSED, const char *argv[] UNUSED)
> check_int(in, ==, out);
> }
>
> + if_test ("REFTABLE_ALLOC_GROW_OR_NULL works") {
> + int *arr = NULL;
> + size_t alloc = 0, old_alloc;
> +
> + REFTABLE_ALLOC_GROW_OR_NULL(arr, 1, alloc);
> + check(arr != NULL);
> + check_uint(alloc, >=, 1);
> + arr[0] = 42;
> +
> + old_alloc = alloc;
> + REFTABLE_ALLOC_GROW_OR_NULL(arr, old_alloc + 1, alloc);
> + check(arr != NULL);
> + check_uint(alloc, >, old_alloc);
> + arr[alloc - 1] = 42;
> +
> + old_alloc = alloc;
> + reftable_set_alloc(malloc, realloc_stub, free);
> + REFTABLE_ALLOC_GROW_OR_NULL(arr, old_alloc + 1, alloc);
> + check(arr == NULL);
> + check_uint(alloc, ==, 0);
> + reftable_set_alloc(malloc, realloc, free);
> +
> + reftable_free(arr);
> + }
> +