get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/133922/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 133922,
    "url": "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"
    ]
}