git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 v3 0/6] t: port reftable/stack_test.c to the unit testing framework
Date: Mon, 26 Aug 2024 22:59:40 +0530	[thread overview]
Message-ID: <20240826173627.4525-1-chandrapratap3519@gmail.com> (raw)
In-Reply-To: <20240823120514.11070-1-chandrapratap3519@gmail.com>

The reftable library comes with self tests, which are exercised
as part of the usual end-to-end tests and are designed to
observe the end-user visible effects of Git commands. What it
exercises, however, is a better match for the unit-testing
framework, merged at 8bf6fbd0 (Merge branch 'js/doc-unit-tests',
2023-12-09), which is designed to observe how low level
implementation details, at the level of sequences of individual
function calls, behave.

Hence, port reftable/stack_test.c to the unit testing framework and
improve upon the ported test. The first patch in the series 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:
- Use 'size_t' as array index instead of 'int' in a test that is
  modified in patch 2.
- Fix a coding style violation in the newly introduced test in
  patch 6.

CI/PR: https://github.com/gitgitgadget/git/pull/1762

Chandra Pratap(6):
t: move reftable/stack_test.c to the unit testing framework
t: harmonize t-reftable-stack.c with coding guidelines
t-reftable-stack: use Git's tempfile API instead of mkstemp()
t-reftable-stack: use reftable_ref_record_equal() to compare ref records
t-reftable-stack: add test for non-default compaction factor
t-reftable-stack: add test for stack iterators

Makefile                                                 |   2 +-
reftable/reftable-tests.h                                |   1 -
t/helper/test-reftable.c                                 |   1 -
reftable/stack_test.c => t/unit-tests/t-reftable-stack.c | 611 +++++++++++++++++++--------------
4 files changed, 360 insertions(+), 255 deletions(-)

Range-diff against v2:
1:  e172ceefd7 ! 1:  838ccc63a7 t: harmonize t-reftable-stack.c with coding guidelines
    @@ t/unit-tests/t-reftable-stack.c: static void t_reftable_stack_compaction_concurr
      	/* break abstraction boundary to simulate unclean shutdown. */
     -	int i = 0;
     -	for (; i < st->readers_len; i++) {
    -+	for (int i = 0; i < st->readers_len; i++)
    ++	for (size_t i = 0; i < st->readers_len; i++)
      		reftable_reader_free(st->readers[i]);
     -	}
      	st->readers_len = 0;
