git.vger.kernel.org archive mirror
 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/6] t-reftable-stack: use Git's tempfile API instead of mkstemp()
Date: Wed, 7 Aug 2024 07:23:52 +0200	[thread overview]
Message-ID: <ZrME6CR7eX_Fj0DQ@tanuki> (raw)
In-Reply-To: <20240806142020.4615-4-chandrapratap3519@gmail.com>

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

On Tue, Aug 06, 2024 at 07:43:39PM +0530, Chandra Pratap wrote:
> Git's tempfile API defined by $GIT_DIR/tempfile.{c, h} provides
> a unified interface for tempfile operations. Since reftable/stack.c
> uses this API for all its tempfile needs instead of raw functions
> like mkstemp(), make the ported stack test strictly use Git's
> tempfile API as well.
> 
> Mentored-by: Patrick Steinhardt <ps@pks.im>
> Mentored-by: Christian Couder <chriscool@tuxfamily.org>
> Signed-off-by: Chandra Pratap <chandrapratap3519@gmail.com>
> ---
>  t/unit-tests/t-reftable-stack.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/t/unit-tests/t-reftable-stack.c b/t/unit-tests/t-reftable-stack.c
> index e033feb8ee..14909b127e 100644
> --- a/t/unit-tests/t-reftable-stack.c
> +++ b/t/unit-tests/t-reftable-stack.c
> @@ -76,7 +76,8 @@ static char *get_tmp_dir(int linenumber)
>  static void t_read_file(void)
>  {
>  	char *fn = get_tmp_template(__LINE__);
> -	int fd = mkstemp(fn);
> +	struct tempfile *tmp = mks_tempfile(fn);
> +	int fd = get_tempfile_fd(tmp);
>  	char out[1024] = "line1\n\nline2\nline3";
>  	int n, err;
>  	char **names = NULL;
> @@ -95,6 +96,7 @@ static void t_read_file(void)
>  		check_str(want[i], names[i]);
>  	free_names(names);
>  	(void) remove(fn);
> +	delete_tempfile(&tmp);
>  }

I'm a bit torn whether this is a good idea because we are using a higher
level interface that doesn't have unit tests itself. As I see it, both
low-level primitives and anything that is already verified via another
set of unit tests can be used when writing unit tests. But as far as I
know, the tempfile interface does not yet have any.

Maybe I'm being overthinking this though.

Ideally, we wouldn't have to care about the underlying issue at all,
namely cleanup of the temporary file. This is something that the clar
brings to us for free: it can create temporary directories that it also
knows to clean up automatically once done.

Patrick

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

  parent reply	other threads:[~2024-08-07  5:23 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 [this message]
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   ` [GSoC][PATCH v3 0/6] t: port reftable/stack_test.c to the unit testing framework Chandra Pratap
2024-08-26 17:29     ` [PATCH v3 1/6] t: move " 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=ZrME6CR7eX_Fj0DQ@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 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).