qtest/ahci: Add simple flush test

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 1426018503-821-2-git-send-email-jsnow@redhat.com
This commit is contained in:
John Snow 2015-04-28 15:27:51 -04:00
parent 727be1a755
commit 4e217074ca

View File

@ -797,6 +797,29 @@ static void ahci_test_io_rw_simple(AHCIQState *ahci, unsigned bufsize,
g_free(rx); 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 */ /* Test Interfaces */
/******************************************************************************/ /******************************************************************************/
@ -931,6 +954,15 @@ static void test_dma_fragmented(void)
g_free(tx); 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 */ /* 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/io/dma/lba28/fragmented", test_dma_fragmented);
qtest_add_func("/ahci/flush/simple", test_flush);
ret = g_test_run(); ret = g_test_run();
/* Cleanup */ /* Cleanup */