From: Chandra Pratap <chandrapratap3519@gmail.com>
To: git@vger.kernel.org
Cc: Patrick Steinhardt <ps@pks.im>,
Christian Couder <chriscool@tuxfamily.org>,
Chandra Pratap <chandrapratap3519@gmail.com>
Subject: [GSoC][PATCH v2 0/6] t: port reftable/pq_test.c to the unit testing
Date: Thu, 6 Jun 2024 20:53:36 +0530 [thread overview]
Message-ID: <20240606154712.15935-1-chandrapratap3519@gmail.com> (raw)
In-Reply-To: <20240606075601.6989-1-chandrapratap3519@gmail.com>
In the recent codebase update (commit 8bf6fbd, 2023-12-09), a new unit
testing framework written entirely in C was introduced to the Git project
aimed at simplifying testing and reducing test run times.
Currently, tests for the reftable refs-backend are performed by a custom
testing framework defined by reftable/test_framework.{c, h}. Port
reftable/pq_test.c to the unit testing framework and improve upon
the ported test.
The first patch in the series is preparatory cleanup, the second patch
moves the test to the unit testing framework, and the rest of the patches
improve upon the ported test.
Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Chandra Pratap <chandrapratap3519@gmail.com>
---
Changes in v2:
- Change data type of index variable 'i' to 'size_t' from 'int'
- Use correct format specifier for 'size_t' types
- Improve the test for merged_iter_pqueue_top() by asserting equality
between 'top.rec' and the corresponding record in 'recs' array
CI/PR for v2: https://github.com/gitgitgadget/git/pull/1745
Chandra Pratap (6):
reftable: clean up reftable/pq.c
t: move reftable/pq_test.c to the unit testing framework
t-reftable-pq: make merged_iter_pqueue_check() static
t-reftable-pq: make merged_iter_pqueue_check() callable
t-reftable-pq: add test for index based comparison
t-reftable-pq: add tests for merged_iter_pqueue_top()
Makefile | 2 +-
reftable/pq.c | 18 +++--------
reftable/pq.h | 1 -
reftable/pq_test.c | 74 ----------------------------
t/helper/test-reftable.c | 1 -
t/unit-tests/t-reftable-pq.c | 155 +++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 160 insertions(+), 91 deletions(-)
Range-diff against v1:
1: f18b610f63 ! 1: f24dc84877 t: move reftable/pq_test.c to the unit testing framework
@@ t/unit-tests/t-reftable-pq.c: license that can be found in the LICENSE file or a
{
- int i;
- for (i = 1; i < pq.len; i++) {
-+ for (int i = 1; i < pq.len; i++) {
- int parent = (i - 1) / 2;
+- int parent = (i - 1) / 2;
-
- EXPECT(pq_less(&pq.heap[parent], &pq.heap[i]));
++ for (size_t i = 1; i < pq.len; i++) {
++ size_t parent = (i - 1) / 2;
+ check(pq_less(&pq.heap[parent], &pq.heap[i]));
}
}
@@ t/unit-tests/t-reftable-pq.c: license that can be found in the LICENSE file or a
for (i = 0; i < N; i++) {
struct strbuf refname = STRBUF_INIT;
- strbuf_addf(&refname, "%02d", i);
-+ strbuf_addf(&refname, "%02ld", (long)i);
++ strbuf_addf(&refname, "%02"PRIuMAX, (uintmax_t)i);
reftable_record_init(&recs[i], BLOCK_TYPE_REF);
recs[i].u.ref.refname = strbuf_detach(&refname, NULL);
2: 798e0adfeb ! 2: ce42fd1288 t-reftable-pq: make merged_iter_pqueue_check() static
@@ t/unit-tests/t-reftable-pq.c: license that can be found in the LICENSE file or a
-void merged_iter_pqueue_check(struct merged_iter_pqueue pq)
+static void merged_iter_pqueue_check(struct merged_iter_pqueue pq)
{
- for (int i = 1; i < pq.len; i++) {
- int parent = (i - 1) / 2;
+ for (size_t i = 1; i < pq.len; i++) {
+ size_t parent = (i - 1) / 2;
3: 8412672105 ! 3: 226d72aa6a t-reftable-pq: make merged_iter_pqueue_check() callable by reference
@@ t/unit-tests/t-reftable-pq.c: license that can be found in the LICENSE file or a
-static void merged_iter_pqueue_check(struct merged_iter_pqueue pq)
+static void merged_iter_pqueue_check(const struct merged_iter_pqueue *pq)
{
-- for (int i = 1; i < pq.len; i++) {
-+ for (int i = 1; i < pq->len; i++) {
- int parent = (i - 1) / 2;
+- for (size_t i = 1; i < pq.len; i++) {
++ for (size_t i = 1; i < pq->len; i++) {
+ size_t parent = (i - 1) / 2;
- check(pq_less(&pq.heap[parent], &pq.heap[i]));
+ check(pq_less(&pq->heap[parent], &pq->heap[i]));
}
4: 2ef5b8b0b1 ! 4: 00cb440f11 t-reftable-pq: add test for index based comparison
@@ t/unit-tests/t-reftable-pq.c: static void test_pq(void)
merged_iter_pqueue_release(&pq);
}
-+
+static void test_pq_index(void)
+{
+ struct merged_iter_pqueue pq = { 0 };
5: 838e67d2a3 ! 5: dd44486c28 t-reftable-pq: add tests for merged_iter_pqueue_top()
@@ t/unit-tests/t-reftable-pq.c: static void test_pq_record(void)
check(reftable_record_type(e.rec) == BLOCK_TYPE_REF);
if (last)
check_int(strcmp(last, e.rec->u.ref.refname), <, 0);
-@@ t/unit-tests/t-reftable-pq.c: static void test_pq_record(void)
- merged_iter_pqueue_release(&pq);
- }
-
--
- static void test_pq_index(void)
- {
- struct merged_iter_pqueue pq = { 0 };
@@ t/unit-tests/t-reftable-pq.c: static void test_pq_index(void)
}
@@ t/unit-tests/t-reftable-pq.c: static void test_pq_index(void)
+ merged_iter_pqueue_check(&pq);
+ }
+
-+ while (!merged_iter_pqueue_is_empty(pq)) {
++ for (i = N - 1; !merged_iter_pqueue_is_empty(pq); i--) {
+ struct pq_entry top = merged_iter_pqueue_top(pq);
+ struct pq_entry e = merged_iter_pqueue_remove(&pq);
+
+ merged_iter_pqueue_check(&pq);
+ check(pq_entry_equal(&top, &e));
-+ for (i = 0; i < pq.len; i++) {
-+ check(pq_less(&top, &pq.heap[i]));
-+ check_int(top.index, >, i);
++ check(reftable_record_equal(top.rec, &recs[i], GIT_SHA1_RAWSZ));
++ for (size_t j = 0; i < pq.len; j++) {
++ check(pq_less(&top, &pq.heap[j]));
++ check_int(top.index, >, j);
+ }
+ }
+
next prev parent reply other threads:[~2024-06-06 15:48 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-06 7:40 [GSoC][PATCH 0/6] t: port reftable/pq_test.c to the unit testing Chandra Pratap
2024-06-06 7:40 ` [GSoC][PATCH 1/6] reftable: clean up reftable/pq.c Chandra Pratap
2024-06-06 8:51 ` Christian Couder
2024-06-06 10:07 ` Chandra Pratap
2024-06-06 16:23 ` Christian Couder
2024-06-06 7:40 ` [GSoC][PATCH 2/6] t: move reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-06-06 11:48 ` Patrick Steinhardt
2024-06-06 7:40 ` [GSoC][PATCH 3/6] t-reftable-pq: make merged_iter_pqueue_check() static Chandra Pratap
2024-06-06 7:40 ` [GSoC][PATCH 4/6] t-reftable-pq: make merged_iter_pqueue_check() callable by reference Chandra Pratap
2024-06-06 11:48 ` Patrick Steinhardt
2024-06-06 7:40 ` [GSoC][PATCH 5/6] t-reftable-pq: add test for index based comparison Chandra Pratap
2024-06-06 11:48 ` Patrick Steinhardt
2024-06-06 7:40 ` [GSoC][PATCH 6/6] t-reftable-pq: add tests for merged_iter_pqueue_top() Chandra Pratap
2024-06-06 11:49 ` Patrick Steinhardt
2024-06-06 15:23 ` Chandra Pratap [this message]
2024-06-06 15:23 ` [GSoC][PATCH v2 1/6] reftable: clean up reftable/pq.c Chandra Pratap
2024-06-10 7:36 ` Patrick Steinhardt
2024-06-06 15:23 ` [GSoC][PATCH v2 2/6] t: move reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-06-06 15:23 ` [GSoC][PATCH v2 3/6] t-reftable-pq: make merged_iter_pqueue_check() static Chandra Pratap
2024-06-06 15:23 ` [GSoC][PATCH v2 4/6] t-reftable-pq: make merged_iter_pqueue_check() callable by reference Chandra Pratap
2024-06-06 15:23 ` [GSoC][PATCH v2 5/6] t-reftable-pq: add test for index based comparison Chandra Pratap
2024-06-06 15:23 ` [GSoC][PATCH v2 6/6] t-reftable-pq: add tests for merged_iter_pqueue_top() Chandra Pratap
2024-06-11 8:19 ` [GSoC][PATCH v3 0/7] t: port reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-06-11 8:19 ` [PATCH v3 1/7] reftable: remove unncessary curly braces in reftable/pq.c Chandra Pratap
2024-06-11 8:19 ` [PATCH v3 2/7] reftable: change the type of array indices to 'size_t' " Chandra Pratap
2024-06-11 9:02 ` Patrick Steinhardt
2024-06-11 8:19 ` [PATCH v3 3/7] t: move reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-06-11 8:19 ` [PATCH v3 4/7] t-reftable-pq: make merged_iter_pqueue_check() static Chandra Pratap
2024-06-11 8:19 ` [PATCH v3 5/7] t-reftable-pq: make merged_iter_pqueue_check() callable by reference Chandra Pratap
2024-06-11 8:19 ` [PATCH v3 6/7] t-reftable-pq: add test for index based comparison Chandra Pratap
2024-06-11 8:19 ` [PATCH v3 7/7] t-reftable-pq: add tests for merged_iter_pqueue_top() Chandra Pratap
2024-06-14 9:48 ` [GSoC][PATCH v4 0/7] t: port reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-06-14 9:48 ` [PATCH v4 1/7] reftable: remove unncessary curly braces in reftable/pq.c Chandra Pratap
2024-06-14 9:48 ` [PATCH v4 2/7] reftable: change the type of array indices to 'size_t' " Chandra Pratap
2024-06-14 9:48 ` [PATCH v4 3/7] t: move reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-06-14 9:48 ` [PATCH v4 4/7] t-reftable-pq: make merged_iter_pqueue_check() static Chandra Pratap
2024-06-14 9:48 ` [PATCH v4 5/7] t-reftable-pq: make merged_iter_pqueue_check() callable by reference Chandra Pratap
2024-06-14 9:48 ` [PATCH v4 6/7] t-reftable-pq: add test for index based comparison Chandra Pratap
2024-06-14 9:48 ` [PATCH v4 7/7] t-reftable-pq: add tests for merged_iter_pqueue_top() Chandra Pratap
2024-06-14 17:40 ` [GSoC][PATCH v4 0/7] t: port reftable/pq_test.c to the unit testing framework Junio C Hamano
2024-07-23 14:17 ` [GSoC][PATCH v5 " Chandra Pratap
2024-07-23 14:17 ` [PATCH v5 1/7] reftable: remove unncessary curly braces in reftable/pq.c Chandra Pratap
2024-07-23 14:17 ` [PATCH v5 2/7] reftable: change the type of array indices to 'size_t' " Chandra Pratap
2024-07-23 14:17 ` [PATCH v5 3/7] t: move reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-07-23 14:17 ` [PATCH v5 4/7] t-reftable-pq: make merged_iter_pqueue_check() static Chandra Pratap
2024-07-23 14:17 ` [PATCH v5 5/7] t-reftable-pq: make merged_iter_pqueue_check() callable by reference Chandra Pratap
2024-07-23 14:17 ` [PATCH v5 6/7] t-reftable-pq: add test for index based comparison Chandra Pratap
2024-07-24 9:03 ` Patrick Steinhardt
2024-07-24 16:15 ` Junio C Hamano
2024-07-25 5:10 ` Patrick Steinhardt
2024-07-23 14:17 ` [PATCH v5 7/7] t-reftable-pq: add tests for merged_iter_pqueue_top() Chandra Pratap
2024-07-23 17:09 ` [GSoC][PATCH v5 0/7] t: port reftable/pq_test.c to the unit testing framework Junio C Hamano
2024-07-24 5:12 ` Chandra Pratap
2024-07-24 7:17 ` Christian Couder
2024-07-24 7:51 ` Chandra Pratap
2024-07-24 8:56 ` Patrick Steinhardt
2024-07-24 16:06 ` Junio C Hamano
2024-07-25 9:25 ` [GSoC][PATCH v6 " Chandra Pratap
2024-07-25 9:25 ` [PATCH v6 1/7] reftable: remove unncessary curly braces in reftable/pq.c Chandra Pratap
2024-07-25 13:29 ` Kristoffer Haugsbakk
2024-07-25 9:25 ` [PATCH v6 2/7] reftable: change the type of array indices to 'size_t' " Chandra Pratap
2024-07-25 9:25 ` [PATCH v6 3/7] t: move reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-07-25 9:25 ` [PATCH v6 4/7] t-reftable-pq: make merged_iter_pqueue_check() static Chandra Pratap
2024-07-25 9:25 ` [PATCH v6 5/7] t-reftable-pq: make merged_iter_pqueue_check() callable by reference Chandra Pratap
2024-07-25 9:25 ` [PATCH v6 6/7] t-reftable-pq: add test for index based comparison Chandra Pratap
2024-07-30 6:03 ` Patrick Steinhardt
2024-07-25 9:25 ` [PATCH v6 7/7] t-reftable-pq: add tests for merged_iter_pqueue_top() Chandra Pratap
2024-07-30 6:04 ` Patrick Steinhardt
2024-08-01 10:59 ` [GSoC][PATCH v7 0/7] t: port reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-08-01 10:59 ` [PATCH v7 1/7] reftable: remove unnecessary curly braces in reftable/pq.c Chandra Pratap
2024-08-01 10:59 ` [PATCH v7 2/7] reftable: change the type of array indices to 'size_t' " Chandra Pratap
2024-08-01 10:59 ` [PATCH v7 3/7] t: move reftable/pq_test.c to the unit testing framework Chandra Pratap
2024-08-01 10:59 ` [PATCH v7 4/7] t-reftable-pq: make merged_iter_pqueue_check() static Chandra Pratap
2024-08-01 10:59 ` [PATCH v7 5/7] t-reftable-pq: make merged_iter_pqueue_check() callable by reference Chandra Pratap
2024-08-01 10:59 ` [PATCH v7 6/7] t-reftable-pq: add test for index based comparison Chandra Pratap
2024-08-01 10:59 ` [PATCH v7 7/7] t-reftable-pq: add tests for merged_iter_pqueue_top() Chandra Pratap
2024-08-01 11:43 ` [GSoC][PATCH v7 0/7] t: port reftable/pq_test.c to the unit testing framework Patrick Steinhardt
2024-08-01 16:07 ` 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=20240606154712.15935-1-chandrapratap3519@gmail.com \
--to=chandrapratap3519@gmail.com \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=ps@pks.im \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).