t-reftable-stack: use Git's tempfile API instead of mkstemp()

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.

A bigger benefit is the fact that we know to clean up the tempfile
in case the test fails because it gets registered and pruned via a
signal handler.

Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Chandra Pratap <chandrapratap3519@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Chandra Pratap
2024-09-08 09:35:58 +05:30
committed by Junio C Hamano
parent e4e384f68d
commit 476abc39ba

View File

@ -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);
}
static int write_test_ref(struct reftable_writer *wr, void *arg)