aboutsummaryrefslogtreecommitdiff
path: root/tests/tpm-crb-swtpm-test.c
diff options
context:
space:
mode:
authorStefan Berger <stefanb@linux.vnet.ibm.com>2018-05-30 12:12:50 -0400
committerStefan Berger <stefanb@linux.vnet.ibm.com>2018-06-06 15:43:54 -0400
commitb1e4b7c6b299b8aba1cef9a5ac7221d9eef4e949 (patch)
tree2413569c357cf209f04bece9522ec59fecaa4131 /tests/tpm-crb-swtpm-test.c
parentc1c2a435905ae76b159c573b0c0d6f095b45ebc6 (diff)
test: Move reusable code from tpm-crb-swtpm-test.c to tpm-util.c
Move code we can reuse from tpm-crb-swtpm-test.c into tpm-util.c and prefix functions with 'tpm_util_'. Remove some unnecessary #include's. Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Diffstat (limited to 'tests/tpm-crb-swtpm-test.c')
-rw-r--r--tests/tpm-crb-swtpm-test.c100
1 files changed, 5 insertions, 95 deletions
diff --git a/tests/tpm-crb-swtpm-test.c b/tests/tpm-crb-swtpm-test.c
index c2bde0cbaa..2a22b032ca 100644
--- a/tests/tpm-crb-swtpm-test.c
+++ b/tests/tpm-crb-swtpm-test.c
@@ -15,12 +15,8 @@
#include "qemu/osdep.h"
#include <glib/gstdio.h>
-#include "hw/acpi/tpm.h"
-#include "io/channel-socket.h"
#include "libqtest.h"
#include "tpm-util.h"
-#include "sysemu/tpm.h"
-#include "qapi/qmp/qdict.h"
typedef struct TestState {
char *src_tpm_path;
@@ -28,93 +24,6 @@ typedef struct TestState {
char *uri;
} TestState;
-bool got_stop;
-
-static void migrate(QTestState *who, const char *uri)
-{
- QDict *rsp;
- gchar *cmd;
-
- cmd = g_strdup_printf("{ 'execute': 'migrate',"
- "'arguments': { 'uri': '%s' } }",
- uri);
- rsp = qtest_qmp(who, cmd);
- g_free(cmd);
- g_assert(qdict_haskey(rsp, "return"));
- qobject_unref(rsp);
-}
-
-/*
- * Events can get in the way of responses we are actually waiting for.
- */
-static QDict *wait_command(QTestState *who, const char *command)
-{
- const char *event_string;
- QDict *response;
-
- response = qtest_qmp(who, command);
-
- while (qdict_haskey(response, "event")) {
- /* OK, it was an event */
- event_string = qdict_get_str(response, "event");
- if (!strcmp(event_string, "STOP")) {
- got_stop = true;
- }
- qobject_unref(response);
- response = qtest_qmp_receive(who);
- }
- return response;
-}
-
-static void wait_for_migration_complete(QTestState *who)
-{
- while (true) {
- QDict *rsp, *rsp_return;
- bool completed;
- const char *status;
-
- rsp = wait_command(who, "{ 'execute': 'query-migrate' }");
- rsp_return = qdict_get_qdict(rsp, "return");
- status = qdict_get_str(rsp_return, "status");
- completed = strcmp(status, "completed") == 0;
- g_assert_cmpstr(status, !=, "failed");
- qobject_unref(rsp);
- if (completed) {
- return;
- }
- usleep(1000);
- }
-}
-
-static void migration_start_qemu(QTestState **src_qemu, QTestState **dst_qemu,
- SocketAddress *src_tpm_addr,
- SocketAddress *dst_tpm_addr,
- const char *miguri)
-{
- char *src_qemu_args, *dst_qemu_args;
-
- src_qemu_args = g_strdup_printf(
- "-chardev socket,id=chr,path=%s "
- "-tpmdev emulator,id=dev,chardev=chr "
- "-device tpm-crb,tpmdev=dev ",
- src_tpm_addr->u.q_unix.path);
-
- *src_qemu = qtest_init(src_qemu_args);
-
- dst_qemu_args = g_strdup_printf(
- "-chardev socket,id=chr,path=%s "
- "-tpmdev emulator,id=dev,chardev=chr "
- "-device tpm-crb,tpmdev=dev "
- "-incoming %s",
- dst_tpm_addr->u.q_unix.path,
- miguri);
-
- *dst_qemu = qtest_init(dst_qemu_args);
-
- free(src_qemu_args);
- free(dst_qemu_args);
-}
-
static void tpm_crb_swtpm_test(const void *data)
{
char *args = NULL;
@@ -183,8 +92,9 @@ static void tpm_crb_swtpm_migration_test(const void *data)
goto err_src_tpm_kill;
}
- migration_start_qemu(&src_qemu, &dst_qemu, src_tpm_addr, dst_tpm_addr,
- ts->uri);
+ tpm_util_migration_start_qemu(&src_qemu, &dst_qemu,
+ src_tpm_addr, dst_tpm_addr,
+ ts->uri);
tpm_util_startup(src_qemu, tpm_util_crb_transfer);
tpm_util_pcrextend(src_qemu, tpm_util_crb_transfer);
@@ -197,8 +107,8 @@ static void tpm_crb_swtpm_migration_test(const void *data)
tpm_util_pcrread(src_qemu, tpm_util_crb_transfer, tpm_pcrread_resp,
sizeof(tpm_pcrread_resp));
- migrate(src_qemu, ts->uri);
- wait_for_migration_complete(src_qemu);
+ tpm_util_migrate(src_qemu, ts->uri);
+ tpm_util_wait_for_migration_complete(src_qemu);
tpm_util_pcrread(dst_qemu, tpm_util_crb_transfer, tpm_pcrread_resp,
sizeof(tpm_pcrread_resp));