Hi there, This series enables the topology configuration and implements it in the framework. Moreover, it performs quite a few refactors and a change on how the test suites operate through the use of a Context. Finally, the runtime internals are now isolated under the new TestRun and are further reworked into a finite state machine for ease of handling.
Mind that unfortunately these commits may be breaking in intermediate steps. Due to the amount of work done in one go, it was rather difficult to have individually working commits. I am currently requesting for comments on how we can improve this further. In the meantime, I am going to remove node discrimination (TG vs SUT) in the nodes configuration and allow the test run to define the TG and SUT configurations. I understand this is a lot of changes so please bear with me, I may have missed some documentation changes, or even added proper documentation in some instances. Please do point everything out. Best, Luca Luca Vizzarro (7): dts: add port topology configuration dts: isolate test specification to config dts: revamp Topology model dts: improve Port model dts: add runtime status dts: add global runtime context dts: revamp runtime internals doc/api/dts/framework.context.rst | 8 + doc/api/dts/framework.status.rst | 8 + doc/api/dts/framework.test_run.rst | 8 + doc/api/dts/index.rst | 3 + doc/guides/conf.py | 3 +- dts/framework/config/__init__.py | 138 +++-- dts/framework/config/node.py | 25 +- dts/framework/config/test_run.py | 144 +++++- dts/framework/context.py | 107 ++++ dts/framework/exception.py | 33 +- dts/framework/logger.py | 36 +- dts/framework/remote_session/dpdk_shell.py | 53 +- .../single_active_interactive_shell.py | 14 +- dts/framework/remote_session/testpmd_shell.py | 27 +- dts/framework/runner.py | 485 +----------------- dts/framework/status.py | 64 +++ dts/framework/test_result.py | 136 +---- dts/framework/test_run.py | 443 ++++++++++++++++ dts/framework/test_suite.py | 73 ++- dts/framework/testbed_model/capability.py | 42 +- dts/framework/testbed_model/linux_session.py | 47 +- dts/framework/testbed_model/node.py | 29 +- dts/framework/testbed_model/os_session.py | 16 +- dts/framework/testbed_model/port.py | 97 ++-- dts/framework/testbed_model/sut_node.py | 50 +- dts/framework/testbed_model/tg_node.py | 30 +- dts/framework/testbed_model/topology.py | 165 +++--- dts/framework/utils.py | 8 +- dts/nodes.example.yaml | 24 +- dts/test_runs.example.yaml | 3 + dts/tests/TestSuite_blocklist.py | 6 +- dts/tests/TestSuite_checksum_offload.py | 14 +- dts/tests/TestSuite_dual_vlan.py | 6 +- dts/tests/TestSuite_dynamic_config.py | 8 +- dts/tests/TestSuite_dynamic_queue_conf.py | 1 - dts/tests/TestSuite_hello_world.py | 2 +- dts/tests/TestSuite_l2fwd.py | 9 +- dts/tests/TestSuite_mac_filter.py | 10 +- dts/tests/TestSuite_mtu.py | 17 +- dts/tests/TestSuite_pmd_buffer_scatter.py | 9 +- ...stSuite_port_restart_config_persistency.py | 8 +- dts/tests/TestSuite_promisc_support.py | 8 +- dts/tests/TestSuite_smoke_tests.py | 3 +- dts/tests/TestSuite_softnic.py | 4 +- dts/tests/TestSuite_uni_pkt.py | 14 +- dts/tests/TestSuite_vlan.py | 8 +- 46 files changed, 1287 insertions(+), 1159 deletions(-) create mode 100644 doc/api/dts/framework.context.rst create mode 100644 doc/api/dts/framework.status.rst create mode 100644 doc/api/dts/framework.test_run.rst create mode 100644 dts/framework/context.py create mode 100644 dts/framework/status.py create mode 100644 dts/framework/test_run.py -- 2.43.0