Loading tests/ahci-test.c +45 −22 Original line number Diff line number Diff line Loading @@ -101,23 +101,40 @@ static void generate_pattern(void *buffer, size_t len, size_t cycle_len) /** * Start a Q35 machine and bookmark a handle to the AHCI device. */ static AHCIQState *ahci_boot(void) static AHCIQState *ahci_vboot(const char *cli, va_list ap) { AHCIQState *s; const char *cli; s = g_malloc0(sizeof(AHCIQState)); s->parent = qtest_pc_vboot(cli, ap); alloc_set_flags(s->parent->alloc, ALLOC_LEAK_ASSERT); /* Verify that we have an AHCI device present. */ s->dev = get_ahci_device(&s->fingerprint); return s; } /** * Start a Q35 machine and bookmark a handle to the AHCI device. */ static AHCIQState *ahci_boot(const char *cli, ...) { AHCIQState *s; va_list ap; if (cli) { va_start(ap, cli); s = ahci_vboot(cli, ap); va_end(ap); } else { cli = "-drive if=none,id=drive0,file=%s,cache=writeback,serial=%s" ",format=qcow2" " -M q35 " "-device ide-hd,drive=drive0 " "-global ide-hd.ver=%s"; s->parent = qtest_pc_boot(cli, tmp_path, "testdisk", "version"); alloc_set_flags(s->parent->alloc, ALLOC_LEAK_ASSERT); /* Verify that we have an AHCI device present. */ s->dev = get_ahci_device(&s->fingerprint); s = ahci_boot(cli, tmp_path, "testdisk", "version"); } return s; } Loading @@ -128,7 +145,6 @@ static AHCIQState *ahci_boot(void) static void ahci_shutdown(AHCIQState *ahci) { QOSState *qs = ahci->parent; ahci_clean_mem(ahci); free_ahci_device(ahci->dev); g_free(ahci); Loading @@ -139,10 +155,18 @@ static void ahci_shutdown(AHCIQState *ahci) * Boot and fully enable the HBA device. * @see ahci_boot, ahci_pci_enable and ahci_hba_enable. */ static AHCIQState *ahci_boot_and_enable(void) static AHCIQState *ahci_boot_and_enable(const char *cli, ...) { AHCIQState *ahci; ahci = ahci_boot(); va_list ap; if (cli) { va_start(ap, cli); ahci = ahci_vboot(cli, ap); va_end(ap); } else { ahci = ahci_boot(NULL); } ahci_pci_enable(ahci); ahci_hba_enable(ahci); Loading Loading @@ -830,7 +854,7 @@ static void ahci_test_flush(AHCIQState *ahci) static void test_sanity(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_shutdown(ahci); } Loading @@ -841,7 +865,7 @@ static void test_sanity(void) static void test_pci_spec(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_test_pci_spec(ahci); ahci_shutdown(ahci); } Loading @@ -853,8 +877,7 @@ static void test_pci_spec(void) static void test_pci_enable(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_pci_enable(ahci); ahci_shutdown(ahci); } Loading @@ -867,7 +890,7 @@ static void test_hba_spec(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_pci_enable(ahci); ahci_test_hba_spec(ahci); ahci_shutdown(ahci); Loading @@ -881,7 +904,7 @@ static void test_hba_enable(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_pci_enable(ahci); ahci_hba_enable(ahci); ahci_shutdown(ahci); Loading @@ -895,7 +918,7 @@ static void test_identify(void) { AHCIQState *ahci; ahci = ahci_boot_and_enable(); ahci = ahci_boot_and_enable(NULL); ahci_test_identify(ahci); ahci_shutdown(ahci); } Loading @@ -916,7 +939,7 @@ static void test_dma_fragmented(void) unsigned char *rx = g_malloc0(bufsize); uint64_t ptr; ahci = ahci_boot_and_enable(); ahci = ahci_boot_and_enable(NULL); px = ahci_port_select(ahci); ahci_port_clear(ahci, px); Loading Loading @@ -958,7 +981,7 @@ static void test_flush(void) { AHCIQState *ahci; ahci = ahci_boot_and_enable(); ahci = ahci_boot_and_enable(NULL); ahci_test_flush(ahci); ahci_shutdown(ahci); } Loading Loading @@ -1073,7 +1096,7 @@ static void test_io_rw_interface(enum AddrMode lba48, enum IOMode dma, { AHCIQState *ahci; ahci = ahci_boot_and_enable(); ahci = ahci_boot_and_enable(NULL); ahci_test_io_rw_simple(ahci, bufsize, sector, io_cmds[dma][lba48][IO_READ], io_cmds[dma][lba48][IO_WRITE]); Loading tests/libqos/libqos-pc.c +5 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,11 @@ static QOSOps qos_ops = { .uninit_allocator = pc_alloc_uninit }; QOSState *qtest_pc_vboot(const char *cmdline_fmt, va_list ap) { return qtest_vboot(&qos_ops, cmdline_fmt, ap); } QOSState *qtest_pc_boot(const char *cmdline_fmt, ...) { QOSState *qs; Loading tests/libqos/libqos-pc.h +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ #include "libqos/libqos.h" QOSState *qtest_pc_vboot(const char *cmdline_fmt, va_list ap); QOSState *qtest_pc_boot(const char *cmdline_fmt, ...); void qtest_pc_shutdown(QOSState *qs); Loading Loading
tests/ahci-test.c +45 −22 Original line number Diff line number Diff line Loading @@ -101,23 +101,40 @@ static void generate_pattern(void *buffer, size_t len, size_t cycle_len) /** * Start a Q35 machine and bookmark a handle to the AHCI device. */ static AHCIQState *ahci_boot(void) static AHCIQState *ahci_vboot(const char *cli, va_list ap) { AHCIQState *s; const char *cli; s = g_malloc0(sizeof(AHCIQState)); s->parent = qtest_pc_vboot(cli, ap); alloc_set_flags(s->parent->alloc, ALLOC_LEAK_ASSERT); /* Verify that we have an AHCI device present. */ s->dev = get_ahci_device(&s->fingerprint); return s; } /** * Start a Q35 machine and bookmark a handle to the AHCI device. */ static AHCIQState *ahci_boot(const char *cli, ...) { AHCIQState *s; va_list ap; if (cli) { va_start(ap, cli); s = ahci_vboot(cli, ap); va_end(ap); } else { cli = "-drive if=none,id=drive0,file=%s,cache=writeback,serial=%s" ",format=qcow2" " -M q35 " "-device ide-hd,drive=drive0 " "-global ide-hd.ver=%s"; s->parent = qtest_pc_boot(cli, tmp_path, "testdisk", "version"); alloc_set_flags(s->parent->alloc, ALLOC_LEAK_ASSERT); /* Verify that we have an AHCI device present. */ s->dev = get_ahci_device(&s->fingerprint); s = ahci_boot(cli, tmp_path, "testdisk", "version"); } return s; } Loading @@ -128,7 +145,6 @@ static AHCIQState *ahci_boot(void) static void ahci_shutdown(AHCIQState *ahci) { QOSState *qs = ahci->parent; ahci_clean_mem(ahci); free_ahci_device(ahci->dev); g_free(ahci); Loading @@ -139,10 +155,18 @@ static void ahci_shutdown(AHCIQState *ahci) * Boot and fully enable the HBA device. * @see ahci_boot, ahci_pci_enable and ahci_hba_enable. */ static AHCIQState *ahci_boot_and_enable(void) static AHCIQState *ahci_boot_and_enable(const char *cli, ...) { AHCIQState *ahci; ahci = ahci_boot(); va_list ap; if (cli) { va_start(ap, cli); ahci = ahci_vboot(cli, ap); va_end(ap); } else { ahci = ahci_boot(NULL); } ahci_pci_enable(ahci); ahci_hba_enable(ahci); Loading Loading @@ -830,7 +854,7 @@ static void ahci_test_flush(AHCIQState *ahci) static void test_sanity(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_shutdown(ahci); } Loading @@ -841,7 +865,7 @@ static void test_sanity(void) static void test_pci_spec(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_test_pci_spec(ahci); ahci_shutdown(ahci); } Loading @@ -853,8 +877,7 @@ static void test_pci_spec(void) static void test_pci_enable(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_pci_enable(ahci); ahci_shutdown(ahci); } Loading @@ -867,7 +890,7 @@ static void test_hba_spec(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_pci_enable(ahci); ahci_test_hba_spec(ahci); ahci_shutdown(ahci); Loading @@ -881,7 +904,7 @@ static void test_hba_enable(void) { AHCIQState *ahci; ahci = ahci_boot(); ahci = ahci_boot(NULL); ahci_pci_enable(ahci); ahci_hba_enable(ahci); ahci_shutdown(ahci); Loading @@ -895,7 +918,7 @@ static void test_identify(void) { AHCIQState *ahci; ahci = ahci_boot_and_enable(); ahci = ahci_boot_and_enable(NULL); ahci_test_identify(ahci); ahci_shutdown(ahci); } Loading @@ -916,7 +939,7 @@ static void test_dma_fragmented(void) unsigned char *rx = g_malloc0(bufsize); uint64_t ptr; ahci = ahci_boot_and_enable(); ahci = ahci_boot_and_enable(NULL); px = ahci_port_select(ahci); ahci_port_clear(ahci, px); Loading Loading @@ -958,7 +981,7 @@ static void test_flush(void) { AHCIQState *ahci; ahci = ahci_boot_and_enable(); ahci = ahci_boot_and_enable(NULL); ahci_test_flush(ahci); ahci_shutdown(ahci); } Loading Loading @@ -1073,7 +1096,7 @@ static void test_io_rw_interface(enum AddrMode lba48, enum IOMode dma, { AHCIQState *ahci; ahci = ahci_boot_and_enable(); ahci = ahci_boot_and_enable(NULL); ahci_test_io_rw_simple(ahci, bufsize, sector, io_cmds[dma][lba48][IO_READ], io_cmds[dma][lba48][IO_WRITE]); Loading
tests/libqos/libqos-pc.c +5 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,11 @@ static QOSOps qos_ops = { .uninit_allocator = pc_alloc_uninit }; QOSState *qtest_pc_vboot(const char *cmdline_fmt, va_list ap) { return qtest_vboot(&qos_ops, cmdline_fmt, ap); } QOSState *qtest_pc_boot(const char *cmdline_fmt, ...) { QOSState *qs; Loading
tests/libqos/libqos-pc.h +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ #include "libqos/libqos.h" QOSState *qtest_pc_vboot(const char *cmdline_fmt, va_list ap); QOSState *qtest_pc_boot(const char *cmdline_fmt, ...); void qtest_pc_shutdown(QOSState *qs); Loading