Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Jan 2026 01:25:43 +0000
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 6a6f96437527 - stable/15 - tdestroy(3): add tests
Message-ID:  <695b1317.39c0b.1288cee5@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=6a6f96437527fcf2ad34b3ad9afffa182273ead5

commit 6a6f96437527fcf2ad34b3ad9afffa182273ead5
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-12-26 22:00:09 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-01-05 00:44:21 +0000

    tdestroy(3): add tests
    
    (cherry picked from commit 3204c097fd08436805f059c0d7f676d29ee9bb62)
---
 lib/libc/tests/stdlib/tsearch_test.c | 65 ++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/lib/libc/tests/stdlib/tsearch_test.c b/lib/libc/tests/stdlib/tsearch_test.c
index ee9deec588cb..f42729e5e75c 100644
--- a/lib/libc/tests/stdlib/tsearch_test.c
+++ b/lib/libc/tests/stdlib/tsearch_test.c
@@ -147,10 +147,75 @@ ATF_TC_BODY(tsearch_test, tc)
 	ATF_CHECK_EQ(NULL, root);
 }
 
+static int nodes;
+
+struct my_data {
+	int key;
+};
+
+static struct my_data *
+new_my_data(int key)
+{
+	struct my_data *res;
+
+	res = malloc(sizeof(struct my_data));
+	res->key = key;
+	nodes++;
+	return (res);
+}
+
+void
+free_my_data(void *mdp)
+{
+	free(mdp);
+	nodes--;
+}
+
+static int
+compare_my_data(const void *mdp1, const void *mdp2)
+{
+	const struct my_data *md1, *md2;
+
+	md1 = mdp1;
+	md2 = mdp2;
+
+	return (md1->key - md2->key);
+}
+
+static posix_tnode *root = NULL;
+
+static void
+insert(int x)
+{
+	struct my_data *md;
+
+	md = new_my_data(x);
+	tsearch(md, &root, compare_my_data);
+}
+
+ATF_TC_WITHOUT_HEAD(tdestroy_test);
+ATF_TC_BODY(tdestroy_test, tc)
+{
+	root = NULL;
+	insert(1);
+	insert(100);
+	insert(1000);
+	insert(5);
+	insert(6);
+	insert(12);
+	insert(2000);
+	insert(3);
+
+	ATF_CHECK_EQ(8, nodes);
+	tdestroy(root, free_my_data);
+	ATF_CHECK_EQ(0, nodes);
+}
+
 ATF_TP_ADD_TCS(tp)
 {
 
 	ATF_TP_ADD_TC(tp, tsearch_test);
+	ATF_TP_ADD_TC(tp, tdestroy_test);
 
 	return (atf_no_error());
 }


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?695b1317.39c0b.1288cee5>