DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Juraj Linkeš" <juraj.linkes@pantheon.tech>
To: thomas@monjalon.net, Honnappa.Nagarahalli@arm.com,
	jspewock@iol.unh.edu, probb@iol.unh.edu, paul.szczepanek@arm.com,
	Luca.Vizzarro@arm.com, npratte@iol.unh.edu, dmarx@iol.unh.edu,
	alex.chapman@arm.com
Cc: dev@dpdk.org, "Juraj Linkeš" <juraj.linkes@pantheon.tech>
Subject: [PATCH v3 00/12] dts: add test skipping based on capabilities
Date: Wed, 21 Aug 2024 16:53:03 +0200	[thread overview]
Message-ID: <20240821145315.97974-1-juraj.linkes@pantheon.tech> (raw)
In-Reply-To: <20240301155416.96960-1-juraj.linkes@pantheon.tech>

Add an automated way to gather available capabilities of the tested
hardware and skip test suites or cases which require capabilities that
are not available.

This is done through two decorators:
1. The first marks a test suite method as test case. This populates the
   default attributes of each test case.
2. The seconds adds the required capabilities to a test suite or case,
   using the attributes from 1).

Two types of capabilities are added:
1. NIC capabilities. These are gathered once DPDK has been built because
   we use testpmd for this. It's possible to add a function that will
   add configuration before assessing capabilities associated with the
   function. This is because some capabilities return different status
   with different configuration present.
2. The topology capability. Each test case is marked as requiring a
   default topology. The required topology of a test case (or a whole
   test suite) may be change with the second decorator.

This is how it all works:
1. The required capabilities are first all gathered from all test suites
   and test cases.
2. The list of required capabilities is divided into supported and
   unsupported capabilities. In this step, the probing of hardware
   and/or anything else that needs to happen to gauge whether a
   capability is supported is done.
3. Each test suite and test case is then marked to be skipped if any of
   their required capabilities are not supported.

