[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/7] qtest: don't use system command to avoid double
From: |
Anthony Liguori |
Subject: |
[Qemu-devel] [PATCH 1/7] qtest: don't use system command to avoid double fork |
Date: |
Tue, 16 Apr 2013 09:45:15 -0500 |
Currently we waitpid on the child process we spawn off that does
nothing more than system() another process. While this does not
appear to be incorrect, it's wasteful and confusing so get rid of
it.
Signed-off-by: Anthony Liguori <address@hidden>
---
tests/libqtest.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/tests/libqtest.c b/tests/libqtest.c
index 389596a..884f959 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -107,7 +107,7 @@ static pid_t qtest_qemu_pid(QTestState *s)
QTestState *qtest_init(const char *extra_args)
{
QTestState *s;
- int sock, qmpsock, ret, i;
+ int sock, qmpsock, i;
gchar *pid_file;
gchar *command;
const char *qemu_binary;
@@ -136,10 +136,8 @@ QTestState *qtest_init(const char *extra_args)
"%s", qemu_binary, s->socket_path,
s->qmp_socket_path, pid_file,
extra_args ?: "");
-
- ret = system(command);
- exit(ret);
- g_free(command);
+ execlp("/bin/sh", "sh", "-c", command, NULL);
+ exit(1);
}
s->fd = socket_accept(sock);
@@ -169,9 +167,8 @@ void qtest_quit(QTestState *s)
pid_t pid = qtest_qemu_pid(s);
if (pid != -1) {
- /* kill QEMU, but wait for the child created by us to run system() */
kill(pid, SIGTERM);
- waitpid(s->child_pid, &status, 0);
+ waitpid(pid, &status, 0);
}
unlink(s->pid_file);
--
1.8.0
- [Qemu-devel] [PATCH 0/7] qtest: add libqos, Anthony Liguori, 2013/04/16
- [Qemu-devel] [PATCH 6/7] i440fx-test: add test for PAM functionality, Anthony Liguori, 2013/04/16
- [Qemu-devel] [PATCH 7/7] fw_cfg: add qtest test case, Anthony Liguori, 2013/04/16
- [Qemu-devel] [PATCH 4/7] libqos: add malloc support, Anthony Liguori, 2013/04/16
- Re: [Qemu-devel] [PATCH 0/7] qtest: add libqos, Anthony Liguori, 2013/04/22