tests: fix ide-test leaks

Spotted by ASAN.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
This commit is contained in:
Marc-André Lureau 2017-02-03 16:10:45 +04:00
parent 0c0eb30260
commit f5aa4bdc76
1 changed files with 12 additions and 0 deletions

View File

@ -339,6 +339,7 @@ static void test_bmdma_simple_rw(void)
g_assert(memcmp(buf, cmpbuf, len) == 0); g_assert(memcmp(buf, cmpbuf, len) == 0);
free_pci_device(dev);
g_free(buf); g_free(buf);
g_free(cmpbuf); g_free(cmpbuf);
} }
@ -369,6 +370,7 @@ static void test_bmdma_short_prdt(void)
prdt, ARRAY_SIZE(prdt), NULL); prdt, ARRAY_SIZE(prdt), NULL);
g_assert_cmphex(status, ==, 0); g_assert_cmphex(status, ==, 0);
assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR); assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR);
free_pci_device(dev);
} }
static void test_bmdma_one_sector_short_prdt(void) static void test_bmdma_one_sector_short_prdt(void)
@ -398,6 +400,7 @@ static void test_bmdma_one_sector_short_prdt(void)
prdt, ARRAY_SIZE(prdt), NULL); prdt, ARRAY_SIZE(prdt), NULL);
g_assert_cmphex(status, ==, 0); g_assert_cmphex(status, ==, 0);
assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR); assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR);
free_pci_device(dev);
} }
static void test_bmdma_long_prdt(void) static void test_bmdma_long_prdt(void)
@ -426,6 +429,7 @@ static void test_bmdma_long_prdt(void)
prdt, ARRAY_SIZE(prdt), NULL); prdt, ARRAY_SIZE(prdt), NULL);
g_assert_cmphex(status, ==, BM_STS_INTR); g_assert_cmphex(status, ==, BM_STS_INTR);
assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR); assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR);
free_pci_device(dev);
} }
static void test_bmdma_no_busmaster(void) static void test_bmdma_no_busmaster(void)
@ -449,6 +453,7 @@ static void test_bmdma_no_busmaster(void)
* in practice. At least we want to be aware of any changes. */ * in practice. At least we want to be aware of any changes. */
g_assert_cmphex(status, ==, BM_STS_ACTIVE | BM_STS_INTR); g_assert_cmphex(status, ==, BM_STS_ACTIVE | BM_STS_INTR);
assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR); assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR);
free_pci_device(dev);
} }
static void test_bmdma_setup(void) static void test_bmdma_setup(void)
@ -525,6 +530,7 @@ static void test_identify(void)
assert_bit_set(buf[85], 0x20); assert_bit_set(buf[85], 0x20);
ide_test_quit(); ide_test_quit();
free_pci_device(dev);
} }
/* /*
@ -563,6 +569,7 @@ static void make_dirty(uint8_t device)
assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR); assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), DF | ERR);
g_free(buf); g_free(buf);
free_pci_device(dev);
} }
static void test_flush(void) static void test_flush(void)
@ -609,6 +616,7 @@ static void test_flush(void)
assert_bit_clear(data, BSY | DF | ERR | DRQ); assert_bit_clear(data, BSY | DF | ERR | DRQ);
ide_test_quit(); ide_test_quit();
free_pci_device(dev);
} }
static void test_retry_flush(const char *machine) static void test_retry_flush(const char *machine)
@ -659,6 +667,7 @@ static void test_retry_flush(const char *machine)
assert_bit_clear(data, BSY | DF | ERR | DRQ); assert_bit_clear(data, BSY | DF | ERR | DRQ);
ide_test_quit(); ide_test_quit();
free_pci_device(dev);
} }
static void test_flush_nodev(void) static void test_flush_nodev(void)
@ -676,6 +685,7 @@ static void test_flush_nodev(void)
/* Just testing that qemu doesn't crash... */ /* Just testing that qemu doesn't crash... */
free_pci_device(dev);
ide_test_quit(); ide_test_quit();
} }
@ -742,6 +752,7 @@ static uint8_t ide_wait_clear(uint8_t flag)
while (true) { while (true) {
data = qpci_io_readb(dev, ide_bar, reg_status); data = qpci_io_readb(dev, ide_bar, reg_status);
if (!(data & flag)) { if (!(data & flag)) {
free_pci_device(dev);
return data; return data;
} }
if (difftime(time(NULL), st) > 5.0) { if (difftime(time(NULL), st) > 5.0) {
@ -851,6 +862,7 @@ static void cdrom_pio_impl(int nblocks)
g_free(pattern); g_free(pattern);
g_free(rx); g_free(rx);
test_bmdma_teardown(); test_bmdma_teardown();
free_pci_device(dev);
} }
static void test_cdrom_pio(void) static void test_cdrom_pio(void)