Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/134587/?format=api
http://patches.dpdk.org/api/patches/134587/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231123151344.162812-22-juraj.linkes@pantheon.tech/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20231123151344.162812-22-juraj.linkes@pantheon.tech>", "list_archive_url": "https://inbox.dpdk.org/dev/20231123151344.162812-22-juraj.linkes@pantheon.tech", "date": "2023-11-23T15:13:44", "name": "[v8,21/21] dts: test suites docstring update", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "0f1e683ce4d35bbba89268dc70473a12c58f7d64", "submitter": { "id": 1626, "url": "http://patches.dpdk.org/api/people/1626/?format=api", "name": "Juraj Linkeš", "email": "juraj.linkes@pantheon.tech" }, "delegate": { "id": 1, "url": "http://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231123151344.162812-22-juraj.linkes@pantheon.tech/mbox/", "series": [ { "id": 30375, "url": "http://patches.dpdk.org/api/series/30375/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30375", "date": "2023-11-23T15:13:23", "name": "dts: docstrings update", "version": 8, "mbox": "http://patches.dpdk.org/series/30375/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/134587/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/134587/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 5F63C433AC;\n\tThu, 23 Nov 2023 16:17:10 +0100 (CET)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 9F9BE432CA;\n\tThu, 23 Nov 2023 16:14:31 +0100 (CET)", "from mail-wr1-f50.google.com (mail-wr1-f50.google.com\n [209.85.221.50]) by mails.dpdk.org (Postfix) with ESMTP id 93B0842FD9\n for <dev@dpdk.org>; Thu, 23 Nov 2023 16:14:14 +0100 (CET)", "by mail-wr1-f50.google.com with SMTP id\n ffacd0b85a97d-32dc9ff4a8fso641073f8f.1\n for <dev@dpdk.org>; Thu, 23 Nov 2023 07:14:14 -0800 (PST)", "from jlinkes-PT-Latitude-5530.. ([84.245.121.10])\n by smtp.gmail.com with ESMTPSA id\n q4-20020adfea04000000b003296b488961sm1870143wrm.31.2023.11.23.07.14.13\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 23 Nov 2023 07:14:13 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=pantheon.tech; s=google; t=1700752454; x=1701357254; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=Gu+4JrC2IuPtEiL7DfKPBV14u/4QgUSAAuxdak3zylg=;\n b=iitlq/k/emhXzi/+TIuSK5kYq/fAAakr1QWl8a9IMcj8YgV8hGYvraNJMTGWChghvB\n lCBKW4nD7VHbw1A6lZwL+koK/H/DWP8c7EyjQsKwzPA0SecrmoEE4Jc23rtqqwKUPU/5\n Ee/MBy3icvY/MbC38PvRt9FKjcQElWHbafmUyBBdwLH8dcuG0E/bGXi62bUbXqZix/iJ\n ijJsG2AcJ8BCkTadc2OkOBLjnMapuJokITMEefhM+j+ikZEydnRcuqy0o6NOaghQGVh0\n 24pbbpIPi7dtFOZVx3i5mkFr+8I5n0cmCJMP/OQ08rVOvZXUM40xFelDG1ly+2IBHtUP\n k+Tw==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1700752454; x=1701357254;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=Gu+4JrC2IuPtEiL7DfKPBV14u/4QgUSAAuxdak3zylg=;\n b=uVqzOcUrr/3XrnlPDUp5aa6y6Fw7eSO6qik6uwHK1f6iSpKaROxrvXZn/tNZE3x5ee\n wCSglQuhVUGj/woSjXNjThEOO9uvs0AzimkW9y87u9O7/m0F1Rq8XAhjYQIOxwA8xbRn\n seheby9XrRq+33v6MU4A1eAcnnMSL2te+1obQzaFZ7UoCjroA5ir4WjtpnXhIpepvmXA\n 9/eA79TX8yWyXKr8LqN5It8COV8lcGTqjawLDZu4lHWh6hBLrOj5jJpJN45ptgEPuSZF\n yvitQCSE1n+8hDQh0fQpzhXW9iLJ07lb3PqYa8IHZl1LoFbL0Ay1TtGuPnvBEPYvibf8\n Y2yw==", "X-Gm-Message-State": "AOJu0YzrHbFPxVxco3Py3Ku2B9nh13xbzuDO1Hz1rqOBdxafbkfnQF0g\n kPJF+4xwRbE+oS0Co/QlQxmGwA==", "X-Google-Smtp-Source": "\n AGHT+IHuvRdxsjO1gTvqaZnQFq4HjH74AbVs7cw7qN5ApRzrnSU2ggjxZ2GioDZFc5jDLnnJRN3bbA==", "X-Received": "by 2002:a05:6000:a18:b0:332:c331:f508 with SMTP id\n co24-20020a0560000a1800b00332c331f508mr5473530wrb.16.1700752454221;\n Thu, 23 Nov 2023 07:14:14 -0800 (PST)", "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>", "To": "thomas@monjalon.net, Honnappa.Nagarahalli@arm.com, jspewock@iol.unh.edu,\n probb@iol.unh.edu, paul.szczepanek@arm.com, yoan.picchi@foss.arm.com,\n Luca.Vizzarro@arm.com", "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>", "Subject": "[PATCH v8 21/21] dts: test suites docstring update", "Date": "Thu, 23 Nov 2023 16:13:44 +0100", "Message-Id": "<20231123151344.162812-22-juraj.linkes@pantheon.tech>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20231123151344.162812-1-juraj.linkes@pantheon.tech>", "References": "<20231115130959.39420-1-juraj.linkes@pantheon.tech>\n <20231123151344.162812-1-juraj.linkes@pantheon.tech>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "Format according to the Google format and PEP257, with slight\ndeviations.\n\nSigned-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>\n---\n dts/tests/TestSuite_hello_world.py | 16 +++++---\n dts/tests/TestSuite_os_udp.py | 20 ++++++----\n dts/tests/TestSuite_smoke_tests.py | 61 ++++++++++++++++++++++++------\n 3 files changed, 72 insertions(+), 25 deletions(-)", "diff": "diff --git a/dts/tests/TestSuite_hello_world.py b/dts/tests/TestSuite_hello_world.py\nindex 768ba1cfa8..fd7ff1534d 100644\n--- a/dts/tests/TestSuite_hello_world.py\n+++ b/dts/tests/TestSuite_hello_world.py\n@@ -1,7 +1,8 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright(c) 2010-2014 Intel Corporation\n \n-\"\"\"\n+\"\"\"The DPDK hello world app test suite.\n+\n Run the helloworld example app and verify it prints a message for each used core.\n No other EAL parameters apart from cores are used.\n \"\"\"\n@@ -15,22 +16,25 @@\n \n \n class TestHelloWorld(TestSuite):\n+ \"\"\"DPDK hello world app test suite.\"\"\"\n+\n def set_up_suite(self) -> None:\n- \"\"\"\n+ \"\"\"Set up the test suite.\n+\n Setup:\n Build the app we're about to test - helloworld.\n \"\"\"\n self.app_helloworld_path = self.sut_node.build_dpdk_app(\"helloworld\")\n \n def test_hello_world_single_core(self) -> None:\n- \"\"\"\n+ \"\"\"Single core test case.\n+\n Steps:\n Run the helloworld app on the first usable logical core.\n Verify:\n The app prints a message from the used core:\n \"hello from core <core_id>\"\n \"\"\"\n-\n # get the first usable core\n lcore_amount = LogicalCoreCount(1, 1, 1)\n lcores = LogicalCoreCountFilter(self.sut_node.lcores, lcore_amount).filter()\n@@ -42,14 +46,14 @@ def test_hello_world_single_core(self) -> None:\n )\n \n def test_hello_world_all_cores(self) -> None:\n- \"\"\"\n+ \"\"\"All cores test case.\n+\n Steps:\n Run the helloworld app on all usable logical cores.\n Verify:\n The app prints a message from all used cores:\n \"hello from core <core_id>\"\n \"\"\"\n-\n # get the maximum logical core number\n eal_para = self.sut_node.create_eal_parameters(\n lcore_filter_specifier=LogicalCoreList(self.sut_node.lcores)\ndiff --git a/dts/tests/TestSuite_os_udp.py b/dts/tests/TestSuite_os_udp.py\nindex bf6b93deb5..2cf29d37bb 100644\n--- a/dts/tests/TestSuite_os_udp.py\n+++ b/dts/tests/TestSuite_os_udp.py\n@@ -1,7 +1,8 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright(c) 2023 PANTHEON.tech s.r.o.\n \n-\"\"\"\n+\"\"\"Basic IPv4 OS routing test suite.\n+\n Configure SUT node to route traffic from if1 to if2.\n Send a packet to the SUT node, verify it comes back on the second port on the TG node.\n \"\"\"\n@@ -13,24 +14,26 @@\n \n \n class TestOSUdp(TestSuite):\n+ \"\"\"IPv4 UDP OS routing test suite.\"\"\"\n+\n def set_up_suite(self) -> None:\n- \"\"\"\n+ \"\"\"Set up the test suite.\n+\n Setup:\n- Configure SUT ports and SUT to route traffic from if1 to if2.\n+ Bind the SUT ports to the OS driver, configure the ports and configure the SUT\n+ to route traffic from if1 to if2.\n \"\"\"\n-\n- # This test uses kernel drivers\n self.sut_node.bind_ports_to_driver(for_dpdk=False)\n self.configure_testbed_ipv4()\n \n def test_os_udp(self) -> None:\n- \"\"\"\n+ \"\"\"Basic UDP IPv4 traffic test case.\n+\n Steps:\n Send a UDP packet.\n Verify:\n The packet with proper addresses arrives at the other TG port.\n \"\"\"\n-\n packet = Ether() / IP() / UDP()\n \n received_packets = self.send_packet_and_capture(packet)\n@@ -40,7 +43,8 @@ def test_os_udp(self) -> None:\n self.verify_packets(expected_packet, received_packets)\n \n def tear_down_suite(self) -> None:\n- \"\"\"\n+ \"\"\"Tear down the test suite.\n+\n Teardown:\n Remove the SUT port configuration configured in setup.\n \"\"\"\ndiff --git a/dts/tests/TestSuite_smoke_tests.py b/dts/tests/TestSuite_smoke_tests.py\nindex 8958f58dac..5e2bac14bd 100644\n--- a/dts/tests/TestSuite_smoke_tests.py\n+++ b/dts/tests/TestSuite_smoke_tests.py\n@@ -1,6 +1,17 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright(c) 2023 University of New Hampshire\n \n+\"\"\"Smoke test suite.\n+\n+Smoke tests are a class of tests which are used for validating a minimal set of important features.\n+These are the most important features without which (or when they're faulty) the software wouldn't\n+work properly. Thus, if any failure occurs while testing these features,\n+there isn't that much of a reason to continue testing, as the software is fundamentally broken.\n+\n+These tests don't have to include only DPDK tests, as the reason for failures could be\n+in the infrastructure (a faulty link between NICs or a misconfiguration).\n+\"\"\"\n+\n import re\n \n from framework.config import PortConfig\n@@ -11,23 +22,39 @@\n \n \n class SmokeTests(TestSuite):\n+ \"\"\"DPDK and infrastructure smoke test suite.\n+\n+ The test cases validate the most basic DPDK functionality needed for all other test suites.\n+ The infrastructure also needs to be tested, as that is also used by all other test suites.\n+\n+ Attributes:\n+ is_blocking: This test suite will block the execution of all other test suites\n+ in the build target after it.\n+ nics_in_node: The NICs present on the SUT node.\n+ \"\"\"\n+\n is_blocking = True\n # dicts in this list are expected to have two keys:\n # \"pci_address\" and \"current_driver\"\n nics_in_node: list[PortConfig] = []\n \n def set_up_suite(self) -> None:\n- \"\"\"\n+ \"\"\"Set up the test suite.\n+\n Setup:\n- Set the build directory path and generate a list of NICs in the SUT node.\n+ Set the build directory path and a list of NICs in the SUT node.\n \"\"\"\n self.dpdk_build_dir_path = self.sut_node.remote_dpdk_build_dir\n self.nics_in_node = self.sut_node.config.ports\n \n def test_unit_tests(self) -> None:\n- \"\"\"\n+ \"\"\"DPDK meson ``fast-tests`` unit tests.\n+\n+ Test that all unit test from the ``fast-tests`` suite pass.\n+ The suite is a subset with only the most basic tests.\n+\n Test:\n- Run the fast-test unit-test suite through meson.\n+ Run the ``fast-tests`` unit test suite through meson.\n \"\"\"\n self.sut_node.main_session.send_command(\n f\"meson test -C {self.dpdk_build_dir_path} --suite fast-tests -t 60\",\n@@ -37,9 +64,14 @@ def test_unit_tests(self) -> None:\n )\n \n def test_driver_tests(self) -> None:\n- \"\"\"\n+ \"\"\"DPDK meson ``driver-tests`` unit tests.\n+\n+ Test that all unit test from the ``driver-tests`` suite pass.\n+ The suite is a subset with driver tests. This suite may be run with virtual devices\n+ configured in the test run configuration.\n+\n Test:\n- Run the driver-test unit-test suite through meson.\n+ Run the ``driver-tests`` unit test suite through meson.\n \"\"\"\n vdev_args = \"\"\n for dev in self.sut_node.virtual_devices:\n@@ -60,9 +92,12 @@ def test_driver_tests(self) -> None:\n )\n \n def test_devices_listed_in_testpmd(self) -> None:\n- \"\"\"\n+ \"\"\"Testpmd device discovery.\n+\n+ Test that the devices configured in the test run configuration are found in testpmd.\n+\n Test:\n- Uses testpmd driver to verify that devices have been found by testpmd.\n+ List all devices found in testpmd and verify the configured devices are among them.\n \"\"\"\n testpmd_driver = self.sut_node.create_interactive_shell(TestPmdShell, privileged=True)\n dev_list = [str(x) for x in testpmd_driver.get_devices()]\n@@ -74,10 +109,14 @@ def test_devices_listed_in_testpmd(self) -> None:\n )\n \n def test_device_bound_to_driver(self) -> None:\n- \"\"\"\n+ \"\"\"Device driver in OS.\n+\n+ Test that the devices configured in the test run configuration are bound to\n+ the proper driver.\n+\n Test:\n- Ensure that all drivers listed in the config are bound to the correct\n- driver.\n+ List all devices with the ``dpdk-devbind.py`` script and verify that\n+ the configured devices are bound to the proper driver.\n \"\"\"\n path_to_devbind = self.sut_node.path_to_devbind_script\n \n", "prefixes": [ "v8", "21/21" ] }{ "id": 134587, "url": "