[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/6] qtest: add C version of test infrastructure
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH 3/6] qtest: add C version of test infrastructure |
Date: |
Wed, 18 Jan 2012 17:00:31 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 |
Am 13.01.2012 19:32, schrieb Anthony Liguori:
> This also includes a qtest wrapper script to make it easier to launch qtest
> tests directly.
>
> Signed-off-by: Anthony Liguori <address@hidden>
> +QTestState *qtest_init(const char *extra_args)
> +{
> + QTestState *s;
> + struct sockaddr_un addr;
> + int sock, ret, i;
> + gchar *socket_path;
> + gchar *pid_file;
> + gchar *command;
> + const char *qemu_binary;
> + pid_t pid;
> +
> + qemu_binary = getenv("QTEST_QEMU_BINARY");
> + g_assert(qemu_binary != NULL);
> +
> + socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
> + pid_file = g_strdup_printf("/tmp/qtest-%d.pid", getpid());
> +
> + s = g_malloc(sizeof(*s));
> +
> + sock = socket(PF_UNIX, SOCK_STREAM, 0);
> + g_assert_no_errno(sock);
> +
> + addr.sun_family = AF_UNIX;
> + snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path);
> +
> + pid = fork();
> + if (pid == 0) {
> + command = g_strdup_printf("%s "
> + "-qtest unix:%s,server,nowait "
> + "-qtest-log /dev/null "
> + "-pidfile %s "
> + "-machine accel=qtest "
> + "%s", qemu_binary, socket_path,
> + pid_file,
> + extra_args ?: "");
> +
> + ret = system(command);
> + exit(ret);
> + g_free(command);
> + }
> +
> + do {
> + sleep(1);
This is the line that takes the greatest part of the time for make
check-qtest. Can we use some shorter delay if it's required at all?
> + ret = connect(sock, (struct sockaddr *)&addr, sizeof(addr));
> + } while (ret == -1);
> + g_assert_no_errno(ret);
> +
> + s->fd = sock;
> + s->rx = g_string_new("");
> + s->pid_file = pid_file;
> + for (i = 0; i < MAX_IRQ; i++) {
> + s->irq_level[i] = false;
> + }
> +
> + g_free(socket_path);
> +
> + return s;
> +}
Kevin
[Qemu-devel] [PATCH 6/6] qtest: add rtc-test test-case, Anthony Liguori, 2012/01/13