2:  73b94aaa6a = 2:  2a151c299c t-reftable-stack: use Git's tempfile API instead of mkstemp()
3:  b6f0363656 = 3:  fb5073da2c t-reftable-stack: use reftable_ref_record_equal() to compare ref records
4:  35c09e6054 = 4:  028fa6f70b t-reftable-stack: add test for non-default compaction factor
5:  3163c2af7d ! 5:  fa0d358e65 t-reftable-stack: add test for stack iterators
    @@ t/unit-tests/t-reftable-stack.c: static void t_reftable_stack_add(void)
     +	}
     +
     +	for (i = 0; i < N; i++) {
    -+		err = reftable_stack_add(st, &write_test_ref, &refs[i]);
    ++		err = reftable_stack_add(st, write_test_ref, &refs[i]);
     +		check(!err);
     +	}
     +
    @@ t/unit-tests/t-reftable-stack.c: static void t_reftable_stack_add(void)
     +			.log = &logs[i],
     +			.update_index = reftable_stack_next_update_index(st),
     +		};
    -+		err = reftable_stack_add(st, &write_test_log, &arg);
    ++		err = reftable_stack_add(st, write_test_log, &arg);
     +		check(!err);
     +	}
     +

  parent reply	other threads:[~2024-08-26 17:37 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-06 14:13 [GSoC][PATCH 0/6] t: port reftable/stack_test.c to the unit testing framework Chandra Pratap
2024-08-06 14:13 ` [PATCH 1/6] t: move " Chandra Pratap
2024-08-06 14:13 ` [PATCH 2/6] t: harmonize t-reftable-stack.c with coding guidelines Chandra Pratap
2024-08-06 18:20   ` Eric Sunshine
2024-08-07  5:23   ` Patrick Steinhardt
2024-08-06 14:13 ` [PATCH 3/6] t-reftable-stack: use Git's tempfile API instead of mkstemp() Chandra Pratap
2024-08-06 20:47   ` Junio C Hamano
2024-08-07  5:23   ` Patrick Steinhardt
2024-08-06 14:13 ` [PATCH 4/6] t-reftable-stack: use reftable_ref_record_equal() to compare ref records Chandra Pratap
2024-08-07  5:23   ` Patrick Steinhardt
2024-08-07 14:42     ` Chandra Pratap
2024-08-08  4:07       ` Patrick Steinhardt
2024-08-06 14:13 ` [PATCH 5/6] t-reftable-stack: add test for non-default compaction factor Chandra Pratap
2024-08-06 14:13 ` [PATCH 6/6] t-reftable-stack: add test for stack iterators Chandra Pratap
2024-08-07  5:23   ` Patrick Steinhardt
2024-08-06 20:38 ` [GSoC][PATCH 0/6] t: port reftable/stack_test.c to the unit testing framework Junio C Hamano
2024-08-07 13:01   ` Chandra Pratap
2024-08-23 11:48 ` [GSoC][PATCH v2 " Chandra Pratap
2024-08-23 11:48   ` [PATCH v2 1/6] t: move " Chandra Pratap
2024-08-23 11:48   ` [PATCH v2 2/6] t: harmonize t-reftable-stack.c with coding guidelines Chandra Pratap
2024-08-26  6:39     ` Patrick Steinhardt
2024-08-23 11:48   ` [PATCH v2 3/6] t-reftable-stack: use Git's tempfile API instead of mkstemp() Chandra Pratap
2024-08-23 11:48   ` [PATCH v2 4/6] t-reftable-stack: use reftable_ref_record_equal() to compare ref records Chandra Pratap
2024-08-23 11:48   ` [PATCH v2 5/6] t-reftable-stack: add test for non-default compaction factor Chandra Pratap
2024-08-23 11:48   ` [PATCH v2 6/6] t-reftable-stack: add test for stack iterators Chandra Pratap
2024-08-26  6:39     ` Patrick Steinhardt
2024-08-26 17:29   ` Chandra Pratap [this message]
2024-08-26 17:29     ` [PATCH v3 1/6] t: move reftable/stack_test.c to the unit testing framework Chandra Pratap
2024-08-26 17:29     ` [PATCH v3 2/6] t: harmonize t-reftable-stack.c with coding guidelines Chandra Pratap
2024-08-26 17:29     ` [PATCH v3 3/6] t-reftable-stack: use Git's tempfile API instead of mkstemp() Chandra Pratap
2024-08-26 17:29     ` [PATCH v3 4/6] t-reftable-stack: use reftable_ref_record_equal() to compare ref records Chandra Pratap
2024-08-26 17:29     ` [PATCH v3 5/6] t-reftable-stack: add test for non-default compaction factor Chandra Pratap
2024-08-26 17:29     ` [PATCH v3 6/6] t-reftable-stack: add test for stack iterators Chandra Pratap
2024-08-26 17:48     ` [GSoC][PATCH v3 0/6] t: port reftable/stack_test.c to the unit testing framework Junio C Hamano
2024-08-26 18:34       ` Chandra Pratap
2024-08-26 19:07         ` Junio C Hamano
2024-08-26 19:26           ` Junio C Hamano
2024-09-04 14:38     ` [GSoC][PATCH v4 " Chandra Pratap
2024-09-04 14:38       ` [PATCH v4 1/6] t: move " Chandra Pratap
2024-09-04 17:17         ` Junio C Hamano
2024-09-05  7:15           ` Patrick Steinhardt
2024-09-05 14:45             ` Chandra Pratap
2024-09-05 15:00               ` Patrick Steinhardt
2024-09-05 18:42                 ` Junio C Hamano
2024-09-06  6:02                   ` Patrick Steinhardt
2024-09-04 14:38       ` [PATCH v4 2/6] t: harmonize t-reftable-stack.c with coding guidelines Chandra Pratap
2024-09-04 14:38       ` [PATCH v4 3/6] t-reftable-stack: use Git's tempfile API instead of mkstemp() Chandra Pratap
2024-09-05  7:14         ` Patrick Steinhardt
2024-09-04 14:38       ` [PATCH v4 4/6] t-reftable-stack: use reftable_ref_record_equal() to compare ref records Chandra Pratap
2024-09-05  7:15         ` Patrick Steinhardt
2024-09-04 14:38       ` [PATCH v4 5/6] t-reftable-stack: add test for non-default compaction factor Chandra Pratap
2024-09-04 14:38       ` [PATCH v4 6/6] t-reftable-stack: add test for stack iterators Chandra Pratap
2024-09-05  7:15         ` Patrick Steinhardt
2024-09-06 11:29       ` [GSoC][PATCH v5 0/7] t: port reftable/stack_test.c to the unit testing framework Chandra Pratap
2024-09-06 11:29         ` [PATCH v5 1/7] t: move " Chandra Pratap
2024-09-06 11:29         ` [PATCH v5 2/7] t: harmonize t-reftable-stack.c with coding guidelines Chandra Pratap
2024-09-06 11:29         ` [PATCH v5 3/7] t-reftable-stack: use Git's tempfile API instead of mkstemp() Chandra Pratap
2024-09-06 11:29         ` [PATCH v5 4/7] t-reftable-stack: use reftable_ref_record_equal() to compare ref records Chandra Pratap
2024-09-06 11:29         ` [PATCH v5 5/7] t-reftable-stack: add test for non-default compaction factor Chandra Pratap
2024-09-06 11:29         ` [PATCH v5 6/7] t-reftable-stack: add test for stack iterators Chandra Pratap
2024-09-06 11:29         ` [PATCH v5 7/7] t: clean up leftover reftable test cruft Chandra Pratap
2024-09-06 16:38         ` [GSoC][PATCH v5 0/7] t: port reftable/stack_test.c to the unit testing framework Junio C Hamano
2024-09-06 23:57           ` Junio C Hamano
2024-09-08  4:05         ` [GSoC][PATCH v6 0/6] " Chandra Pratap
2024-09-08  4:05           ` [PATCH v6 1/6] t: move " Chandra Pratap
2024-09-08  4:05           ` [PATCH v6 2/6] t: harmonize t-reftable-stack.c with coding guidelines Chandra Pratap
2024-09-08  4:05           ` [PATCH v6 3/6] t-reftable-stack: use Git's tempfile API instead of mkstemp() Chandra Pratap
2024-09-08  4:05           ` [PATCH v6 4/6] t-reftable-stack: use reftable_ref_record_equal() to compare ref records Chandra Pratap
2024-09-09 11:42             ` Patrick Steinhardt
2024-09-08  4:06           ` [PATCH v6 5/6] t-reftable-stack: add test for non-default compaction factor Chandra Pratap
2024-09-08  4:06           ` [PATCH v6 6/6] t-reftable-stack: add test for stack iterators Chandra Pratap
2024-09-09 11:42           ` [GSoC][PATCH v6 0/6] t: port reftable/stack_test.c to the unit testing framework Patrick Steinhardt

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=20240826173627.4525-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).