Add code needed to run the HelloWorld testcase which just runs the hello world dpdk application.
The patch first outlines the basic class architecture, covering Nodes (hosts that DTS connects to), RemoteSession, OS-specific code, test runner and Exceptions. The patchset currently heavily refactors this original DTS code needed to run the testcase: * DPDK build on the System under Test * DPDK eal args construction, app running and shutting down * SUT hugepage memory configuration * Test runner The code that still needs to be refactored: * Test results * TestCase/TestSuite class * Test runner parts interfacing with TestCase * The HelloWorld testsuite itself The code is divided into sub-packages, some of which are divided further. It's possible that some sub-directories should be flattened to simplify imports. I've also had to make some concessions to code structure to avoid circular imports. I'll continue thinking about this going forward and v3 may have a different dir/import structure. The code has been ported from DTS and we may want/need to change some designs, such as what configuration to do and when - for example, we may not want DTS to configure hugepages (as that may be too much of a system modification or it just simply makes sense to configure once outside of DTS and not touch it in every single run). Juraj Linkeš (10): dts: add node and os abstractions dts: add ssh command verification dts: add dpdk build on sut dts: add dpdk execution handling dts: add node memory setup dts: add test results module dts: add simple stats report dts: add testsuite class dts: add hello world testplan dts: add hello world testsuite dts/conf.yaml | 16 +- dts/framework/config/__init__.py | 186 +++++++++- dts/framework/config/conf_yaml_schema.json | 137 +++++++- dts/framework/dts.py | 153 ++++++-- dts/framework/exception.py | 190 +++++++++- dts/framework/remote_session/__init__.py | 23 +- dts/framework/remote_session/arch/__init__.py | 20 ++ dts/framework/remote_session/arch/arch.py | 57 +++ dts/framework/remote_session/factory.py | 14 + dts/framework/remote_session/os/__init__.py | 17 + .../remote_session/os/linux_session.py | 111 ++++++ dts/framework/remote_session/os/os_session.py | 170 +++++++++ .../remote_session/os/posix_session.py | 220 ++++++++++++ .../remote_session/remote_session.py | 94 ++++- dts/framework/remote_session/ssh_session.py | 69 +++- dts/framework/settings.py | 65 +++- dts/framework/stats_reporter.py | 65 ++++ dts/framework/test_case.py | 246 +++++++++++++ dts/framework/test_result.py | 217 ++++++++++++ dts/framework/testbed_model/__init__.py | 7 +- dts/framework/testbed_model/hw/__init__.py | 17 + dts/framework/testbed_model/hw/cpu.py | 164 +++++++++ dts/framework/testbed_model/node.py | 62 ---- dts/framework/testbed_model/node/__init__.py | 7 + dts/framework/testbed_model/node/node.py | 169 +++++++++ dts/framework/testbed_model/node/sut_node.py | 331 ++++++++++++++++++ dts/framework/utils.py | 35 ++ dts/test_plans/hello_world_test_plan.rst | 68 ++++ dts/tests/TestSuite_hello_world.py | 53 +++ 29 files changed, 2854 insertions(+), 129 deletions(-) create mode 100644 dts/framework/remote_session/arch/__init__.py create mode 100644 dts/framework/remote_session/arch/arch.py create mode 100644 dts/framework/remote_session/factory.py create mode 100644 dts/framework/remote_session/os/__init__.py create mode 100644 dts/framework/remote_session/os/linux_session.py create mode 100644 dts/framework/remote_session/os/os_session.py create mode 100644 dts/framework/remote_session/os/posix_session.py create mode 100644 dts/framework/stats_reporter.py create mode 100644 dts/framework/test_case.py create mode 100644 dts/framework/test_result.py create mode 100644 dts/framework/testbed_model/hw/__init__.py create mode 100644 dts/framework/testbed_model/hw/cpu.py delete mode 100644 dts/framework/testbed_model/node.py create mode 100644 dts/framework/testbed_model/node/__init__.py create mode 100644 dts/framework/testbed_model/node/node.py create mode 100644 dts/framework/testbed_model/node/sut_node.py create mode 100644 dts/test_plans/hello_world_test_plan.rst create mode 100644 dts/tests/TestSuite_hello_world.py -- 2.30.2