Commit 4e217074 authored by John Snow's avatar John Snow
Browse files

qtest/ahci: Add simple flush test



Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
Message-id: 1426018503-821-2-git-send-email-jsnow@redhat.com
parent 727be1a7
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -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 */