From 4e217074ca3f704d9a1c3bd1ebb03eb7621ab882 Mon Sep 17 00:00:00 2001 From: John Snow Date: Tue, 28 Apr 2015 15:27:51 -0400 Subject: qtest/ahci: Add simple flush test Signed-off-by: John Snow Message-id: 1426018503-821-2-git-send-email-jsnow@redhat.com --- tests/ahci-test.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/ahci-test.c b/tests/ahci-test.c index 668624298..4a5c788e5 100644 --- a/tests/ahci-test.c +++ b/tests/ahci-test.c @@ -797,6 +797,29 @@ static void ahci_test_io_rw_simple(AHCIQState *ahci, unsigned bufsize, g_free(rx); } +static void ahci_test_nondata(AHCIQState *ahci, uint8_t ide_cmd) +{ + uint8_t px; + AHCICommand *cmd; + + /* Sanitize */ + px = ahci_port_select(ahci); + ahci_port_clear(ahci, px); + + /* Issue Command */ + cmd = ahci_command_create(ide_cmd); + ahci_command_commit(ahci, cmd, px); + ahci_command_issue(ahci, cmd); + ahci_command_verify(ahci, cmd); + ahci_command_free(cmd); +} + +static void ahci_test_flush(AHCIQState *ahci) +{ + ahci_test_nondata(ahci, CMD_FLUSH_CACHE); +} + + /******************************************************************************/ /* Test Interfaces */ /******************************************************************************/ @@ -931,6 +954,15 @@ static void test_dma_fragmented(void) g_free(tx); } +static void test_flush(void) +{ + AHCIQState *ahci; + + ahci = ahci_boot_and_enable(); + ahci_test_flush(ahci); + ahci_shutdown(ahci); +} + /******************************************************************************/ /* AHCI I/O Test Matrix Definitions */ @@ -1171,6 +1203,8 @@ int main(int argc, char **argv) qtest_add_func("/ahci/io/dma/lba28/fragmented", test_dma_fragmented); + qtest_add_func("/ahci/flush/simple", test_flush); + ret = g_test_run(); /* Cleanup */ -- cgit v1.2.3