Add code needed to run the HelloWorld testcase which just runs
the helloworld dpdk application.
The patchset currently heavily refactors this original DTS code needed
to run the testcase:
* The whole architecture has been redone into more sensible class
hierarchy
* DPDK build on the System under Test
* DPDK eal args construction, app running and shutting down
* Optional SUT hugepage memory configuration
The optional part is DTS either configuring them or not. They still
must be configured even the user doesn't want DTS to do that.
* Test runner
* Test results
* TestSuite class
* Test runner parts interfacing with TestSuite
* The HelloWorld testsuite itself
The code is divided into sub-packages, some of which are divided
further.
There patch may need to be divided into smaller chunks. If so, proposals
on where exactly to split it would be very helpful.
v5:
Documentation updates about running as root and hugepage configuration.
Fixed multiple problems with cpu filtering.
Other minor issues, such as typos and renaming variables.
v6:
Moved utility functions into different files, mainly to remove util.py's
dependency on settings.py, but also better code organization.
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 suite module
dts: add hello world testsuite
dts: add test suite config and runner
dts: add test results module
doc: update dts setup and test suite cookbook
doc/guides/tools/dts.rst | 165 ++++++++-
dts/conf.yaml | 22 +-
dts/framework/config/__init__.py | 130 ++++++-
dts/framework/config/conf_yaml_schema.json | 172 +++++++++-
dts/framework/dts.py | 185 ++++++++--
dts/framework/exception.py | 100 +++++-
dts/framework/logger.py | 24 +-
dts/framework/remote_session/__init__.py | 30 +-
dts/framework/remote_session/linux_session.py | 107 ++++++
dts/framework/remote_session/os_session.py | 175 ++++++++++
dts/framework/remote_session/posix_session.py | 221 ++++++++++++
.../remote_session/remote/__init__.py | 16 +
.../remote_session/remote/remote_session.py | 155 +++++++++
.../{ => remote}/ssh_session.py | 90 ++++-
.../remote_session/remote_session.py | 95 ------
dts/framework/settings.py | 81 ++++-
dts/framework/test_result.py | 316 ++++++++++++++++++
dts/framework/test_suite.py | 254 ++++++++++++++
dts/framework/testbed_model/__init__.py | 19 +-
dts/framework/testbed_model/hw/__init__.py | 27 ++
dts/framework/testbed_model/hw/cpu.py | 274 +++++++++++++++
.../testbed_model/hw/virtual_device.py | 16 +
dts/framework/testbed_model/node.py | 172 ++++++++--
dts/framework/testbed_model/sut_node.py | 309 +++++++++++++++++
dts/framework/utils.py | 56 +++-
dts/tests/TestSuite_hello_world.py | 64 ++++
26 files changed, 3064 insertions(+), 211 deletions(-)
create mode 100644 dts/framework/remote_session/linux_session.py
create mode 100644 dts/framework/remote_session/os_session.py
create mode 100644 dts/framework/remote_session/posix_session.py
create mode 100644 dts/framework/remote_session/remote/__init__.py
create mode 100644 dts/framework/remote_session/remote/remote_session.py
rename dts/framework/remote_session/{ => remote}/ssh_session.py (65%)
delete mode 100644 dts/framework/remote_session/remote_session.py
create mode 100644 dts/framework/test_result.py
create mode 100644 dts/framework/test_suite.py
create mode 100644 dts/framework/testbed_model/hw/__init__.py
create mode 100644 dts/framework/testbed_model/hw/cpu.py
create mode 100644 dts/framework/testbed_model/hw/virtual_device.py
create mode 100644 dts/framework/testbed_model/sut_node.py
create mode 100644 dts/tests/TestSuite_hello_world.py
--
2.30.2