From patchwork Tue Jul 16 07:48:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandra Pratap X-Patchwork-Id: 13734084 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F2FD64207D for ; Tue, 16 Jul 2024 07:57:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116647; cv=none; b=o1na7weMIT6NArMOWEUXk1t6Tt8zbVBg2ro2+/S26oca+APrIo1kyaTKYy1VY9pdLUlimTQIwZzQRlDnAkLLgpu1o9/TxR3cMX92CqWZfIqiI4gOrbzE9N+SycD1ORpT6njhyIC+LkBWcX7VNlGT8l++R0CBZhxEJzWi0l1yt+A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116647; c=relaxed/simple; bh=6dcZwXz7GFp7iAldfAYFiGDg1AfVonu0hu3Z6u9wQN4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hntI3lpPNXDirFLndct2vY04DPhFNnmyaSdY7dHDDZF7LbP5rAXqvB75SlY3P+XqIzgT4DlV0yZ0qtSi4n48jvCBwUGrJQ0sElAcR2XepZtRthy8+HUGcFc6VFPa4oyZQG3K28LZw4yFFOW6EzmKFeyYUQnyuVn9FSASoCoi2Fk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=b9T50/mm; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b9T50/mm" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1fb3cf78ff3so38553885ad.0 for ; Tue, 16 Jul 2024 00:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721116644; x=1721721444; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nIDjQDvcxNu4l7Bz0MrT/RMIwMtJCJpsOd0bgbZFxZ8=; b=b9T50/mmU5jvqcQJ85Nct9FCVNMjHnvd02uvdtxeCTMTvG4Axsxr40+4ZfmrJ/d0QS 2f2DJ+HajXMqs0PTIhYJYfaTFZ8oCiDhTzqJt06OHgGLcn3Zvzjud5uCEWiJAvCFTSvo mbtecv/Vua70fckrAu8+Ye8SXnccOy4mX+STRatiTv+iSEKPkNqw+ivB5UDY2dxb17SM icwbAoz3yKKSbzyiD5FLjUrrUVre8mWZIyhkvC70xh34Nq50hRsrVIBEcgGY3ar0qkng 5yE39YFBzHn7CyJjkyCXMW8fET5HssBiIMTmLzQ0kqHe7wFLiRiAI30Z48GYMA8YmNGy rt0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721116644; x=1721721444; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nIDjQDvcxNu4l7Bz0MrT/RMIwMtJCJpsOd0bgbZFxZ8=; b=SrxyU+Uz2iHgUYNp58qDfHqi+Oz5UJfbCLaCYseQdw3z2FIO2TYK0jCGGbBoxeAtzc o5jEae/WH+F4ZimNCTAYlfNiLCsBW6QSs7ewdVZAdErFh9CLHf9SgB8w8mNckDQnY8qY 2NJegj3wSEiohDJj2sRT0QHjxCrkzAVou0wvaJvYAu/ex7YVHowqG+TYXXbjDwuGFOWK Yu3KRnxEi8mesSAf8Z+6njTwY9v4rP4cLX1YJkNP6yNrmnpIs5Ub9oNmbMk5eLSUutyq UeFADso+phLyFaitgpu8Wor4eDzVF42qnsi5m7SA1Dl/tT0nc1/WmZtzuB+uRmLwmDhI /I0w== X-Gm-Message-State: AOJu0Yz/I1HocL0oQdTuEmNUigWJnL/dX3GX5NMwsakXb5f94NoqBN4k 603AWLOxMN7GLAWqOL5H1ELShhqI3QMs1PHOp6EQOkbRcukEik2Lx22z7bjc X-Google-Smtp-Source: AGHT+IFUdft4meGVkH9ZbLvR2RQRCyJrVo4jY20TJpGrhfXwptQE/40nWSgiL24uKD0Iao/+p5CM1A== X-Received: by 2002:a17:903:2285:b0:1fb:7b96:8467 with SMTP id d9443c01a7336-1fc3cc980e4mr13862035ad.63.1721116644474; Tue, 16 Jul 2024 00:57:24 -0700 (PDT) Received: from Ubuntu.. ([106.206.192.176]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-1fc0bc3a599sm53691435ad.232.2024.07.16.00.57.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jul 2024 00:57:24 -0700 (PDT) From: Chandra Pratap To: git@vger.kernel.org Cc: karthik188@gmail.com, chriscool@tuxfamily.org Subject: [PATCH v4 1/5] reftable: remove unnecessary curly braces in reftable/tree.c Date: Tue, 16 Jul 2024 13:18:13 +0530 Message-ID: <20240716075641.4264-2-chandrapratap3519@gmail.com> X-Mailer: git-send-email 2.45.GIT In-Reply-To: <20240716075641.4264-1-chandrapratap3519@gmail.com> References: <20240612130217.8877-1-chandrapratap3519@gmail.com> <20240716075641.4264-1-chandrapratap3519@gmail.com> Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 According to Documentation/CodingGuidelines, single-line control-flow statements must omit curly braces (except for some special cases). Make reftable/tree.c adhere to this guideline. Mentored-by: Patrick Steinhardt Mentored-by: Christian Couder Signed-off-by: Chandra Pratap --- reftable/tree.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/reftable/tree.c b/reftable/tree.c index 528f33ae38..5ffb2e0d69 100644 --- a/reftable/tree.c +++ b/reftable/tree.c @@ -39,25 +39,20 @@ struct tree_node *tree_search(void *key, struct tree_node **rootp, void infix_walk(struct tree_node *t, void (*action)(void *arg, void *key), void *arg) { - if (t->left) { + if (t->left) infix_walk(t->left, action, arg); - } action(arg, t->key); - if (t->right) { + if (t->right) infix_walk(t->right, action, arg); - } } void tree_free(struct tree_node *t) { - if (!t) { + if (!t) return; - } - if (t->left) { + if (t->left) tree_free(t->left); - } - if (t->right) { + if (t->right) tree_free(t->right); - } reftable_free(t); } From patchwork Tue Jul 16 07:48:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandra Pratap X-Patchwork-Id: 13734085 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D6354D8BE for ; Tue, 16 Jul 2024 07:57:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116650; cv=none; b=DPi1xLLz83+g8zqm2z7CuhJfE29JjvrNLcx+Kpo5XCEINg0VEcpE4SL1zb2aFFfwQ9NjSANo+4LKrS0nIhRsyBbn/mfcVXKMMWq4QHR4le94JHFIJ1mur6dF5D3K131qQvpWFTstNATvXkBs/PoP0P3i6xNR2P4Qx9z053zHzhg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116650; c=relaxed/simple; bh=qsBlSaCY33QWpIg5WWaz2nmRtHahCuykMe3MM9LSCHU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QpEv+QqbLfeMThpsPSocuvhdx/VToxj3Eso+im/dUq8u+RJlDGWkTuGNGvA5l4OscXs/bSVMp51EcEUjlFHAboFQD+YyLViRYQLfiLmLWlTPliSEEKlcxtsxOTCwvTUDNzQ7+fcGZhb11z8UYRRXnlfzkbdgvao+Ig3QugsqBiQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gYJ48+pR; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gYJ48+pR" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1fb0d88fd25so36071435ad.0 for ; Tue, 16 Jul 2024 00:57:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721116647; x=1721721447; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6GJ/jIA1MCLPbMW3wFJ6DCyKziFeRopCx8gUqoXhAxg=; b=gYJ48+pRNbo+2sgh2tIckZRogJhSzH2lwd7UdreWvDcJM5z9aFrJEHn2BwxZ09+oXh PoIQQ5uVO3Eu078YEtUHvCsbTfKF7gNqihGRFt5OOY6sKlA96J8peRILmajlnXl7TIZa fYCPDcTO6/85gobQUfjQfV6CliZNNunRle24Z8RgxuvJAldlWW3/dzczDGN0YjzuEPWC gg2NQLc0huejI64KpFuUZteTnUDOsX9d190TwF3IwsNa/k611Pug9DsUTZ4tp+Y0KTrz FLVdXnsr1wn7db/nM/83UjUDbije6k12UNfMmYZYPrkM5Q7edoJO2288gt2nKZ6XkbVd chTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721116647; x=1721721447; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6GJ/jIA1MCLPbMW3wFJ6DCyKziFeRopCx8gUqoXhAxg=; b=JjsNlkTabH2UP/Wzz0w9fArl/tNYRMnlvwuxLuHxZJtqenhYY8TPlL1Ok0hQxolkcJ Wqjtm7FPu4XOHiZaEbLxN3ZqcIXo25cNIAkswm5SLM8mwiiAWIYXrq4gOCoAJ5xkJcKR P9unTTiPFBqb5Neh3KA6I8ArcCQmbmWqn5tyK6QRzMGBEvSpfaUvcXeaG3ExkWtzIl54 r3q1LTcyiRngekW13nGcOI/KtyfW6TcYPJqux9RZ+tfQGysD3bio7+eGHUB907HzsY1m Ci+TjosjlBYOEa1OHJJSavEVUPlWjH8vaLEbn52QrE38NiTl1Shfiw7y2MgE2kLOJt/W cBjA== X-Gm-Message-State: AOJu0Yy6W5wkeTPOk7g06dALErkGm6swy66og7y3ZbFiqCqSoLeuR217 /PK77dtdJLkiWFrAYrdPbrXn6LdJ+USGKpH586lNlVYSGXsrCbj0ndxPUxpv X-Google-Smtp-Source: AGHT+IFxDXFlcQ8CUr7/J11yWMfKgK16yw307j9a4HIt/Hx/km7Vl7kjPVpNtJo83wIQ7SQEZ36IkA== X-Received: by 2002:a17:902:8c8e:b0:1fa:2b11:657d with SMTP id d9443c01a7336-1fc3e677edamr12769985ad.10.1721116647353; Tue, 16 Jul 2024 00:57:27 -0700 (PDT) Received: from Ubuntu.. ([106.206.192.176]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-1fc0bc3a599sm53691435ad.232.2024.07.16.00.57.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jul 2024 00:57:26 -0700 (PDT) From: Chandra Pratap To: git@vger.kernel.org Cc: karthik188@gmail.com, chriscool@tuxfamily.org Subject: [PATCH v4 2/5] t: move reftable/tree_test.c to the unit testing framework Date: Tue, 16 Jul 2024 13:18:14 +0530 Message-ID: <20240716075641.4264-3-chandrapratap3519@gmail.com> X-Mailer: git-send-email 2.45.GIT In-Reply-To: <20240716075641.4264-1-chandrapratap3519@gmail.com> References: <20240612130217.8877-1-chandrapratap3519@gmail.com> <20240716075641.4264-1-chandrapratap3519@gmail.com> Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 reftable/tree_test.c exercises the functions defined in reftable/tree.{c, h}. Migrate reftable/tree_test.c to the unit testing framework. Migration involves refactoring the tests to use the unit testing framework instead of reftable's test framework and renaming the tests to align with unit-tests' standards. Mentored-by: Patrick Steinhardt Mentored-by: Christian Couder Signed-off-by: Chandra Pratap --- Makefile | 2 +- reftable/reftable-tests.h | 1 - reftable/tree_test.c | 60 ---------------------------------- t/helper/test-reftable.c | 1 - t/unit-tests/t-reftable-tree.c | 56 +++++++++++++++++++++++++++++++ 5 files changed, 57 insertions(+), 63 deletions(-) delete mode 100644 reftable/tree_test.c create mode 100644 t/unit-tests/t-reftable-tree.c diff --git a/Makefile b/Makefile index 3eab701b10..79e86ddf53 100644 --- a/Makefile +++ b/Makefile @@ -1340,6 +1340,7 @@ UNIT_TEST_PROGRAMS += t-mem-pool UNIT_TEST_PROGRAMS += t-oidtree UNIT_TEST_PROGRAMS += t-prio-queue UNIT_TEST_PROGRAMS += t-reftable-basics +UNIT_TEST_PROGRAMS += t-reftable-tree UNIT_TEST_PROGRAMS += t-strbuf UNIT_TEST_PROGRAMS += t-strcmp-offset UNIT_TEST_PROGRAMS += t-strvec @@ -2685,7 +2686,6 @@ REFTABLE_TEST_OBJS += reftable/record_test.o REFTABLE_TEST_OBJS += reftable/readwrite_test.o REFTABLE_TEST_OBJS += reftable/stack_test.o REFTABLE_TEST_OBJS += reftable/test_framework.o -REFTABLE_TEST_OBJS += reftable/tree_test.o TEST_OBJS := $(patsubst %$X,%.o,$(TEST_PROGRAMS)) $(patsubst %,t/helper/%,$(TEST_BUILTINS_OBJS)) diff --git a/reftable/reftable-tests.h b/reftable/reftable-tests.h index 114cc3d053..d0abcc51e2 100644 --- a/reftable/reftable-tests.h +++ b/reftable/reftable-tests.h @@ -16,7 +16,6 @@ int pq_test_main(int argc, const char **argv); int record_test_main(int argc, const char **argv); int readwrite_test_main(int argc, const char **argv); int stack_test_main(int argc, const char **argv); -int tree_test_main(int argc, const char **argv); int reftable_dump_main(int argc, char *const *argv); #endif diff --git a/reftable/tree_test.c b/reftable/tree_test.c deleted file mode 100644 index 6961a657ad..0000000000 --- a/reftable/tree_test.c +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright 2020 Google LLC - -Use of this source code is governed by a BSD-style -license that can be found in the LICENSE file or at -https://developers.google.com/open-source/licenses/bsd -*/ - -#include "system.h" -#include "tree.h" - -#include "test_framework.h" -#include "reftable-tests.h" - -static int test_compare(const void *a, const void *b) -{ - return (char *)a - (char *)b; -} - -struct curry { - void *last; -}; - -static void check_increasing(void *arg, void *key) -{ - struct curry *c = arg; - if (c->last) { - EXPECT(test_compare(c->last, key) < 0); - } - c->last = key; -} - -static void test_tree(void) -{ - struct tree_node *root = NULL; - - void *values[11] = { NULL }; - struct tree_node *nodes[11] = { NULL }; - int i = 1; - struct curry c = { NULL }; - do { - nodes[i] = tree_search(values + i, &root, &test_compare, 1); - i = (i * 7) % 11; - } while (i != 1); - - for (i = 1; i < ARRAY_SIZE(nodes); i++) { - EXPECT(values + i == nodes[i]->key); - EXPECT(nodes[i] == - tree_search(values + i, &root, &test_compare, 0)); - } - - infix_walk(root, check_increasing, &c); - tree_free(root); -} - -int tree_test_main(int argc, const char *argv[]) -{ - RUN_TEST(test_tree); - return 0; -} diff --git a/t/helper/test-reftable.c b/t/helper/test-reftable.c index 9160bc5da6..245b674a3c 100644 --- a/t/helper/test-reftable.c +++ b/t/helper/test-reftable.c @@ -7,7 +7,6 @@ int cmd__reftable(int argc, const char **argv) /* test from simple to complex. */ record_test_main(argc, argv); block_test_main(argc, argv); - tree_test_main(argc, argv); pq_test_main(argc, argv); readwrite_test_main(argc, argv); merged_test_main(argc, argv); diff --git a/t/unit-tests/t-reftable-tree.c b/t/unit-tests/t-reftable-tree.c new file mode 100644 index 0000000000..5df814d983 --- /dev/null +++ b/t/unit-tests/t-reftable-tree.c @@ -0,0 +1,56 @@ +/* +Copyright 2020 Google LLC + +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file or at +https://developers.google.com/open-source/licenses/bsd +*/ + +#include "test-lib.h" +#include "reftable/tree.h" + +static int t_compare(const void *a, const void *b) +{ + return (char *)a - (char *)b; +} + +struct curry { + void *last; +}; + +static void check_increasing(void *arg, void *key) +{ + struct curry *c = arg; + if (c->last) + check_int(t_compare(c->last, key), <, 0); + c->last = key; +} + +static void t_tree(void) +{ + struct tree_node *root = NULL; + void *values[11] = { 0 }; + struct tree_node *nodes[11] = { 0 }; + size_t i = 1; + struct curry c = { 0 }; + + do { + nodes[i] = tree_search(values + i, &root, &t_compare, 1); + i = (i * 7) % 11; + } while (i != 1); + + for (i = 1; i < ARRAY_SIZE(nodes); i++) { + check_pointer_eq(values + i, nodes[i]->key); + check_pointer_eq(nodes[i], tree_search(values + i, &root, &t_compare, 0)); + } + + infix_walk(root, check_increasing, &c); + tree_free(root); +} + +int cmd_main(int argc, const char *argv[]) +{ + TEST(t_tree(), "tree_search and infix_walk work"); + + return test_done(); +} From patchwork Tue Jul 16 07:48:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandra Pratap X-Patchwork-Id: 13734086 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DAD654F95 for ; Tue, 16 Jul 2024 07:57:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116652; cv=none; b=XFua/3fxUz0/dmCCLM3PGTqM3giZ9NhF0xQdPYqmqbR3FLKzPbRPk8I51Iutc+6vHUOJ7vhKFps355zasR9aVQPA5E8FTkOEB93KrDmNz+DMJDIIailM2/xePu/hegPMhZa0hiqv9upi/pVmi8COwD2ZdZHAAs8WPh64a3YM9ZQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116652; c=relaxed/simple; bh=h7C+6Tg/8jGCk+MJ1aIpJ2izP4e7CjTF8BaZgmbRnlc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MnFcEscM0nty2xlo00c7YO3qmCiWXEPXF/tzMl3TtIbSLFqMJJoLb1E4nkO2kBcH97/iHodOLEr7eU1JW2lhSmiIeuCMb/HloA58+bVKxrCami1oZK0ITxgPAr2mlGp0IL7hIN2yGxw36+BC/Gkdsbb9Mdscu+QqdEjyIv3q5fI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gswQIvaL; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gswQIvaL" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1fbd1c26f65so28161495ad.2 for ; Tue, 16 Jul 2024 00:57:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721116650; x=1721721450; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aeREhiUlGPJyZ2z7ugsEkUx99dFa0IjdnGqusOzdaxk=; b=gswQIvaLI/zxUHpemBYtpAYbhwpaevi60c8KIV22kGPc2NpR2qgog0jlKGsg8kmQzh Pu2SyKryp8AiKrjKPDPBXOvfgLU2Q22BRPXgJfO5ErUakq+hxheeZhelVN3UAV7Qwiv4 VxgL9oJ2jpH1JpgQrkZ/KKJq313LZXAS3WWN8P9vXebmfD4O0onLDFOcCSKuPbjWXHmB 1v/Q8v9E6z5ahqFXE6UHftHHXf0vOfeDVc85ifmWtlZcx4TfwFQKIimDSYe1kWzX05Zs 05g8IlM7t5lrtdRVEnHqAG5Xm9mQF+elnitKABiZFC96AKGeheLJKxHpkSi8jOvsq7SL TzEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721116650; x=1721721450; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aeREhiUlGPJyZ2z7ugsEkUx99dFa0IjdnGqusOzdaxk=; b=U6O/R9RU6QpKdGk+nJw8fmahvGxi+yy3YcInwmsKk2vExQmrI5aTtFF1UbvbY775xg eXrgsrr1+vbjLO/0Zn9iXGilKhCqy0sslvvBAaT8YfTYKBnFWJx4018Rc+8QqoWc8Pej RjDnx2dl+m8l5SajF6nnE6l5fTPiYzTrSC8WyK0CYb9A07nO6Veu+EPLKWxbqAtS7yav do9Bfg4bDOuBGSpt2szIndYF1wjNwqBlAoQi+Ezc5icjOceGBjM24L82t5Urpe5C6ydm uFEKS+/NoedtBr5luNWzC1cV4SiNgwR0no8ovs18DIbUyIoJaewr9q6WejI1peoQInpn iZAQ== X-Gm-Message-State: AOJu0Yww7VKaYEaTg6kKkg7MiTWg3RYT7T0xnc2paOgsDuyo/cf3/U1t EYLyLFyefupQYANl86zN5hZ04fxBWClprGuoCSu6PJOjDxXcV/8++593BCsh X-Google-Smtp-Source: AGHT+IGuivwtfSmmrgqO7qo9Xf1D74yvCiVmST4Naspn5A77cKXnab3GMf3cqHyYhqktX5kEjc+RQg== X-Received: by 2002:a17:903:1248:b0:1fb:83c5:cf8a with SMTP id d9443c01a7336-1fc3caba2dfmr13898255ad.8.1721116649856; Tue, 16 Jul 2024 00:57:29 -0700 (PDT) Received: from Ubuntu.. ([106.206.192.176]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-1fc0bc3a599sm53691435ad.232.2024.07.16.00.57.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jul 2024 00:57:29 -0700 (PDT) From: Chandra Pratap To: git@vger.kernel.org Cc: karthik188@gmail.com, chriscool@tuxfamily.org Subject: [PATCH v4 3/5] t-reftable-tree: split test_tree() into two sub-test functions Date: Tue, 16 Jul 2024 13:18:15 +0530 Message-ID: <20240716075641.4264-4-chandrapratap3519@gmail.com> X-Mailer: git-send-email 2.45.GIT In-Reply-To: <20240716075641.4264-1-chandrapratap3519@gmail.com> References: <20240612130217.8877-1-chandrapratap3519@gmail.com> <20240716075641.4264-1-chandrapratap3519@gmail.com> Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In the current testing setup, tests for both tree_search() and infix_walk() defined by reftable/tree.{c, h} are performed by a single test function, test_tree(). Split tree_test() into test_tree_search() and test_infix_walk() responsible for independently testing tree_search() and infix_walk() respectively. This improves the overall readability of the test file as well as simplifies debugging. Note that the last parameter in the tree_search() functiom is 'int insert' which when set, inserts the key if it is not found in the tree. Otherwise, the function returns NULL for such cases. Mentored-by: Patrick Steinhardt Mentored-by: Christian Couder Signed-off-by: Chandra Pratap --- t/unit-tests/t-reftable-tree.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/t/unit-tests/t-reftable-tree.c b/t/unit-tests/t-reftable-tree.c index 5df814d983..68b1b31176 100644 --- a/t/unit-tests/t-reftable-tree.c +++ b/t/unit-tests/t-reftable-tree.c @@ -26,13 +26,12 @@ static void check_increasing(void *arg, void *key) c->last = key; } -static void t_tree(void) +static void t_tree_search(void) { struct tree_node *root = NULL; void *values[11] = { 0 }; struct tree_node *nodes[11] = { 0 }; size_t i = 1; - struct curry c = { 0 }; do { nodes[i] = tree_search(values + i, &root, &t_compare, 1); @@ -44,13 +43,29 @@ static void t_tree(void) check_pointer_eq(nodes[i], tree_search(values + i, &root, &t_compare, 0)); } - infix_walk(root, check_increasing, &c); + tree_free(root); +} + +static void t_infix_walk(void) +{ + struct tree_node *root = NULL; + void *values[11] = { 0 }; + struct curry c = { 0 }; + size_t i = 1; + + do { + tree_search(values + i, &root, &t_compare, 1); + i = (i * 7) % 11; + } while (i != 1); + + infix_walk(root, &check_increasing, &c); tree_free(root); } int cmd_main(int argc, const char *argv[]) { - TEST(t_tree(), "tree_search and infix_walk work"); + TEST(t_tree_search(), "tree_search works"); + TEST(t_infix_walk(), "infix_walk works"); return test_done(); } From patchwork Tue Jul 16 07:48:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandra Pratap X-Patchwork-Id: 13734087 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A258B56B8C for ; Tue, 16 Jul 2024 07:57:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116655; cv=none; b=asbkemWfIRW2bCIDzkvnT8xlbj9wnPuV3xh4HZng4aNgZD4gP82wXJAanDwN2mvBU0Zh/i90VGMaQgJlZXIFfe3jZkA3tIXfVyPJjrFytS1w0zWiCndiTsH5beN3YRpDuw/hIrPT3Jl4yPuPOzRb0BoA4FcAoYl2ASvkS3kOxZc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116655; c=relaxed/simple; bh=ceMm0C4l0yqhmFhIZinJpY7S1wQhLjpe28bHcNSUY4E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H2x6CZuLQM4L2n1ehhu4usWcPyKZgFC8xzAB1QmkOgyBfhiF0GmPm3w2SShshKUblRYW2YVDbgfR/0Rh1tepjUiZOqZXB09x1EdKBukdeTo1/vP0e/GS3gRiSURlzvLoNE1ikH+hGZ4nBAEUGfs/X8lfdkgd9ObvdpUVDkE44yE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kUkk00z3; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kUkk00z3" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1fb3cf78ff3so38554765ad.0 for ; Tue, 16 Jul 2024 00:57:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721116652; x=1721721452; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BBLK/PFNEJM2zP2TvSFC9UyFEkUARDFoE4yw9WyM7k0=; b=kUkk00z3F1T1aBl4mmTnYlyBFE4zLl6nt609lgVuCDGbFRUL+oLWl2OH8PvmFwfWVk jXayD+DKrh5tDusEEM4WXoQSSZJejqjgPoA7adOFhU6TXOwDm1wRH8EnhdhXb95nFTzF IncNeyZGlXaMZXMCGL69QsqX+0Fnr2VPCLVSZnzBRUHDahEZA5kK7jSfcayONgGxh2tD /jwWrgxzY8qQPPEWuHx5GsEW0B8xdB9sbcgXW8aaph1HdQy9+E5miQ0RzqCQZ1y0NB01 zy6cHQL7IWCWN5l9dhKCldqOgtbb40CivwLJXx69YnwNG5RRdL47URnu87z4t6TZidop kY5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721116652; x=1721721452; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BBLK/PFNEJM2zP2TvSFC9UyFEkUARDFoE4yw9WyM7k0=; b=o97oDpVXJFEnXihrsh34SKaNJCQMUxh/Vf/CLGMuOfyBMbPq1f2UqrK//+30DMzg46 z3SsdahwAvJiDLi3zwOEEFdYC+tbw5Hr7Wjh7+N2nDirm+qLuODbyECcKFL8rI9gBhVb j4ONg4rxzNJPKxeYO0aiq11oD7DDG9Fz2FVUCBd7qreO4G+YmGfMEMNNJIK5jbZahLbD Tv4Ui7xtrw+locZwv++NBAPCZW/RJZRmLNC1QjDcKfNED5aAj/Gb/F9mI7cB4NmxRSnA 38bUnXodTyF7IzVia9x+N0vNqqH4IE2gRzzh9+IC2CqjJXtd/htufIDezB+Vw+Qj5YWo sW+A== X-Gm-Message-State: AOJu0YwruRqy3O+hN2qOzkxwMhIc4QgUZyhvkUBffsdNTupvzswFq7s+ KoXZ4WY5GJ5/LJ0dHciv5DXD+V/F5YxXwtRkXf1Zxlg6zwTwQDupGD4gtUQF X-Google-Smtp-Source: AGHT+IEymuiTjtT6xZpeSS+BVecVX8JrE51WYxPhBcnaqkrY2r6CzIgTFLT3Uz++ZrktD8OJLE8IrA== X-Received: by 2002:a17:903:1110:b0:1fb:719a:28cc with SMTP id d9443c01a7336-1fc3cb37b6fmr14254385ad.18.1721116652396; Tue, 16 Jul 2024 00:57:32 -0700 (PDT) Received: from Ubuntu.. ([106.206.192.176]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-1fc0bc3a599sm53691435ad.232.2024.07.16.00.57.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jul 2024 00:57:31 -0700 (PDT) From: Chandra Pratap To: git@vger.kernel.org Cc: karthik188@gmail.com, chriscool@tuxfamily.org Subject: [PATCH v4 4/5] t-reftable-tree: add test for non-existent key Date: Tue, 16 Jul 2024 13:18:16 +0530 Message-ID: <20240716075641.4264-5-chandrapratap3519@gmail.com> X-Mailer: git-send-email 2.45.GIT In-Reply-To: <20240716075641.4264-1-chandrapratap3519@gmail.com> References: <20240612130217.8877-1-chandrapratap3519@gmail.com> <20240716075641.4264-1-chandrapratap3519@gmail.com> Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In the current testing setup for tree_search(), the case for non-existent key is not exercised. Improve this by adding a test-case for the same. Mentored-by: Patrick Steinhardt Mentored-by: Christian Couder Signed-off-by: Chandra Pratap --- t/unit-tests/t-reftable-tree.c | 1 + 1 file changed, 1 insertion(+) diff --git a/t/unit-tests/t-reftable-tree.c b/t/unit-tests/t-reftable-tree.c index 68b1b31176..e04e555509 100644 --- a/t/unit-tests/t-reftable-tree.c +++ b/t/unit-tests/t-reftable-tree.c @@ -43,6 +43,7 @@ static void t_tree_search(void) check_pointer_eq(nodes[i], tree_search(values + i, &root, &t_compare, 0)); } + check(!tree_search(values, &root, &test_compare, 0)); tree_free(root); } From patchwork Tue Jul 16 07:48:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandra Pratap X-Patchwork-Id: 13734088 Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7822F56B8C for ; Tue, 16 Jul 2024 07:57:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116657; cv=none; b=SXKgFe/2Hhyz6WitR7oMvpPvGZ786V+FkJ3vXRiMz01n0eu0H4kPFQ7J83M3yZ9qA1IsBgVAcL0XAtagrs8FyQZfE6ROZHQapJAXn8LUc0anE1grwwcs0O3TCs9Xqh/wZPlYKY65/92zKDSzESIW/RAjskAjTRRk/yIG/QfLAU8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721116657; c=relaxed/simple; bh=IgIIT/Q+92maXWSGW4HNii5lovH69ajT7VA9jl4PXCU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=usByNM2UODPRPg/XhRq9xeKL4r41tLSQR/ZRaN4yei0RqQZFdh3zSfbH4szQGhvDLb48XDAx+vBrNEyNcfm0ay0nFtNy/HSGQboEVJZCKK1xCmS0iIslUJKO+im6+Gwm0toUHjTsrR/0DBHeggIBqW/9gDkd4TPK+koINiQBRBc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Lbcei8z+; arc=none smtp.client-ip=209.85.215.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Lbcei8z+" Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-7163489149eso3764335a12.1 for ; Tue, 16 Jul 2024 00:57:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721116655; x=1721721455; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6g2kOezj5z15y+8p9idCvMvv+eNDfhCRM2vSzksoOYs=; b=Lbcei8z+slpYHUEvuVhHoPooDBFoZx+NgeyyNbRhatp2wB3i07Y4ncPcsqbh3bGIed UhUp1FlIuilJGMTMmyrg3+MRovkzLYzJJbx6w5FqVPlSKNB2KWgaq/ZZ5oksNXU9l2zW Xa+S2zA8dnR+qx+NFuVg4Nz1s1qlQtpzmGJx2PagIYeqqfqnQBFd3ExzRp831KA71Txp rO7iNOL7AlYMhs01D1YJjmzS9pUrQTqjfgQx6KP9OS7nFbHuzUvZbsn1YAvHe2WfZO4Q ywd3S/tIBjq1S0WRzTU6SfZl/UAPnYKLi1xEGgIvEXKWrP2Z0pzdrVI8E2Zfekj4nsdl jlgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721116655; x=1721721455; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6g2kOezj5z15y+8p9idCvMvv+eNDfhCRM2vSzksoOYs=; b=tEDXfWATsDUGW4Xdxp7nlAqO34WHjGJaQp+5+FE4ztBdKCzrrepSpI+zamVtCMuxyi 5+pdkRmbDp+oCQ9G3mbIgQMAspzoEeGxgK3uYQhadIX0BNebKD6z4rzl+2Ae4m7Ua+LT cicwMN3DxaL/+3tStD+tScDFNc0XQ799buapzBUPEXZN4apkLXjyBqqMSKfw97++IDjt N0zL31MyKzEDjQwgd+JDU1VvoFY5i+/FnBQrSpORNI7/3inMvudcPgzvzOggsHbrukeC D/d4Qpr2EVreX0W9n0gnCLhCPRaYE5f7hzs1lmCMB41DVuPGtiTeDqu4fvtSwWgN+HDT ngrg== X-Gm-Message-State: AOJu0YwxrhF+CDOMvQVw8NHsk9RJfAheEhm19f8lkh8YRIyqGqR6Gd6W IZI3ibt4xiCZ2MleRV349EJtlBFM5++PSilyGghf+CHaUKFtdYyDTk9lox7r X-Google-Smtp-Source: AGHT+IHGUDaaUGrEE2AXOJAr5ORzGxK3D2+Z12DS4pun5JBMC60w2FgTCNXcTYWOPtmXEtHfuDTkJg== X-Received: by 2002:a05:6a21:501:b0:1c0:e612:296d with SMTP id adf61e73a8af0-1c3f12b9ef7mr1318077637.54.1721116654837; Tue, 16 Jul 2024 00:57:34 -0700 (PDT) Received: from Ubuntu.. ([106.206.192.176]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-1fc0bc3a599sm53691435ad.232.2024.07.16.00.57.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jul 2024 00:57:34 -0700 (PDT) From: Chandra Pratap To: git@vger.kernel.org Cc: karthik188@gmail.com, chriscool@tuxfamily.org Subject: [PATCH v4 5/5] t-reftable-tree: improve the test for infix_walk() Date: Tue, 16 Jul 2024 13:18:17 +0530 Message-ID: <20240716075641.4264-6-chandrapratap3519@gmail.com> X-Mailer: git-send-email 2.45.GIT In-Reply-To: <20240716075641.4264-1-chandrapratap3519@gmail.com> References: <20240612130217.8877-1-chandrapratap3519@gmail.com> <20240716075641.4264-1-chandrapratap3519@gmail.com> Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In the current testing setup for infix_walk(), the following properties of an infix traversal of a tree remain untested: - every node of the tree must be visited - every node must be visited exactly once In fact, only the property 'traversal in increasing order' is tested. Modify test_infix_walk() to check for all the properties above. This can be achieved by storing the nodes' keys linearly, in a nullified buffer, as we visit them and then checking the input keys against this buffer in increasing order. By checking that the element just after the last input key is 'NULL' in the output buffer, we ensure that every node is traversed exactly once. Mentored-by: Patrick Steinhardt Mentored-by: Christian Couder Signed-off-by: Chandra Pratap --- t/unit-tests/t-reftable-tree.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/t/unit-tests/t-reftable-tree.c b/t/unit-tests/t-reftable-tree.c index e04e555509..b3d4008e5c 100644 --- a/t/unit-tests/t-reftable-tree.c +++ b/t/unit-tests/t-reftable-tree.c @@ -15,15 +15,14 @@ static int t_compare(const void *a, const void *b) } struct curry { - void *last; + void **arr; + size_t len; }; -static void check_increasing(void *arg, void *key) +static void store(void *arg, void *key) { struct curry *c = arg; - if (c->last) - check_int(t_compare(c->last, key), <, 0); - c->last = key; + c->arr[c->len++] = key; } static void t_tree_search(void) @@ -51,15 +50,24 @@ static void t_infix_walk(void) { struct tree_node *root = NULL; void *values[11] = { 0 }; - struct curry c = { 0 }; + void *out[11] = { 0 }; + struct curry c = { + .arr = (void **) &out, + }; size_t i = 1; + size_t count = 0; do { tree_search(values + i, &root, &t_compare, 1); i = (i * 7) % 11; + count++; } while (i != 1); - infix_walk(root, &check_increasing, &c); + infix_walk(root, &store, &c); + for (i = 1; i < ARRAY_SIZE(values); i++) + check_pointer_eq(values + i, out[i - 1]); + check(!out[i - 1]); + check_int(c.len, ==, count); tree_free(root); }