Message ID | 20230117154906.860916-1-juraj.linkes@pantheon.tech (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C5194423FE; Tue, 17 Jan 2023 16:49:20 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F263442D18; Tue, 17 Jan 2023 16:49:15 +0100 (CET) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id D9234400D4 for <dev@dpdk.org>; Tue, 17 Jan 2023 16:49:13 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id A35F41D8127; Tue, 17 Jan 2023 16:49:10 +0100 (CET) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NWqXZPZCBkxg; Tue, 17 Jan 2023 16:49:07 +0100 (CET) Received: from entguard.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id 61CED1D811B; Tue, 17 Jan 2023 16:49:06 +0100 (CET) From: =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech> To: thomas@monjalon.net, Honnappa.Nagarahalli@arm.com, ohilyard@iol.unh.edu, lijuan.tu@intel.com, bruce.richardson@intel.com Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech> Subject: [PATCH v3 00/10] dts: add hello world testcase Date: Tue, 17 Jan 2023 15:48:56 +0000 Message-Id: <20230117154906.860916-1-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221114165438.1133783-1-juraj.linkes@pantheon.tech> References: <20221114165438.1133783-1-juraj.linkes@pantheon.tech> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Series |
dts: add hello world testcase
|
|
Message
Juraj Linkeš
Jan. 17, 2023, 3:48 p.m. UTC
Add code needed to run the HelloWorld testcase which just runs the hello world 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 * SUT hugepage memory configuration * 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. v3: Finished refactoring everything in this patch, with test suite and test results being the last parts. Also changed the directory structure. It's now simplified and the imports look much better. I've also many many minor changes such as renaming variables here and there. 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 testplan dts: add hello world testsuite dts: add test suite config and runner dts: add test results module dts/conf.yaml | 19 +- dts/framework/config/__init__.py | 132 +++++++- dts/framework/config/arch.py | 57 ++++ dts/framework/config/conf_yaml_schema.json | 150 ++++++++- 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 | 114 +++++++ dts/framework/remote_session/os_session.py | 177 ++++++++++ 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 | 91 ++++- .../remote_session/remote_session.py | 95 ------ dts/framework/settings.py | 79 ++++- dts/framework/test_result.py | 316 ++++++++++++++++++ dts/framework/test_suite.py | 254 ++++++++++++++ dts/framework/testbed_model/__init__.py | 20 +- dts/framework/testbed_model/dpdk.py | 78 +++++ dts/framework/testbed_model/hw/__init__.py | 27 ++ dts/framework/testbed_model/hw/cpu.py | 253 ++++++++++++++ .../testbed_model/hw/virtual_device.py | 16 + dts/framework/testbed_model/node.py | 165 +++++++-- dts/framework/testbed_model/sut_node.py | 261 +++++++++++++++ dts/framework/utils.py | 39 ++- dts/test_plans/hello_world_test_plan.rst | 68 ++++ dts/tests/TestSuite_hello_world.py | 59 ++++ 28 files changed, 2998 insertions(+), 203 deletions(-) create mode 100644 dts/framework/config/arch.py 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/dpdk.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/test_plans/hello_world_test_plan.rst create mode 100644 dts/tests/TestSuite_hello_world.py
Comments
Everything looks good to me with the exception of some issues I ran into with terminal codes. Setting TERM=dumb before running fixed it, but we might want to set that inside of DTS since I can't think of a reason why we would need colors or any of the other "fancy" features of the vt220, and setting everything to teletype mode should make our lives easier when parsing output. I think that later on it might make sense to have "CPU" be a device class like NIC or Cryptodev, but that can be revisited once we get closer to interacting with hardware. On Tue, Jan 17, 2023 at 10:49 AM Juraj Linkeš <juraj.linkes@pantheon.tech> wrote: > Add code needed to run the HelloWorld testcase which just runs the hello > world 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 > * SUT hugepage memory configuration > * 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. > > v3: > Finished refactoring everything in this patch, with test suite and test > results being the last parts. > Also changed the directory structure. It's now simplified and the > imports look much better. > I've also many many minor changes such as renaming variables here and > there. > > 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 testplan > dts: add hello world testsuite > dts: add test suite config and runner > dts: add test results module > > dts/conf.yaml | 19 +- > dts/framework/config/__init__.py | 132 +++++++- > dts/framework/config/arch.py | 57 ++++ > dts/framework/config/conf_yaml_schema.json | 150 ++++++++- > 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 | 114 +++++++ > dts/framework/remote_session/os_session.py | 177 ++++++++++ > 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 | 91 ++++- > .../remote_session/remote_session.py | 95 ------ > dts/framework/settings.py | 79 ++++- > dts/framework/test_result.py | 316 ++++++++++++++++++ > dts/framework/test_suite.py | 254 ++++++++++++++ > dts/framework/testbed_model/__init__.py | 20 +- > dts/framework/testbed_model/dpdk.py | 78 +++++ > dts/framework/testbed_model/hw/__init__.py | 27 ++ > dts/framework/testbed_model/hw/cpu.py | 253 ++++++++++++++ > .../testbed_model/hw/virtual_device.py | 16 + > dts/framework/testbed_model/node.py | 165 +++++++-- > dts/framework/testbed_model/sut_node.py | 261 +++++++++++++++ > dts/framework/utils.py | 39 ++- > dts/test_plans/hello_world_test_plan.rst | 68 ++++ > dts/tests/TestSuite_hello_world.py | 59 ++++ > 28 files changed, 2998 insertions(+), 203 deletions(-) > create mode 100644 dts/framework/config/arch.py > 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/dpdk.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/test_plans/hello_world_test_plan.rst > create mode 100644 dts/tests/TestSuite_hello_world.py > > -- > 2.30.2 > >
On Thu, Jan 19, 2023 at 11:16 AM Owen Hilyard <ohilyard@iol.unh.edu> wrote: > Everything looks good to me with the exception of some issues I ran into > with terminal codes. Setting TERM=dumb before running fixed it, but we > might want to set that inside of DTS since I can't think of a reason why we > would need colors or any of the other "fancy" features of the vt220, and > setting everything to teletype mode should make our lives easier when > parsing output. > > I think that later on it might make sense to have "CPU" be a device class > like NIC or Cryptodev, but that can be revisited once we get closer to > interacting with hardware. > > On Tue, Jan 17, 2023 at 10:49 AM Juraj Linkeš <juraj.linkes@pantheon.tech> > wrote: > >> Add code needed to run the HelloWorld testcase which just runs the hello >> world 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 >> * SUT hugepage memory configuration >> * 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. >> >> v3: >> Finished refactoring everything in this patch, with test suite and test >> results being the last parts. >> Also changed the directory structure. It's now simplified and the >> imports look much better. >> I've also many many minor changes such as renaming variables here and >> there. >> >> 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 testplan >> dts: add hello world testsuite >> dts: add test suite config and runner >> dts: add test results module >> >> dts/conf.yaml | 19 +- >> dts/framework/config/__init__.py | 132 +++++++- >> dts/framework/config/arch.py | 57 ++++ >> dts/framework/config/conf_yaml_schema.json | 150 ++++++++- >> 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 | 114 +++++++ >> dts/framework/remote_session/os_session.py | 177 ++++++++++ >> 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 | 91 ++++- >> .../remote_session/remote_session.py | 95 ------ >> dts/framework/settings.py | 79 ++++- >> dts/framework/test_result.py | 316 ++++++++++++++++++ >> dts/framework/test_suite.py | 254 ++++++++++++++ >> dts/framework/testbed_model/__init__.py | 20 +- >> dts/framework/testbed_model/dpdk.py | 78 +++++ >> dts/framework/testbed_model/hw/__init__.py | 27 ++ >> dts/framework/testbed_model/hw/cpu.py | 253 ++++++++++++++ >> .../testbed_model/hw/virtual_device.py | 16 + >> dts/framework/testbed_model/node.py | 165 +++++++-- >> dts/framework/testbed_model/sut_node.py | 261 +++++++++++++++ >> dts/framework/utils.py | 39 ++- >> dts/test_plans/hello_world_test_plan.rst | 68 ++++ >> dts/tests/TestSuite_hello_world.py | 59 ++++ >> 28 files changed, 2998 insertions(+), 203 deletions(-) >> create mode 100644 dts/framework/config/arch.py >> 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/dpdk.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/test_plans/hello_world_test_plan.rst >> create mode 100644 dts/tests/TestSuite_hello_world.py >> >> -- >> 2.30.2 >> >> Tested-by: Patrick Robb <probb@iol.unh.edu>