#
b935bdc3 |
| 19-Aug-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: use Pydantic in the configuration
This change brings in pydantic in place of warlock. Pydantic offers a built-in model validation system in the classes, which allows for a more resilient and si
dts: use Pydantic in the configuration
This change brings in pydantic in place of warlock. Pydantic offers a built-in model validation system in the classes, which allows for a more resilient and simpler code. As a consequence of this change:
- most validation is now built-in - further validation is added to verify: - cross referencing of node names and ports - test suite and test cases names - dictionaries representing the config schema are removed - the config schema is no longer used and therefore dropped - the TrafficGeneratorType enum has been changed from inheriting StrEnum to the native str and Enum. This change was necessary to enable the discriminator for object unions - the structure of the classes has been slightly changed to perfectly match the structure of the configuration files - the test suite argument catches the ValidationError that TestSuiteConfig can now raise - the DPDK location has been wrapped under another configuration mapping `dpdk_location` - the DPDK locations are now structured and enforced by classes, further simplifying the validation and handling thanks to pattern matching
Bugzilla ID: 1508
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu> Reviewed-by: Patrick Robb <probb@iol.unh.edu>
show more ...
|
#
c64af3c7 |
| 19-Aug-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: add test suite specification and discovery
Currently there is a lack of a definition which identifies all the test suites available to test. This change intends to simplify the process to disco
dts: add test suite specification and discovery
Currently there is a lack of a definition which identifies all the test suites available to test. This change intends to simplify the process to discover all the test suites and identify them.
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu> Reviewed-by: Patrick Robb <probb@iol.unh.edu>
show more ...
|
#
187a9447 |
| 27-Sep-2024 |
Tomáš Ďurovec <tomas.durovec@pantheon.tech> |
dts: remove git ref option
Given the whole DPDK tree directory can now be copied to the nodes, there is no more need to use the git ref option, as the tree can be controlled directly by the user.
S
dts: remove git ref option
Given the whole DPDK tree directory can now be copied to the nodes, there is no more need to use the git ref option, as the tree can be controlled directly by the user.
Signed-off-by: Tomáš Ďurovec <tomas.durovec@pantheon.tech> Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
80158fd4 |
| 27-Sep-2024 |
Tomáš Ďurovec <tomas.durovec@pantheon.tech> |
dts: enable copying directories to and from nodes
Currently there is no support to transfer whole directories between the DTS host and the nodes. This change adds this new feature.
Signed-off-by: T
dts: enable copying directories to and from nodes
Currently there is no support to transfer whole directories between the DTS host and the nodes. This change adds this new feature.
Signed-off-by: Tomáš Ďurovec <tomas.durovec@pantheon.tech> Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
a91d5f47 |
| 26-Sep-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add text parser for testpmd verbose output
Multiple test suites from the old DTS framework rely on being able to consume and interpret the verbose output of testpmd. The new framework doesn't h
dts: add text parser for testpmd verbose output
Multiple test suites from the old DTS framework rely on being able to consume and interpret the verbose output of testpmd. The new framework doesn't have an elegant way for handling the verbose output, but test suites are starting to be written that rely on it. This patch creates a TextParser class that can be used to extract the verbose information from any testpmd output and also adjusts the `stop` method of the shell to return all output that it collected.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
99740300 |
| 26-Sep-2024 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: use Python shell for Scapy instead of XML-RPC
Previously all scapy commands were handled using an XML-RPC server that ran on the TGNode. This unnecessarily enforces a minimum Python version of
dts: use Python shell for Scapy instead of XML-RPC
Previously all scapy commands were handled using an XML-RPC server that ran on the TGNode. This unnecessarily enforces a minimum Python version of 3.10 on the server that is being used as a traffic generator and complicates the implementation of scapy methods. This patch removes the XML-RPC server completely and instead allows the Scapy TG to extend from the PythonShell to implement the functionality of a traffic generator. This is done by importing the Scapy library in the PythonShell and sending commands directly to the interactive session on the TG Node.
Bugzilla ID: 1374
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
show more ...
|
#
f51557fb |
| 09-Sep-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: add random packet generator
Add a basic utility that can create random L3 and L4 packets with random payloads and port numbers (if L4).
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Rev
dts: add random packet generator
Add a basic utility that can create random L3 and L4 packets with random payloads and port numbers (if L4).
Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com> Reviewed-by: Alex Chapman <alex.chapman@arm.com> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|
#
3e967643 |
| 19-Jun-2024 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: unify class inheritance from object
There are two ways we specify that a class inherits from object - implicitly and explicitly. There's no need to explicitly specify that a class inherits from
dts: unify class inheritance from object
There are two ways we specify that a class inherits from object - implicitly and explicitly. There's no need to explicitly specify that a class inherits from object and is in fact mostly a remnant from Python2. Leaving it implicit is the standard in Python3 and offers a small bonus in cases where something would assign something else to the builtin object variable.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Patrick Robb <probb@iol.unh.edu> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu>
show more ...
|
#
a23f2245 |
| 31-May-2024 |
Luca Vizzarro <luca.vizzarro@arm.com> |
dts: constrain DPDK source argument
DTS needs an input to gather the DPDK source code from. This is then built on the remote target. This commit makes sure that this input is more constrained, separ
dts: constrain DPDK source argument
DTS needs an input to gather the DPDK source code from. This is then built on the remote target. This commit makes sure that this input is more constrained, separating the Git revision ID – used to create a tarball using Git – and providing tarballed source code directly, while retaining mutual exclusion.
This makes the code more readable and easier to handle for input validation, of which this commit introduces a basic one based on the pre-existing code.
Moreover it ensures that these flags are explicitly required to be set by the user, dropping a default value.
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>
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 ...
|
#
6ef07151 |
| 04-Dec-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: update docstrings
Format according to the Google format and PEP257, with slight deviations.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
|
#
840b1e01 |
| 04-Dec-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: adjust code for doc generation
The standard Python tool for generating API documentation, Sphinx, imports modules one-by-one when generating the documentation. This requires code changes: * pro
dts: adjust code for doc generation
The standard Python tool for generating API documentation, Sphinx, imports modules one-by-one when generating the documentation. This requires code changes: * properly guarding argument parsing in the if __name__ == '__main__' block, * the logger used by DTS runner underwent the same treatment so that it doesn't create log files outside of a DTS run, * however, DTS uses the arguments to construct an object holding global variables. The defaults for the global variables needed to be moved from argument parsing elsewhere, * importing the remote_session module from framework resulted in circular imports because of one module trying to import another module. This is fixed by reorganizing the code, * some code reorganization was done because the resulting structure makes more sense, improving documentation clarity.
The are some other changes which are documentation related: * added missing type annotation so they appear in the generated docs, * reordered arguments in some methods, * removed superfluous arguments and attributes, * change private functions/methods/attributes to private and vice-versa.
The above all appear in the generated documentation and the with them, the documentation is improved.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|
#
517b4b26 |
| 20-Nov-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: reformat to 100 line length
Reformat to 100 from the previous 88 to unify with C recommendations.
The C recommendation is the maximum with the ideal being 80. The Python tools are not suitable
dts: reformat to 100 line length
Reformat to 100 from the previous 88 to unify with C recommendations.
The C recommendation is the maximum with the ideal being 80. The Python tools are not suitable for this flexibility.
We require all patches with DTS code to be validated with the devtools/dts-check-format.sh script, part of which is the black formatting tool. We've set up black to format all of the codebase and the reformat is needed so that future submitters are not affected.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Acked-by: Jeremy Spewock <jspewock@iol.unh.edu>
show more ...
|
#
cecfe0aa |
| 19-Jul-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add traffic generator abstractions
There are traffic abstractions for all traffic generators and for traffic generators that can capture (not just count) packets.
There also related abstractio
dts: add traffic generator abstractions
There are traffic abstractions for all traffic generators and for traffic generators that can capture (not just count) packets.
There also related abstractions, such as TGNode where the traffic generators reside and some related code.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|
#
88489c05 |
| 19-Jul-2023 |
Jeremy Spewock <jspewock@iol.unh.edu> |
dts: add smoke tests
Adds a new test suite for running smoke tests that verify general configuration aspects of the system under test. If any of these tests fail, the DTS execution terminates as par
dts: add smoke tests
Adds a new test suite for running smoke tests that verify general configuration aspects of the system under test. If any of these tests fail, the DTS execution terminates as part of a "fail-fast" model.
Signed-off-by: Jeremy Spewock <jspewock@iol.unh.edu> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|
#
b8bdc4c5 |
| 09-Jun-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: replace pexpect with fabric
Pexpect is not a dedicated SSH connection library while Fabric is. With Fabric, all SSH-related logic is provided and we can just focus on what's DTS specific.
Sign
dts: replace pexpect with fabric
Pexpect is not a dedicated SSH connection library while Fabric is. With Fabric, all SSH-related logic is provided and we can just focus on what's DTS specific.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Acked-by: Jeremy Spewock <jspewock@iol.unh.edu> Tested-by: Patrick Robb <probb@iol.unh.edu>
show more ...
|
#
c9d31a7e |
| 20-Apr-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: create tarball from git reference
Add additional convenience options for specifying what DPDK version to test.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Acked-by: Jeremy Spewock
dts: create tarball from git reference
Add additional convenience options for specifying what DPDK version to test.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Acked-by: Jeremy Spewock <jspewock@iol.unh.edu>
show more ...
|
#
c020b7ce |
| 03-Mar-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add DPDK execution handling
Add methods for setting up and shutting down DPDK apps and for constructing EAL parameters.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Tested-by: Bruc
dts: add DPDK execution handling
Add methods for setting up and shutting down DPDK apps and for constructing EAL parameters.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Tested-by: Bruce Richardson <bruce.richardson@intel.com> Tested-by: Chenyu Huang <chenyux.huang@intel.com> Tested-by: Patrick Robb <probb@iol.unh.edu>
show more ...
|
#
680d8a24 |
| 03-Mar-2023 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add DPDK build on SUT
Add the ability to build DPDK and apps on the SUT, using a configured target.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Tested-by: Bruce Richardson <bruce.
dts: add DPDK build on SUT
Add the ability to build DPDK and apps on the SUT, using a configured target.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Tested-by: Bruce Richardson <bruce.richardson@intel.com> Tested-by: Chenyu Huang <chenyux.huang@intel.com> Tested-by: Patrick Robb <probb@iol.unh.edu>
show more ...
|
#
57c58bf8 |
| 04-Nov-2022 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add workflow module
The module implements methods needed to run DTS. It handles the creation of objects and eventually the whole DTS workflow, such as running node setups, test gathering, setup
dts: add workflow module
The module implements methods needed to run DTS. It handles the creation of objects and eventually the whole DTS workflow, such as running node setups, test gathering, setup and execution and various cleanups.
Signed-off-by: Owen Hilyard <ohilyard@iol.unh.edu> Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|
#
812c4071 |
| 04-Nov-2022 |
Juraj Linkeš <juraj.linkes@pantheon.tech> |
dts: add SSH session
The module uses the pexpect python library and implements connection to a node and two ways to interact with the node: 1. Send a string with specified prompt which will be match
dts: add SSH session
The module uses the pexpect python library and implements connection to a node and two ways to interact with the node: 1. Send a string with specified prompt which will be matched after the string has been sent to the node. 2. Send a command to be executed. No prompt is specified here.
Signed-off-by: Owen Hilyard <ohilyard@iol.unh.edu> Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
show more ...
|