Subject: Re: [PATCH v5 6/7] t-reftable-pq: add test for index based comparison

From: Patrick Steinhardt <[email-masked]>
Date: Wed, 24 Jul 2024 11:03:07 +0200

On Tue, Jul 23, 2024 at 07:47:16PM +0530, Chandra Pratap wrote:
> diff --git a/t/unit-tests/t-reftable-pq.c b/t/unit-tests/t-reftable-pq.c
> index 9230dd9b9e..23c3f6888b 100644
> --- a/t/unit-tests/t-reftable-pq.c
> +++ b/t/unit-tests/t-reftable-pq.c
> @@ -18,7 +18,7 @@ static void merged_iter_pqueue_check(const struct merged_iter_pqueue *pq)
>  	}
>  }
>  
> -static void t_pq(void)
> +static void t_pq_record(void)
>  {
>  	struct merged_iter_pqueue pq = { 0 };
>  	struct reftable_record recs[54];
> @@ -59,9 +59,48 @@ static void t_pq(void)
>  	merged_iter_pqueue_release(&pq);
>  }
>  
> +static void t_pq_index(void)
> +{
> +	struct merged_iter_pqueue pq = { 0 };
> +	struct reftable_record recs[14];
> +	char *last = NULL;
> +	size_t N = ARRAY_SIZE(recs), i;
> +
> +	for (i = 0; i < N; i++) {
> +		reftable_record_init(&recs[i], BLOCK_TYPE_REF);
> +		recs[i].u.ref.refname = xstrdup("refs/heads/master");
> +	}
> +
> +	for (i = 0; i < N; i++) {
> +		struct pq_entry e = {
> +			.rec = &recs[i],
> +			.index = i,
> +		};
> +
> +		merged_iter_pqueue_add(&pq, &e);
> +		merged_iter_pqueue_check(&pq);
> +	}

One of those reasons that we use the modulo-loops in the other tests is
so that the order in which entries are added is mixed. Here we add them
in priority order already, so that makes the test less interesting. We
might thus want to do the same here and scramble the order a bit.

Patrick