[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 07/14] qtest/ahci: add flush migrate test
From: |
John Snow |
Subject: |
[Qemu-devel] [PULL v2 07/14] qtest/ahci: add flush migrate test |
Date: |
Tue, 12 May 2015 14:46:19 -0400 |
Use blkdebug to inject an error on first flush, then attempt to flush
on the first guest. When the error halts the VM, migrate to the
second VM, and attempt to resume the command.
Signed-off-by: John Snow <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
---
tests/ahci-test.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 51 insertions(+), 1 deletion(-)
diff --git a/tests/ahci-test.c b/tests/ahci-test.c
index 6513330..f6de355 100644
--- a/tests/ahci-test.c
+++ b/tests/ahci-test.c
@@ -1071,7 +1071,7 @@ static void test_flush_retry(void)
debug_path,
tmp_path);
- /* Issue Flush Command */
+ /* Issue Flush Command and wait for error */
port = ahci_port_select(ahci);
ahci_port_clear(ahci, port);
cmd = ahci_command_create(CMD_FLUSH_CACHE);
@@ -1154,6 +1154,55 @@ static void test_migrate_dma(void)
g_free(tx);
}
+/**
+ * Migration test: Try to flush, migrate, then resume.
+ */
+static void test_flush_migrate(void)
+{
+ AHCIQState *src, *dst;
+ AHCICommand *cmd;
+ uint8_t px;
+ const char *s;
+ const char *uri = "tcp:127.0.0.1:1234";
+
+ prepare_blkdebug_script(debug_path, "flush_to_disk");
+
+ src = ahci_boot_and_enable("-drive file=blkdebug:%s:%s,if=none,id=drive0,"
+ "cache=writeback,rerror=stop,werror=stop "
+ "-M q35 "
+ "-device ide-hd,drive=drive0 ",
+ debug_path, tmp_path);
+ dst = ahci_boot("-drive file=%s,if=none,id=drive0,"
+ "cache=writeback,rerror=stop,werror=stop "
+ "-M q35 "
+ "-device ide-hd,drive=drive0 "
+ "-incoming %s", tmp_path, uri);
+
+ set_context(src->parent);
+
+ /* Issue Flush Command */
+ px = ahci_port_select(src);
+ ahci_port_clear(src, px);
+ cmd = ahci_command_create(CMD_FLUSH_CACHE);
+ ahci_command_commit(src, cmd, px);
+ ahci_command_issue_async(src, cmd);
+ qmp_eventwait("STOP");
+
+ /* Migrate over */
+ ahci_migrate(src, dst, uri);
+
+ /* Complete the command */
+ s = "{'execute':'cont' }";
+ qmp_async(s);
+ qmp_eventwait("RESUME");
+ ahci_command_wait(dst, cmd);
+ ahci_command_verify(dst, cmd);
+
+ ahci_command_free(cmd);
+ ahci_shutdown(src);
+ ahci_shutdown(dst);
+}
+
/******************************************************************************/
/* AHCI I/O Test Matrix Definitions
*/
@@ -1402,6 +1451,7 @@ int main(int argc, char **argv)
qtest_add_func("/ahci/flush/simple", test_flush);
qtest_add_func("/ahci/flush/retry", test_flush_retry);
+ qtest_add_func("/ahci/flush/migrate", test_flush_migrate);
qtest_add_func("/ahci/migrate/sanity", test_migrate_sanity);
qtest_add_func("/ahci/migrate/dma", test_migrate_dma);
--
2.1.0
- [Qemu-devel] [PULL v2 00/14] Ide patches, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 08/14] qtest/ahci: add halted dma test, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 01/14] libqos/ahci: Add halted command helpers, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 02/14] libqos/ahci: Fix sector set method, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 04/14] ich9/ahci: Enable Migration, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 07/14] qtest/ahci: add flush migrate test,
John Snow <=
- [Qemu-devel] [PULL v2 06/14] qtest/ahci: add migrate dma test, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 12/14] qtest: add memset to qtest protocol, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 05/14] qtest/ahci: Add migration test, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 03/14] libqos: Add migration helpers, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 14/14] qtest: pre-buffer hex nibs, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 09/14] qtest/ahci: add migrate halted dma test, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 13/14] libqos/ahci: Swap memread/write with bufread/write, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 10/14] qtest: allow arbitrarily long sends, John Snow, 2015/05/12
- [Qemu-devel] [PULL v2 11/14] qtest: Add base64 encoded read/write, John Snow, 2015/05/12
- Re: [Qemu-devel] [PULL v2 00/14] Ide patches, Peter Maydell, 2015/05/12