[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 07/14] qtest/ahci: add flush migrate test
From: |
John Snow |
Subject: |
[Qemu-devel] [PULL 07/14] qtest/ahci: add flush migrate test |
Date: |
Mon, 11 May 2015 14:12:36 -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 90f631c..f770c9d 100644
--- a/tests/ahci-test.c
+++ b/tests/ahci-test.c
@@ -1069,7 +1069,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);
@@ -1152,6 +1152,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
*/
@@ -1400,6 +1449,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 00/14] Ide patches, John Snow, 2015/05/11
- [Qemu-devel] [PULL 02/14] libqos/ahci: Fix sector set method, John Snow, 2015/05/11
- [Qemu-devel] [PULL 01/14] libqos/ahci: Add halted command helpers, John Snow, 2015/05/11
- [Qemu-devel] [PULL 03/14] libqos: Add migration helpers, John Snow, 2015/05/11
- [Qemu-devel] [PULL 04/14] ich9/ahci: Enable Migration, John Snow, 2015/05/11
- [Qemu-devel] [PULL 07/14] qtest/ahci: add flush migrate test,
John Snow <=
- [Qemu-devel] [PULL 05/14] qtest/ahci: Add migration test, John Snow, 2015/05/11
- [Qemu-devel] [PULL 08/14] qtest/ahci: add halted dma test, John Snow, 2015/05/11
- [Qemu-devel] [PULL 06/14] qtest/ahci: add migrate dma test, John Snow, 2015/05/11
- [Qemu-devel] [PULL 09/14] qtest/ahci: add migrate halted dma test, John Snow, 2015/05/11
- [Qemu-devel] [PULL 12/14] qtest: add memset to qtest protocol, John Snow, 2015/05/11
- [Qemu-devel] [PULL 11/14] qtest: Add base64 encoded read/write, John Snow, 2015/05/11
- [Qemu-devel] [PULL 10/14] qtest: allow arbitrarily long sends, John Snow, 2015/05/11
- [Qemu-devel] [PULL 14/14] qtest: pre-buffer hex nibs, John Snow, 2015/05/11
- [Qemu-devel] [PULL 13/14] libqos/ahci: Swap memread/write with bufread/write, John Snow, 2015/05/11
- Re: [Qemu-devel] [PULL 00/14] Ide patches, Peter Maydell, 2015/05/12