Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/133922/?format=api
http://patches.dpdk.org/api/patches/133922/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231106171601.160749-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": "<20231106171601.160749-22-juraj.linkes@pantheon.tech>", "list_archive_url": "https://inbox.dpdk.org/dev/20231106171601.160749-22-juraj.linkes@pantheon.tech", "date": "2023-11-06T17:15:59", "name": "[v5,21/23] dts: test suites docstring update", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "eed6604ce914a828368b194559be9daa7f4acfab", "submitter": { "id": 1626, "url": "http://patches.dpdk.org/api/people/1626/?format=api", "name": "Juraj Linkeš", "email": "juraj.linkes@pantheon.tech" }, "delegate": { "id": 2642, "url": "http://patches.dpdk.org/api/users/2642/?format=api", "username": "mcoquelin", "first_name": "Maxime", "last_name": "Coquelin", "email": "maxime.coquelin@redhat.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231106171601.160749-22-juraj.linkes@pantheon.tech/mbox/", "series": [ { "id": 30173, "url": "http://patches.dpdk.org/api/series/30173/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30173", "date": "2023-11-06T17:15:38", "name": "dts: add dts api docs", "version": 5, "mbox": "http://patches.dpdk.org/series/30173/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/133922/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/133922/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 B1661432BB;\n\tMon, 6 Nov 2023 18:19:07 +0100 (CET)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0E2A740ECF;\n\tMon, 6 Nov 2023 18:16:37 +0100 (CET)", "from mail-ej1-f53.google.com (mail-ej1-f53.google.com\n [209.85.218.53]) by mails.dpdk.org (Postfix) with ESMTP id 93F3E42DC1\n for <dev@dpdk.org>; Mon, 6 Nov 2023 18:16:33 +0100 (CET)", "by mail-ej1-f53.google.com with SMTP id\n a640c23a62f3a-9db6cf8309cso678920366b.0\n for <dev@dpdk.org>; Mon, 06 Nov 2023 09:16:33 -0800 (PST)", "from jlinkes-PT-Latitude-5530.. (ip-46.34.243.197.o2inet.sk.\n [46.34.243.197]) by smtp.gmail.com with ESMTPSA id\n s10-20020a170906354a00b009b947aacb4bsm47016eja.191.2023.11.06.09.16.32\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 06 Nov 2023 09:16:32 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=pantheon.tech; s=google; t=1699290993; x=1699895793; 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=YtryVehocq8tW4ezjxt3Dsa07CT6OR4IVjMNFTmf+JQ=;\n b=JR01psLw1vYWsnfRNCreUEEItb4wwNFQOd1JyBAJORqhClJ0FqCzinufn789RktJlX\n dYP3NsMA3mTS2sZoXG/KFpQyVDlOfFF0H5tWuPRSFgfSaT3lf+jvjxXIskbslfWbKzI8\n UOkjmwyMcWJ/8V6V61hJkYLtnOaNWeWjArZSmsLOAbjFs051QfvZ5J/sebZIzaw5BgFx\n 1m10esVCg14UaoTBo8HF/KthdmTUXsNn1w8JNrw0eaI+ZeEOu71d/bJgO/OgNhcTZaEL\n pisb0WerSf8LZCE9TdXKdz/em1vdtalKDzrDmGd0Girb1x1jEQ0zofoW99MNWDIEsZ8M\n c/bQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1699290993; x=1699895793;\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=YtryVehocq8tW4ezjxt3Dsa07CT6OR4IVjMNFTmf+JQ=;\n b=mM2sE8e13DZYSjtYWvMflzV4KTiqVUmJKTdwRsoKvSPgNUdFRwa5sqe41WXAi0No0J\n WwikPcaWG5GlfF6eZ5f2ivOOGYjvb/iY1coyLy+zkod7XhoMff4larQZYt8wLu35b37K\n HcFyILHZ3xfkrFhy71LVUY4y5Z354XWgFWDGpNOgBdBqnmoZT1Z8vIWUsY23CFYRXHpS\n 1PeMbhIGdJyLC3rT+X5NzLC7imU9Qzd5JBqXpdutQiEzZjBRacWDN4EkXelTwjTTmD8e\n i4xogC5T+T/+wbRKh3NXxNhS/lcKrEgMXPvKz9zcAPZhpUvYvSonaNHUbaFii0J2PShx\n vGWg==", "X-Gm-Message-State": "AOJu0YzOU6mLNnqR7A6hzBxKBQn7LV3yX9ylMFuvj8nHqtsKpSLVErwp\n 2VdzeoMOeAO0ClRoivCeF8zE1g==", "X-Google-Smtp-Source": "\n AGHT+IFUPjNezKIdn8H1Zlrsi3Z4zi/Ym4ZwVZR59jdZGWMfON/ZPmEazAKe4f9THG6y0B22fENqrA==", "X-Received": "by 2002:a17:907:7d93:b0:9b2:b7f2:bc7b with SMTP id\n oz19-20020a1709077d9300b009b2b7f2bc7bmr12994009ejc.37.1699290993196;\n Mon, 06 Nov 2023 09:16:33 -0800 (PST)", "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>", "To": "thomas@monjalon.net, Honnappa.Nagarahalli@arm.com,\n bruce.richardson@intel.com, jspewock@iol.unh.edu, probb@iol.unh.edu,\n paul.szczepanek@arm.com, yoan.picchi@foss.arm.com", "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>", "Subject": "[PATCH v5 21/23] dts: test suites docstring update", "Date": "Mon, 6 Nov 2023 18:15:59 +0100", "Message-Id": "<20231106171601.160749-22-juraj.linkes@pantheon.tech>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20231106171601.160749-1-juraj.linkes@pantheon.tech>", "References": "<20230831100407.59865-1-juraj.linkes@pantheon.tech>\n <20231106171601.160749-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 | 16 +++++----\n dts/tests/TestSuite_smoke_tests.py | 53 +++++++++++++++++++++++++++---\n 3 files changed, 68 insertions(+), 17 deletions(-)", "diff": "diff --git a/dts/tests/TestSuite_hello_world.py b/dts/tests/TestSuite_hello_world.py\nindex 7e3d95c0cf..662a8f8726 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@@ -44,14 +48,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 9b5f39711d..f99c4d76e3 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,22 +14,24 @@\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 \"\"\"\n-\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@@ -38,7 +41,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 4a269df75b..36ff10a862 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,13 +22,25 @@\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 \"\"\"\n@@ -25,7 +48,13 @@ def set_up_suite(self) -> None:\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+ The DPDK unit tests are basic tests that indicate regressions and other critical failures.\n+ These need to be addressed before other testing.\n+\n+ The fast-tests unit tests are a subset with only the most basic tests.\n+\n Test:\n Run the fast-test unit-test suite through meson.\n \"\"\"\n@@ -37,7 +66,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+ The DPDK unit tests are basic tests that indicate regressions and other critical failures.\n+ These need to be addressed before other testing.\n+\n+ The driver-tests unit tests are a subset that test only drivers. These may be run\n+ with virtual devices as well.\n+\n Test:\n Run the driver-test unit-test suite through meson.\n \"\"\"\n@@ -63,7 +99,10 @@ def test_driver_tests(self) -> None:\n )\n \n def test_devices_listed_in_testpmd(self) -> None:\n- \"\"\"\n+ \"\"\"Testpmd device discovery.\n+\n+ If the configured devices can't be found in testpmd, they can't be tested.\n+\n Test:\n Uses testpmd driver to verify that devices have been found by testpmd.\n \"\"\"\n@@ -79,7 +118,11 @@ 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+ The devices must be bound to the proper driver, otherwise they can't be used by DPDK\n+ or the traffic generators.\n+\n Test:\n Ensure that all drivers listed in the config are bound to the correct\n driver.\n", "prefixes": [ "v5", "21/23" ] }{ "id": 133922, "url": "