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:
parent
727be1a755
commit
4e217074ca
@ -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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user