Depends-on: patch-142276 ("dts: add methods for modifying MTU to testpmd
shell")

Juraj Linkeš (12):
  dts: fix default device error handling mode
  dts: add the aenum dependency
  dts: add test case decorators
  dts: add mechanism to skip test cases or suites
  dts: add support for simpler topologies
  dst: add basic capability support
  dts: add testpmd port information caching
  dts: add NIC capability support
  dts: add topology capability
  doc: add DTS capability doc sources
  dts: add Rx offload capabilities
  dts: add NIC capabilities from show port info

 .../framework.testbed_model.capability.rst    |   6 +
 doc/api/dts/framework.testbed_model.rst       |   2 +
 .../dts/framework.testbed_model.topology.rst  |   6 +
 dts/framework/remote_session/testpmd_shell.py | 461 +++++++++++++++-
 dts/framework/runner.py                       | 155 +++---
 dts/framework/test_result.py                  | 120 +++--
 dts/framework/test_suite.py                   | 161 +++++-
 dts/framework/testbed_model/capability.py     | 491 ++++++++++++++++++
 dts/framework/testbed_model/node.py           |   2 +-
 dts/framework/testbed_model/port.py           |   4 +-
 dts/framework/testbed_model/topology.py       | 128 +++++
 dts/poetry.lock                               |  14 +-
 dts/pyproject.toml                            |   1 +
 dts/tests/TestSuite_hello_world.py            |  10 +-
 dts/tests/TestSuite_os_udp.py                 |   3 +-
 dts/tests/TestSuite_pmd_buffer_scatter.py     |  14 +-
 dts/tests/TestSuite_smoke_tests.py            |   8 +-
 17 files changed, 1429 insertions(+), 157 deletions(-)
 create mode 100644 doc/api/dts/framework.testbed_model.capability.rst
 create mode 100644 doc/api/dts/framework.testbed_model.topology.rst
 create mode 100644 dts/framework/testbed_model/capability.py
 create mode 100644 dts/framework/testbed_model/topology.py

-- 
2.34.1


  parent reply	other threads:[~2024-08-21 14:53 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-01 15:54 [RFC PATCH v1] dts: skip test cases " Juraj Linkeš
2024-04-11  8:48 ` [RFC PATCH v2] " Juraj Linkeš
2024-05-21 15:47   ` Luca Vizzarro
2024-05-22 14:58   ` Luca Vizzarro
2024-06-07 13:13     ` Juraj Linkeš
2024-06-11  9:51       ` Luca Vizzarro
2024-06-12  9:15         ` Juraj Linkeš
2024-06-17 15:07           ` Luca Vizzarro
2024-05-24 20:51   ` Nicholas Pratte
2024-05-31 16:44   ` Luca Vizzarro
2024-06-05 13:55     ` Patrick Robb
2024-06-06 13:36       ` Jeremy Spewock
2024-06-03 14:40   ` Nicholas Pratte
2024-06-07 13:20     ` Juraj Linkeš
2024-08-21 14:53 ` Juraj Linkeš [this message]
2024-08-21 14:53   ` [PATCH v3 01/12] dts: fix default device error handling mode Juraj Linkeš
2024-08-26 16:42     ` Jeremy Spewock
2024-08-27 16:15     ` Dean Marx
2024-08-27 20:09     ` Nicholas Pratte
2024-08-21 14:53   ` [PATCH v3 02/12] dts: add the aenum dependency Juraj Linkeš
2024-08-26 16:42     ` Jeremy Spewock
2024-08-27 16:28     ` Dean Marx
2024-08-27 20:21     ` Nicholas Pratte
2024-08-21 14:53   ` [PATCH v3 03/12] dts: add test case decorators Juraj Linkeš
2024-08-26 16:50     ` Jeremy Spewock
2024-09-05  8:07       ` Juraj Linkeš
2024-09-05 15:24         ` Jeremy Spewock
2024-08-28 20:09     ` Dean Marx
2024-08-30 15:50     ` Nicholas Pratte
2024-08-21 14:53   ` [PATCH v3 04/12] dts: add mechanism to skip test cases or suites Juraj Linkeš
2024-08-26 16:52     ` Jeremy Spewock
2024-09-05  9:23       ` Juraj Linkeš
2024-09-05 15:26         ` Jeremy Spewock
2024-08-28 20:37     ` Dean Marx
2024-08-21 14:53   ` [PATCH v3 05/12] dts: add support for simpler topologies Juraj Linkeš
2024-08-26 16:54     ` Jeremy Spewock
2024-09-05  9:42       ` Juraj Linkeš
2024-08-28 20:56     ` Dean Marx
2024-08-21 14:53   ` [PATCH v3 06/12] dst: add basic capability support Juraj Linkeš
2024-08-26 16:56     ` Jeremy Spewock
2024-09-05  9:50       ` Juraj Linkeš
2024-09-05 15:27         ` Jeremy Spewock
2024-09-03 16:03     ` Dean Marx
2024-09-05  9:51       ` Juraj Linkeš
2024-08-21 14:53   ` [PATCH v3 07/12] dts: add testpmd port information caching Juraj Linkeš
2024-08-26 16:56     ` Jeremy Spewock
2024-09-03 16:12     ` Dean Marx
2024-08-21 14:53   ` [PATCH v3 08/12] dts: add NIC capability support Juraj Linkeš
2024-08-26 17:11     ` Jeremy Spewock
2024-09-05 11:56       ` Juraj Linkeš
2024-09-05 15:30         ` Jeremy Spewock
2024-08-27 16:36     ` Jeremy Spewock
2024-09-18 12:58       ` Juraj Linkeš
2024-09-18 16:52         ` Jeremy Spewock
2024-09-03 19:13     ` Dean Marx
2024-08-21 14:53   ` [PATCH v3 09/12] dts: add topology capability Juraj Linkeš
2024-08-26 17:13     ` Jeremy Spewock
2024-09-03 17:50     ` Dean Marx
2024-08-21 14:53   ` [PATCH v3 10/12] doc: add DTS capability doc sources Juraj Linkeš
2024-08-26 17:13     ` Jeremy Spewock
2024-09-03 17:52     ` Dean Marx
2024-08-21 14:53   ` [PATCH v3 11/12] dts: add Rx offload capabilities Juraj Linkeš
2024-08-26 17:24     ` Jeremy Spewock
2024-09-18 14:18       ` Juraj Linkeš
2024-09-18 16:53         ` Jeremy Spewock
2024-08-28 17:44     ` Jeremy Spewock
2024-08-29 15:40       ` Jeremy Spewock
2024-09-18 14:27         ` Juraj Linkeš
2024-09-18 16:57           ` Jeremy Spewock
2024-09-03 19:49     ` Dean Marx
2024-09-18 13:59       ` Juraj Linkeš
2024-08-21 14:53   ` [PATCH v3 12/12] dts: add NIC capabilities from show port info Juraj Linkeš
2024-08-26 17:24     ` Jeremy Spewock
2024-09-03 18:02     ` Dean Marx
2024-08-26 17:25   ` [PATCH v3 00/12] dts: add test skipping based on capabilities Jeremy Spewock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240821145315.97974-1-juraj.linkes@pantheon.tech \
    --to=juraj.linkes@pantheon.tech \
    --cc=Honnappa.Nagarahalli@arm.com \
    --cc=Luca.Vizzarro@arm.com \
    --cc=alex.chapman@arm.com \
    --cc=dev@dpdk.org \
    --cc=dmarx@iol.unh.edu \
    --cc=jspewock@iol.unh.edu \
    --cc=npratte@iol.unh.edu \
    --cc=paul.szczepanek@arm.com \
    --cc=probb@iol.unh.edu \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).