diff options
author | Stefan Berger <stefanb@linux.vnet.ibm.com> | 2018-05-30 12:12:50 -0400 |
---|---|---|
committer | Stefan Berger <stefanb@linux.vnet.ibm.com> | 2018-06-06 15:43:54 -0400 |
commit | b1e4b7c6b299b8aba1cef9a5ac7221d9eef4e949 (patch) | |
tree | 2413569c357cf209f04bece9522ec59fecaa4131 /tests/tpm-crb-swtpm-test.c | |
parent | c1c2a435905ae76b159c573b0c0d6f095b45ebc6 (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.c | 100 |
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)); |