tests: Add eepro100 qtest

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
Andreas Färber 2013-11-07 19:18:46 +01:00
parent 85f68d552b
commit 92838a19c1
2 changed files with 66 additions and 0 deletions

View File

@ -72,6 +72,8 @@ gcov-files-pci-y += hw/net/rtl8139.c
check-qtest-pci-y += tests/pcnet-test$(EXESUF)
gcov-files-pci-y += hw/net/pcnet.c
gcov-files-pci-y += hw/net/pcnet-pci.c
check-qtest-pci-y += tests/eepro100-test$(EXESUF)
gcov-files-pci-y += hw/net/eepro100.c
check-qtest-i386-y = tests/endianness-test$(EXESUF)
check-qtest-i386-y += tests/fdc-test$(EXESUF)
@ -214,6 +216,7 @@ tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
tests/e1000-test$(EXESUF): tests/e1000-test.o
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
tests/qom-test$(EXESUF): tests/qom-test.o
tests/blockdev-test$(EXESUF): tests/blockdev-test.o $(libqos-pc-obj-y)

63
tests/eepro100-test.c Normal file
View File

@ -0,0 +1,63 @@
/*
* QTest testcase for eepro100 NIC
*
* Copyright (c) 2013-2014 SUSE LINUX Products GmbH
*
* This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory.
*/
#include <glib.h>
#include <string.h>
#include "libqtest.h"
#include "qemu/osdep.h"
static void test_device(gconstpointer data)
{
const char *model = data;
QTestState *s;
char *args;
args = g_strdup_printf("-device %s", model);
s = qtest_start(args);
/* Tests only initialization so far. TODO: Implement functional tests */
if (s) {
qtest_quit(s);
}
g_free(args);
}
static const char *models[] = {
"i82550",
"i82551",
"i82557a",
"i82557b",
"i82557c",
"i82558a",
"i82558b",
"i82559a",
"i82559b",
"i82559c",
"i82559er",
"i82562",
"i82801",
};
int main(int argc, char **argv)
{
int i;
g_test_init(&argc, &argv, NULL);
for (i = 0; i < ARRAY_SIZE(models); i++) {
char *path;
path = g_strdup_printf("/%s/eepro100/%s",
qtest_get_arch(), models[i]);
g_test_add_data_func(path, models[i], test_device);
}
return g_test_run();
}