#
a79884f9 |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add Rx offload capabilities
The scatter Rx offload capability is needed for the pmd_buffer_scatter test suite. The command that retrieves the capability is: show port <port_id> rx_offload capab
dts: add Rx offload capabilities
The scatter Rx offload capability is needed for the pmd_buffer_scatter test suite. The command that retrieves the capability is: show port <port_id> rx_offload capabilities
The command also retrieves a lot of other capabilities (RX_OFFLOAD_*) which are all added into a Flag. The Flag members correspond to NIC capability names so a convenience function that looks for the supported Flags in a testpmd output is also added.
The NIC capability names (mentioned above) are copy-pasted from the Flag. Dynamic addition of Enum members runs into problems with typing (mypy doesn't know about the members) and documentation generation (Sphinx doesn't know about the members).
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
039256da |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add topology capability
Add support for marking test cases as requiring a certain topology. The default topology is a two link topology and the other supported topologies are one link and no li
dts: add topology capability
Add support for marking test cases as requiring a certain topology. The default topology is a two link topology and the other supported topologies are one link and no link topologies.
The TestProtocol of test suites and cases is extended with the topology type each test suite or case requires. Each test case starts out as requiring a two link topology and can be marked as requiring as topology directly (by decorating the test case) or through its test suite. If a test suite is decorated as requiring a certain topology, all its test cases are marked as such. If both test suite and a test case are decorated as requiring a topology, the test case cannot require a more complex topology than the whole suite (but it can require a less complex one). If a test suite is not decorated, this has no effect on required test case topology.
Since the default topology is defined as a reference to one of the actual topologies, the NoAliasEnum from the aenum package is utilized, which removes the aliasing of Enums so that TopologyType.two_links and TopologyType.default are distinct. This is needed to distinguish between a user passed value and the default value being used (which is used when a test suite is or isn't decorated).
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
c0119400 |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add NIC capabilities from Rx queue info
Add parsing for the show rxq info <port_id> <queue_id> tespmd command and add support for the Scattered Rx capability.
Signed-off-by: Juraj Linkeš <jura
dts: add NIC capabilities from Rx queue info
Add parsing for the show rxq info <port_id> <queue_id> tespmd command and add support for the Scattered Rx capability.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
0b5ee16d |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: support simpler topologies
We currently assume there are two links between the SUT and TG nodes, but that's too strict, even for some of the already existing test cases. Add support for topolog
dts: support simpler topologies
We currently assume there are two links between the SUT and TG nodes, but that's too strict, even for some of the already existing test cases. Add support for topologies with less than two links.
For topologies with no links, dummy ports are used. The expectation is that test suites or cases that don't require any links won't be using methods that use ports. Any test suites or cases requiring links will be skipped in topologies with no links, but this feature is not implemented in this commit.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
b6eb5004 |
| 23-Sep-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add test case decorators
Add decorators for functional and performance test cases. These decorators add attributes to the decorated test cases.
With the addition of decorators, we change the t
dts: add test case decorators
Add decorators for functional and performance test cases. These decorators add attributes to the decorated test cases.
With the addition of decorators, we change the test case discovery mechanism from looking at test case names according to a regex to simply checking an attribute of the function added with one of the decorators.
The decorators allow us to add further variables to test cases.
Also move the test case filtering to TestSuite while changing the mechanism to separate the logic in a more sensible manner.
Bugzilla ID: 1460
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Dean Marx <dmarx@iol.unh.edu> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
2b648cd4 |
| 11-Jul-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add context manager for interactive shells
Interactive shells are managed in a way currently where they are closed and cleaned up at the time of garbage collection. Due to there being no guaran
dts: add context manager for interactive shells
Interactive shells are managed in a way currently where they are closed and cleaned up at the time of garbage collection. Due to there being no guarantee of when this garbage collection happens in Python, there is no way to consistently know when an application will be closed without manually closing the application yourself when you are done with it. This doesn't cause a problem in cases where you can start another instance of the same application multiple times on a server, but this isn't the case for primary applications in DPDK. The introduction of primary applications, such as testpmd, adds a need for knowing previous instances of the application have been stopped and cleaned up before starting a new one, which the garbage collector does not provide.
To solve this problem, a new class is added which acts as a base class for interactive shells that enforces that instances of the application be managed using a context manager. Using a context manager guarantees that once you leave the scope of the block where the application is being used for any reason, the application will be closed immediately. This avoids the possibility of the shell not being closed due to an exception being raised or user error. The interactive shell class then becomes shells that can be started/stopped manually or at the time of garbage collection rather than through a context manager.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Patrick Robb <probb@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
bfad0948 |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: rework interactive shells
The way nodes and interactive shells interact makes it difficult to develop for static type checking and hinting. The current system relies on a top-down approach, att
dts: rework interactive shells
The way nodes and interactive shells interact makes it difficult to develop for static type checking and hinting. The current system relies on a top-down approach, attempting to give a generic interface to the test developer, hiding the interaction of concrete shell classes as much as possible. When working with strong typing this approach is not ideal, as Python's implementation of generics is still rudimentary.
This rework reverses the tests interaction to a bottom-up approach, allowing the test developer to call concrete shell classes directly, and let them ingest nodes independently. While also re-enforcing type checking and making the code easier to read.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|
#
9d223a28 |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: use testpmd params for scatter test suite
Update the buffer scatter test suite to use TestPmdParameters instead of the StrParams implementation.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm
dts: use testpmd params for scatter test suite
Update the buffer scatter test suite to use TestPmdParameters instead of the StrParams implementation.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
fc0f7dc4 |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: add testpmd shell params
Implement all the testpmd shell parameters into a data structure.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@ar
dts: add testpmd shell params
Implement all the testpmd shell parameters into a data structure.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
fd8cd8ee |
| 19-Jun-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: use params module for interactive shells
Make it so that interactive shells accept an implementation of `Params` for app arguments. Convert EalParameters to use `Params` instead.
String comman
dts: use params module for interactive shells
Make it so that interactive shells accept an implementation of `Params` for app arguments. Convert EalParameters to use `Params` instead.
String command line parameters can still be supplied by using the `Params.from_str()` method.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
85ceeece |
| 07-Jun-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: rename execution to test run
The configuration containing the combination of: 1. what testbed to use, 2. which tests to run, 3. and what build targets to test
is called an execution. This is c
dts: rename execution to test run
The configuration containing the combination of: 1. what testbed to use, 2. which tests to run, 3. and what build targets to test
is called an execution. This is confusing since we're using the exact same term to describe other things and execution does not really capture that well the three items listed above.
A new term is thus needed to describe the configuration. Test run is much less confusing and better captures what the configuration contains.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
282688ea |
| 30-May-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: update mypy static checker
Update the mypy static checker to the latest version and fix all the reported errors.
Bump up supported Poetry shell version.
Bugzilla ID: 1433
Signed-off-by: Luca
dts: update mypy static checker
Update the mypy static checker to the latest version and fix all the reported errors.
Bump up supported Poetry shell version.
Bugzilla ID: 1433
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu> Tested-by: Nicholas Pratte <npratte@iol.unh.edu>
show more ...
|
#
7e138863 |
| 11-Mar-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add buffer scatter test suite
This test suite provides testing of the support of scattered packets by Poll Mode Drivers using testpmd, verifying the ability to receive and transmit scattered mu
dts: add buffer scatter test suite
This test suite provides testing of the support of scattered packets by Poll Mode Drivers using testpmd, verifying the ability to receive and transmit scattered multi-segment packets made up of multiple non-contiguous memory buffers. This is tested through 5 different cases in which the length of the packets sent are less than the mbuf size, equal to the mbuf size, and 1, 4, and 5 bytes greater than the mbuf size in order to show both the CRC and the packet data are capable of existing in the first, second, or both buffers.
Naturally, if the PMD is capable of forwarding scattered packets which it receives as input, this shows it is capable of both receiving and transmitting scattered packets.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Tested-by: Patrick Robb <probb@iol.unh.edu>
show more ...
|