tests/qtest: libqtest: Avoid using hardcoded /tmp

The qtest library was written to use hardcoded /tmp directory for
temporary files. Update to use g_get_tmp_dir() and g_dir_make_tmp()
for a portable implementation.

Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20220925113032.1949844-22-bmeng.cn@gmail.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
master
Bin Meng 2022-09-25 19:29:59 +08:00 committed by Thomas Huth
parent 28ea545b33
commit b6dabc82b0
1 changed files with 8 additions and 4 deletions

View File

@ -265,8 +265,10 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
s = g_new(QTestState, 1);
socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
qmp_socket_path = g_strdup_printf("/tmp/qtest-%d.qmp", getpid());
socket_path = g_strdup_printf("%s/qtest-%d.sock",
g_get_tmp_dir(), getpid());
qmp_socket_path = g_strdup_printf("%s/qtest-%d.qmp",
g_get_tmp_dir(), getpid());
/* It's possible that if an earlier test run crashed it might
* have left a stale unix socket lying around. Delete any
@ -390,10 +392,12 @@ QTestState *qtest_initf(const char *fmt, ...)
QTestState *qtest_init_with_serial(const char *extra_args, int *sock_fd)
{
int sock_fd_init;
char *sock_path, sock_dir[] = "/tmp/qtest-serial-XXXXXX";
g_autofree char *sock_dir = NULL;
char *sock_path;
QTestState *qts;
g_assert_true(g_mkdtemp(sock_dir) != NULL);
sock_dir = g_dir_make_tmp("qtest-serial-XXXXXX", NULL);
g_assert_true(sock_dir != NULL);
sock_path = g_strdup_printf("%s/sock", sock_dir);
sock_fd_init = init_socket(sock_path);