From nobody Tue Oct 28 23:08:06 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1513591647021522.4717733964187; Mon, 18 Dec 2017 02:07:27 -0800 (PST) Received: from localhost ([::1]:57616 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQsKN-0006b1-R6 for importer@patchew.org; Mon, 18 Dec 2017 05:07:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQsHQ-0004YF-KD for qemu-devel@nongnu.org; Mon, 18 Dec 2017 05:04:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQsHM-0001LN-0Z for qemu-devel@nongnu.org; Mon, 18 Dec 2017 05:04:16 -0500 Received: from ozlabs.org ([103.22.144.67]:54699) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eQsHL-0001Ij-D2; Mon, 18 Dec 2017 05:04:11 -0500 Received: by ozlabs.org (Postfix, from userid 1007) id 3z0c7r2qHTz9s5L; Mon, 18 Dec 2017 21:04:08 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1513591448; bh=OgrN53aL9ANDJgRTqy/09EEIKfxbMwFLIh+It+sKvVo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ip7T1F9NPN2Me5ydMiVhPGZDlyCAX9QEN9hw5PwXgYiEjpqg8ayMCbj/2plmt/GAZ VwB4E0frLJ4Z1MJ7KqspDNWafbvzd8FCcXvX7kshJShKjHiUzpOY1EdGuTUvYyhOl8 wpFZv9ICvnnkrbOnaYE8IBUqDZoQ/XoURq6nNkVE= From: David Gibson To: mst@redhat.com Date: Mon, 18 Dec 2017 21:04:02 +1100 Message-Id: <20171218100404.4427-3-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171218100404.4427-1-david@gibson.dropbear.id.au> References: <20171218100404.4427-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PATCHv2 2/4] tests/pxe-test: Use table of testcases rather than open-coding X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: thuth@redhat.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Currently pxe-tests open codes the list of tests for each architecture. This changes it to use tables of test parameters, somewhat similar to boot-serial-test. This adds the machine type into the table as well, giving us the ability to perform tests on multiple machine types for architectures where there's more than one machine type that matters. NOTE: This changes the names of the tests in the output, to include the machine type and IPv4 vs. IPv6. I'm not sure if this has the potential to break existing tooling. Signed-off-by: David Gibson Reviewed-by: Thomas Huth --- tests/pxe-test.c | 87 ++++++++++++++++++++++++++++++++++++++++++----------= ---- 1 file changed, 65 insertions(+), 22 deletions(-) diff --git a/tests/pxe-test.c b/tests/pxe-test.c index eb70aa2bc6..8c310a8129 100644 --- a/tests/pxe-test.c +++ b/tests/pxe-test.c @@ -22,14 +22,52 @@ =20 static char disk[] =3D "tests/pxe-test-disk-XXXXXX"; =20 -static void test_pxe_one(const char *params, bool ipv6) +typedef struct testdef { + const char *machine; /* Machine type */ + const char *model; /* NIC device model */ + const char *devopts; /* Device options */ +} testdef_t; + +static testdef_t x86_tests[] =3D { + { "pc", "e1000" }, + { "pc", "virtio-net-pci" }, + { NULL }, +}; + +static testdef_t x86_tests_slow[] =3D { + { "pc", "ne2k_pci", }, + { "pc", "i82550", }, + { "pc", "rtl8139" }, + { "pc", "vmxnet3" }, + { NULL }, +}; + +static testdef_t ppc64_tests[] =3D { + { "pseries", "spapr-vlan" }, + { NULL }, +}; + +static testdef_t ppc64_tests_slow[] =3D { + { "pseries", "virtio-net-pci", }, + { "pseries", "e1000" }, + { NULL }, +}; + +static testdef_t s390x_tests[] =3D { + { "s390-ccw-virtio", "virtio-net-ccw", ",bootindex=3D1" }, + { NULL }, +}; + +static void test_pxe_one(const testdef_t *test, bool ipv6) { char *args; =20 - args =3D g_strdup_printf("-machine accel=3Dkvm:tcg -nodefaults -boot o= rder=3Dn " - "-netdev user,id=3D" NETNAME ",tftp=3D./,bootfi= le=3D%s," - "ipv4=3D%s,ipv6=3D%s %s", disk, ipv6 ? "off" : = "on", - ipv6 ? "on" : "off", params); + args =3D g_strdup_printf( + "-machine %s,accel=3Dkvm:tcg -nodefaults -boot order=3Dn " + "-netdev user,id=3D" NETNAME ",tftp=3D./,bootfile=3D%s,ipv4=3D%s,i= pv6=3D%s " + "-device %s%s,netdev=3D" NETNAME, + test->machine, disk, ipv6 ? "off" : "on", ipv6 ? "on" : "off", + test->model, test->devopts ? test->devopts : ""); =20 qtest_start(args); boot_sector_test(); @@ -39,12 +77,24 @@ static void test_pxe_one(const char *params, bool ipv6) =20 static void test_pxe_ipv4(gconstpointer data) { - const char *model =3D data; - char *dev_arg; + const testdef_t *test =3D data; =20 - dev_arg =3D g_strdup_printf("-device %s,netdev=3D" NETNAME, model); - test_pxe_one(dev_arg, false); - g_free(dev_arg); + test_pxe_one(test, false); +} + +static void test_batch(const testdef_t *tests) +{ + int i; + + for (i =3D 0; tests[i].machine; i++) { + const testdef_t *test =3D &tests[i]; + char *testname; + + testname =3D g_strdup_printf("pxe/ipv4/%s/%s", + test->machine, test->model); + qtest_add_data_func(testname, test, test_pxe_ipv4); + g_free(testname); + } } =20 int main(int argc, char *argv[]) @@ -59,24 +109,17 @@ int main(int argc, char *argv[]) g_test_init(&argc, &argv, NULL); =20 if (strcmp(arch, "i386") =3D=3D 0 || strcmp(arch, "x86_64") =3D=3D 0) { - qtest_add_data_func("pxe/e1000", "e1000", test_pxe_ipv4); - qtest_add_data_func("pxe/virtio", "virtio-net-pci", test_pxe_ipv4); + test_batch(x86_tests); if (g_test_slow()) { - qtest_add_data_func("pxe/ne2000", "ne2k_pci", test_pxe_ipv4); - qtest_add_data_func("pxe/eepro100", "i82550", test_pxe_ipv4); - qtest_add_data_func("pxe/pcnet", "pcnet", test_pxe_ipv4); - qtest_add_data_func("pxe/rtl8139", "rtl8139", test_pxe_ipv4); - qtest_add_data_func("pxe/vmxnet3", "vmxnet3", test_pxe_ipv4); + test_batch(x86_tests_slow); } } else if (strcmp(arch, "ppc64") =3D=3D 0) { - qtest_add_data_func("pxe/spapr-vlan", "spapr-vlan", test_pxe_ipv4); + test_batch(ppc64_tests); if (g_test_slow()) { - qtest_add_data_func("pxe/virtio", "virtio-net-pci", test_pxe_i= pv4); - qtest_add_data_func("pxe/e1000", "e1000", test_pxe_ipv4); + test_batch(ppc64_tests_slow); } } else if (g_str_equal(arch, "s390x")) { - qtest_add_data_func("pxe/virtio-ccw", - "virtio-net-ccw,bootindex=3D1", test_pxe_ipv4); + test_batch(s390x_tests); } ret =3D g_test_run(); boot_sector_cleanup(disk); --=20 2.14.3