All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Chandra Pratap <chandrapratap3519@gmail.com>
Cc: git@vger.kernel.org, Christian Couder <chriscool@tuxfamily.org>
Subject: Re: [PATCH 3/4] t-reftable-tree: split test_tree() into two sub-test functions
Date: Mon, 10 Jun 2024 15:49:28 +0200	[thread overview]
Message-ID: <ZmcEaFxZhpyrFd-b@tanuki> (raw)
In-Reply-To: <20240610131017.8321-4-chandrapratap3519@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1437 bytes --]

On Mon, Jun 10, 2024 at 06:31:30PM +0530, Chandra Pratap wrote:
> @@ -44,13 +44,29 @@ static void test_tree(void)
>  		check_pointer_eq(nodes[i], tree_search(values + i, &root, &test_compare, 0));
>  	}
>  
> -	infix_walk(root, check_increasing, &c);
> +	tree_free(root);
> +}
> +
> +static void test_infix_walk(void)
> +{
> +	struct tree_node *root = NULL;
> +	void *values[13] = { 0 };

Is there a reason why we have 13 values here while we had 11 values in
the test this was split out from?

> +	struct curry c = { 0 };
> +	size_t i = 1;
> +
> +	do {
> +		tree_search(values + i, &root, &test_compare, 1);
> +		i = (i * 5) % 13;
> +	} while (i != 1);

It's completely non-obvious that `tree_search()` ends up _inserting_
nodes into the tree when the entry we're searching for wasn't found (and
if the last parameter is `1`. I feel like this interface could really
use a complete makeover and split up its concerns. In any case, that
does not need to happen as part of this patch seriesr

What I think would help though is if the commit message itself mentioned
this unorthodox way of inserting values into the tree.

> +	infix_walk(root, &check_increasing, &c);

Not a fault of this commit, but this test certainly isn't great. It
would succeed even if `infix_walk()` didn't do anything as we do not
verify at all whether all nodes have been traversed (and traversed once,
exactly).

Patrick

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2024-06-10 13:49 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-10 13:01 [GSoC][PATCH 0/4] t: port reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-06-10 13:01 ` [PATCH 1/4] reftable: remove unnecessary curly braces in reftable/tree.c Chandra Pratap
2024-06-10 13:01 ` [PATCH 2/4] t: move reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-06-10 13:01 ` [PATCH 3/4] t-reftable-tree: split test_tree() into two sub-test functions Chandra Pratap
2024-06-10 13:49   ` Patrick Steinhardt [this message]
2024-06-11  6:44     ` Chandra Pratap
2024-06-10 13:01 ` [PATCH 4/4] t-reftable-tree: add test for non-existent key Chandra Pratap
2024-06-12  5:38 ` [GSoC][PATCH v2 0/5] t: port reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-06-12  5:38   ` [PATCH v2 1/5] reftable: remove unnecessary curly braces in reftable/tree.c Chandra Pratap
2024-06-12  5:38   ` [PATCH v2 2/5] t: move reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-06-12  5:38   ` [PATCH v2 3/5] t-reftable-tree: split test_tree() into two sub-test functions Chandra Pratap
2024-06-12  5:38   ` [PATCH v2 4/5] t-reftable-tree: add test for non-existent key Chandra Pratap
2024-06-12  5:38   ` [PATCH v2 5/5] t-reftable-tree: improve the test for infix_walk() Chandra Pratap
2024-06-12  6:59     ` Patrick Steinhardt
2024-06-12  9:05       ` Chandra Pratap
2024-06-12 12:52   ` [GSoC][PATCH v3 0/5] t: port reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-06-12 12:52     ` [PATCH v3 1/5] reftable: remove unnecessary curly braces in reftable/tree.c Chandra Pratap
2024-06-12 12:53     ` [PATCH v3 2/5] t: move reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-06-12 12:53     ` [PATCH v3 3/5] t-reftable-tree: split test_tree() into two sub-test functions Chandra Pratap
2024-06-12 12:53     ` [PATCH v3 4/5] t-reftable-tree: add test for non-existent key Chandra Pratap
2024-06-12 12:53     ` [PATCH v3 5/5] t-reftable-tree: improve the test for infix_walk() Chandra Pratap
2024-07-16  7:48     ` [GSoC][PATCH v4 0/5] t: port reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-07-16  7:48       ` [PATCH v4 1/5] reftable: remove unnecessary curly braces in reftable/tree.c Chandra Pratap
2024-07-16  7:48       ` [PATCH v4 2/5] t: move reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-07-17 11:49         ` Karthik Nayak
2024-07-17 13:50           ` Chandra Pratap
2024-07-18  8:04             ` Karthik Nayak
2024-07-17 12:39         ` Karthik Nayak
2024-07-17 14:30           ` Chandra Pratap
2024-07-17 22:14             ` Justin Tobler
2024-07-18  4:58               ` Chandra Pratap
2024-07-18  8:10                 ` Karthik Nayak
2024-07-18  8:23                   ` Chandra Pratap
2024-07-18 15:26                   ` Justin Tobler
2024-07-16  7:48       ` [PATCH v4 3/5] t-reftable-tree: split test_tree() into two sub-test functions Chandra Pratap
2024-07-16  7:48       ` [PATCH v4 4/5] t-reftable-tree: add test for non-existent key Chandra Pratap
2024-07-16  7:48       ` [PATCH v4 5/5] t-reftable-tree: improve the test for infix_walk() Chandra Pratap
2024-07-16 19:52       ` [GSoC][PATCH v4 0/5] t: port reftable/tree_test.c to the unit testing framework Junio C Hamano
2024-07-22  5:57       ` [GSoC][PATCH v5 " Chandra Pratap
2024-07-22  5:57         ` [PATCH v5 1/5] reftable: remove unnecessary curly braces in reftable/tree.c Chandra Pratap
2024-07-22  5:57         ` [PATCH v5 2/5] t: move reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-07-22 17:52           ` Junio C Hamano
2024-07-22 17:52           ` Junio C Hamano
2024-07-22 17:56             ` Junio C Hamano
2024-07-22  5:57         ` [PATCH v5 3/5] t-reftable-tree: split test_tree() into two sub-test functions Chandra Pratap
2024-07-22  5:57         ` [PATCH v5 4/5] t-reftable-tree: add test for non-existent key Chandra Pratap
2024-07-22  5:57         ` [PATCH v5 5/5] t-reftable-tree: improve the test for infix_walk() Chandra Pratap
2024-08-01 11:21         ` [GSoC][PATCH v5 0/5] t: port reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-08-01 11:45           ` Patrick Steinhardt
2024-08-02 12:08         ` [GSoC][PATCH v6 " Chandra Pratap
2024-08-02 12:08           ` [PATCH v6 1/5] reftable: remove unnecessary curly braces in reftable/tree.c Chandra Pratap
2024-08-02 12:08           ` [PATCH v6 2/5] t: move reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-08-02 12:08           ` [PATCH v6 3/5] t-reftable-tree: split test_tree() into two sub-test functions Chandra Pratap
2024-08-02 16:25             ` Junio C Hamano
2024-08-02 12:08           ` [PATCH v6 4/5] t-reftable-tree: add test for non-existent key Chandra Pratap
2024-08-02 12:08           ` [PATCH v6 5/5] t-reftable-tree: improve the test for infix_walk() Chandra Pratap
2024-08-04 14:06           ` [GSoC][PATCH v7 0/5] t: port reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-08-04 14:06             ` [PATCH v7 1/5] reftable: remove unnecessary curly braces in reftable/tree.c Chandra Pratap
2024-08-04 14:06             ` [PATCH v7 2/5] t: move reftable/tree_test.c to the unit testing framework Chandra Pratap
2024-08-04 14:06             ` [PATCH v7 3/5] t-reftable-tree: split test_tree() into two sub-test functions Chandra Pratap
2024-08-04 14:06             ` [PATCH v7 4/5] t-reftable-tree: add test for non-existent key Chandra Pratap
2024-08-04 14:06             ` [PATCH v7 5/5] t-reftable-tree: improve the test for infix_walk() Chandra Pratap
2024-08-05 11:04             ` [GSoC][PATCH v7 0/5] t: port reftable/tree_test.c to the unit testing framework Patrick Steinhardt
2024-08-05 15:53               ` Junio C Hamano
2024-08-06  6:30                 ` Patrick Steinhardt
2024-08-06 15:35                   ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZmcEaFxZhpyrFd-b@tanuki \
    --to=ps@pks.im \
    --cc=chandrapratap3519@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.