Commit bb494a50 authored by Markus Armbruster's avatar Markus Armbruster Committed by Kevin Wolf
Browse files

qtest: Tidy up temporary files properly



Each test litters /tmp with several files: a pid file and two
sockets.  Tidy up.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 1f69c2b0
Loading
Loading
Loading
Loading
+16 −13
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ struct QTestState
    bool irq_level[MAX_IRQ];
    GString *rx;
    gchar *pid_file;
    char *socket_path, *qmp_socket_path;
};

#define g_assert_no_errno(ret) do { \
@@ -88,8 +89,6 @@ QTestState *qtest_init(const char *extra_args)
{
    QTestState *s;
    int sock, qmpsock, ret, i;
    gchar *socket_path;
    gchar *qmp_socket_path;
    gchar *pid_file;
    gchar *command;
    const char *qemu_binary;
@@ -98,14 +97,14 @@ QTestState *qtest_init(const char *extra_args)
    qemu_binary = getenv("QTEST_QEMU_BINARY");
    g_assert(qemu_binary != NULL);

    socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
    qmp_socket_path = g_strdup_printf("/tmp/qtest-%d.qmp", getpid());
    pid_file = g_strdup_printf("/tmp/qtest-%d.pid", getpid());

    s = g_malloc(sizeof(*s));

    sock = init_socket(socket_path);
    qmpsock = init_socket(qmp_socket_path);
    s->socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
    s->qmp_socket_path = g_strdup_printf("/tmp/qtest-%d.qmp", getpid());
    pid_file = g_strdup_printf("/tmp/qtest-%d.pid", getpid());

    sock = init_socket(s->socket_path);
    qmpsock = init_socket(s->qmp_socket_path);

    pid = fork();
    if (pid == 0) {
@@ -115,8 +114,8 @@ QTestState *qtest_init(const char *extra_args)
                                  "-qmp unix:%s,nowait "
                                  "-pidfile %s "
                                  "-machine accel=qtest "
                                  "%s", qemu_binary, socket_path,
                                  qmp_socket_path, pid_file,
                                  "%s", qemu_binary, s->socket_path,
                                  s->qmp_socket_path, pid_file,
                                  extra_args ?: "");

        ret = system(command);
@@ -133,9 +132,6 @@ QTestState *qtest_init(const char *extra_args)
        s->irq_level[i] = false;
    }

    g_free(socket_path);
    g_free(qmp_socket_path);

    /* Read the QMP greeting and then do the handshake */
    qtest_qmp(s, "");
    qtest_qmp(s, "{ 'execute': 'qmp_capabilities' }");
@@ -160,6 +156,13 @@ void qtest_quit(QTestState *s)

        fclose(f);
    }

    unlink(s->pid_file);
    unlink(s->socket_path);
    unlink(s->qmp_socket_path);
    g_free(s->pid_file);
    g_free(s->socket_path);
    g_free(s->qmp_socket_path);
}

static void socket_sendf(int fd, const char *fmt, va_list ap)