Message ID | 20230223152840.634183-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 1DF2B41D52; Thu, 23 Feb 2023 16:28:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BB2FB41133; Thu, 23 Feb 2023 16:28:45 +0100 (CET) Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) by mails.dpdk.org (Postfix) with ESMTP id E3F0640ED5 for <dev@dpdk.org>; Thu, 23 Feb 2023 16:28:44 +0100 (CET) Received: by mail-ed1-f43.google.com with SMTP id f13so42912522edz.6 for <dev@dpdk.org>; Thu, 23 Feb 2023 07:28:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon-tech.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=C1X1tivC6T/A60ITdrB1J9KchR4vNrD8b0vg4zeJ9QU=; b=C1YQZMKEUz1J6oYnIrqU1ECP71GNr9gCTQ2Ktir/45Zj+qXZAmuz6Ok0dlg9PEStqz QNgaFq5s/r/iXxHZrg5Wi7ZiwSf+3R9ekhSpsuzu0HGcTW0nM732wPYsG/cIHgAnd62T Cl9OQpDyNPBoq41xomJPshQqp6xIIFw0mmafumSCbm/vnPMTTrKb9oTWvUQ2virRjK3Y YCvReB8ZOCx8brMi5JpH3zeUylaF3kQ+w267ZOgmSgbApjrl7SxUb5l7CyuO+RQiybL/ 9rrOQLuTAV7nQDdnjI3BprIWPAbGNrY8h0nLP6mNcg+yUk8SFnysP3KYHrpD2LdcroMh V+5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=C1X1tivC6T/A60ITdrB1J9KchR4vNrD8b0vg4zeJ9QU=; b=sB2uFN6yimRz1dniQihtTAhUnfW2PyKXA8QS3IVnmPefQuHN/vGv/lnepWEJ/F3HR0 KjWKGFWWXk5xK+LDuhuI7InKxbbBGy0dVcqN3A8xrVYhRtrngy6goPbRGz6TPclVBdXb zov5FYjLOYLAUPhHO6cWlcNkQF1K4m17BLD99C+xmD/PVucgJnaUoFyfSNZXXV0I1BtB KivLmo50LHGiYTT8JjK6FVrMj9MOpMU37ntEW6cG8SkhnTkCjfrkYCvafuj43EBDz/jz Erf0GTTsMKTCW0ouTHNEPXZRPY/iPnbxEepQDLjrMvS1XISosW/s/Qo3D/GVSLmNkF1U ATUw== X-Gm-Message-State: AO0yUKUM8ku7lY4dNmZQIRz2dLL/VybCS6klbCuCCVsJakNBs+4XHlmR OQLgNaSI71Y06XAhv5J1sfgxqw== X-Google-Smtp-Source: AK7set+P9jwc0/TLCo+/wGJrobQ24qqtf9QYcJ4FJqNB7fpaliuPsdrTsCTNV7esexRej3SSGUIE+Q== X-Received: by 2002:aa7:d88f:0:b0:4ac:cb71:42c with SMTP id u15-20020aa7d88f000000b004accb71042cmr12700303edq.37.1677166124555; Thu, 23 Feb 2023 07:28:44 -0800 (PST) Received: from localhost.localdomain ([84.245.121.112]) by smtp.gmail.com with ESMTPSA id r6-20020a50c006000000b004af6a8617ffsm1158892edb.46.2023.02.23.07.28.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Feb 2023 07:28:44 -0800 (PST) From: =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech> To: thomas@monjalon.net, Honnappa.Nagarahalli@arm.com, lijuan.tu@intel.com, bruce.richardson@intel.com, probb@iol.unh.edu Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech> Subject: [PATCH v5 00/10] dts: add hello world testcase Date: Thu, 23 Feb 2023 16:28:30 +0100 Message-Id: <20230223152840.634183-1-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230213152846.284191-1-juraj.linkes@pantheon.tech> References: <20230213152846.284191-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š
Feb. 23, 2023, 3:28 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 * 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. v4: Made hugepage config optional, users may now specify that in the main config file. Removed HelloWorld test plan and incorporated parts of it into the test suite python file. Updated documentation. 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. 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 | 222 ++++++++++++ .../remote_session/remote/__init__.py | 16 + .../remote_session/remote/remote_session.py | 155 +++++++++ .../{ => remote}/ssh_session.py | 92 ++++- .../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 | 20 +- dts/framework/testbed_model/dpdk.py | 78 +++++ 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 | 159 +++++++-- dts/framework/testbed_model/sut_node.py | 260 ++++++++++++++ dts/framework/utils.py | 39 ++- dts/tests/TestSuite_hello_world.py | 64 ++++ 27 files changed, 3068 insertions(+), 210 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 (64%) 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/tests/TestSuite_hello_world.py
Comments
On Thu, Feb 23, 2023 at 04:28:30PM +0100, Juraj Linkeš 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 > * 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. > > v4: > Made hugepage config optional, users may now specify that in the main > config file. > Removed HelloWorld test plan and incorporated parts of it into the test > suite python file. > Updated documentation. > > 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. > The helloworld unit tests all pass for me now, don't see any errors. Series-tested-by: Bruce Richardson <bruce.richardson@intel.com>
> -----Original Message----- > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > Sent: Thursday, February 23, 2023 10:29 AM > To: thomas@monjalon.net; Honnappa Nagarahalli > <Honnappa.Nagarahalli@arm.com>; lijuan.tu@intel.com; > bruce.richardson@intel.com; probb@iol.unh.edu > Cc: dev@dpdk.org; Juraj Linkeš <juraj.linkes@pantheon.tech> > Subject: [PATCH v5 00/10] dts: add hello world testcase > > 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 > * 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. > > v4: > Made hugepage config optional, users may now specify that in the main config > file. > Removed HelloWorld test plan and incorporated parts of it into the test suite > python file. > Updated documentation. > > 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. > Hi Juraj, Everything looks good except for couple of comments/suggestions. If I’m not mistaken dpdk tarball is copied to the SUT over scp. However, scp is already deprecated [1,2]. Is it possible to use rsync over ssh instead? Looks like ssh password needs to be stored in the configuration file which is not a good practice. Suggests giving users two options (a) using an ssh key instead of password (b) prompting for user password if no key is provided. It's somewhat cumbersome for a developer to create a tarball every time they run a test case. Therefore, would it be possible to automate the creation of tarball from a git repo + branch or a local directory when user doesn’t provide a tarball? [1] https://lwn.net/Articles/835962/ [2] https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need-know > 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 | 222 ++++++++++++ > .../remote_session/remote/__init__.py | 16 + > .../remote_session/remote/remote_session.py | 155 +++++++++ > .../{ => remote}/ssh_session.py | 92 ++++- > .../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 | 20 +- > dts/framework/testbed_model/dpdk.py | 78 +++++ > 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 | 159 +++++++-- > dts/framework/testbed_model/sut_node.py | 260 ++++++++++++++ > dts/framework/utils.py | 39 ++- > dts/tests/TestSuite_hello_world.py | 64 ++++ > 27 files changed, 3068 insertions(+), 210 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 (64%) > 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/tests/TestSuite_hello_world.py > > -- > 2.30.2 >
> Hi Juraj, > Hi Wathsala, thanks for the comments. > Everything looks good except for couple of comments/suggestions. > If I’m not mistaken dpdk tarball is copied to the SUT over scp. However, > scp is already deprecated [1,2]. Is it possible to use rsync over ssh > instead? > We're going to replace the pexpect implementation with the Fabric library in a separate patch (the helloworld patch is already very big), which will address this - Fabric uses SFTP for file transfer. > Looks like ssh password needs to be stored in the configuration file which > is not a good practice. Suggests giving users two options (a) using an ssh > key instead of password (b) prompting for user password if no key is > provided. > This is an optional and heavily discouraged option (useful for quick debugging, so we left it in). SSH keys are the default. The Fabric patch will also include the support for non-root users (with passwordless sudo). > It's somewhat cumbersome for a developer to create a tarball every time > they run a test case. Therefore, would it be possible to automate the > creation of tarball from a git repo + branch or a local directory when user > doesn’t provide a tarball? > That is also a separate patch in the making - users will be able to supply a git ref that DTS will use. I haven't thought about local directories, what additional scenarios would that cover? Regards, Juraj > > [1] https://lwn.net/Articles/835962/ > [2] > https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need-know > > > 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 | 222 ++++++++++++ > > .../remote_session/remote/__init__.py | 16 + > > .../remote_session/remote/remote_session.py | 155 +++++++++ > > .../{ => remote}/ssh_session.py | 92 ++++- > > .../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 | 20 +- > > dts/framework/testbed_model/dpdk.py | 78 +++++ > > 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 | 159 +++++++-- > > dts/framework/testbed_model/sut_node.py | 260 ++++++++++++++ > > dts/framework/utils.py | 39 ++- > > dts/tests/TestSuite_hello_world.py | 64 ++++ > > 27 files changed, 3068 insertions(+), 210 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 (64%) > > 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/tests/TestSuite_hello_world.py > > > > -- > > 2.30.2 > > > >
From: Juraj Linkeš <juraj.linkes@pantheon.tech> Sent: Monday, February 27, 2023 3:29 AM To: Wathsala Wathawana Vithanage <wathsala.vithanage@arm.com> Cc: thomas@monjalon.net; Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>; lijuan.tu@intel.com; bruce.richardson@intel.com; probb@iol.unh.edu; dev@dpdk.org; nd <nd@arm.com> Subject: Re: [PATCH v5 00/10] dts: add hello world testcase Hi Juraj, Hi Wathsala, thanks for the comments. Everything looks good except for couple of comments/suggestions. If I’m not mistaken dpdk tarball is copied to the SUT over scp. However, scp is already deprecated [1,2]. Is it possible to use rsync over ssh instead? We're going to replace the pexpect implementation with the Fabric library in a separate patch (the helloworld patch is already very big), which will address this - Fabric uses SFTP for file transfer. Looks like ssh password needs to be stored in the configuration file which is not a good practice. Suggests giving users two options (a) using an ssh key instead of password (b) prompting for user password if no key is provided. This is an optional and heavily discouraged option (useful for quick debugging, so we left it in). SSH keys are the default. The Fabric patch will also include the support for non-root users (with passwordless sudo). It's somewhat cumbersome for a developer to create a tarball every time they run a test case. Therefore, would it be possible to automate the creation of tarball from a git repo + branch or a local directory when user doesn’t provide a tarball? That is also a separate patch in the making - users will be able to supply a git ref that DTS will use. I haven't thought about local directories, what additional scenarios would that cover? It may come in handy if working with a tarball without git or access to Internet. Regards, Juraj [1] https://lwn.net/Articles/835962/ [2] https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need-know > 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 | 222 ++++++++++++ > .../remote_session/remote/__init__.py | 16 + > .../remote_session/remote/remote_session.py | 155 +++++++++ > .../{ => remote}/ssh_session.py | 92 ++++- > .../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 | 20 +- > dts/framework/testbed_model/dpdk.py | 78 +++++ > 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 | 159 +++++++-- > dts/framework/testbed_model/sut_node.py | 260 ++++++++++++++ > dts/framework/utils.py | 39 ++- > dts/tests/TestSuite_hello_world.py | 64 ++++ > 27 files changed, 3068 insertions(+), 210 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 (64%) > 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/tests/TestSuite_hello_world.py > > -- > 2.30.2 >
On Tue, Feb 28, 2023 at 4:27 PM Wathsala Wathawana Vithanage < wathsala.vithanage@arm.com> wrote: > > > > > *From:* Juraj Linkeš <juraj.linkes@pantheon.tech> > *Sent:* Monday, February 27, 2023 3:29 AM > *To:* Wathsala Wathawana Vithanage <wathsala.vithanage@arm.com> > *Cc:* thomas@monjalon.net; Honnappa Nagarahalli < > Honnappa.Nagarahalli@arm.com>; lijuan.tu@intel.com; > bruce.richardson@intel.com; probb@iol.unh.edu; dev@dpdk.org; nd < > nd@arm.com> > *Subject:* Re: [PATCH v5 00/10] dts: add hello world testcase > > > > > > Hi Juraj, > > > > Hi Wathsala, thanks for the comments. > > > > Everything looks good except for couple of comments/suggestions. > If I’m not mistaken dpdk tarball is copied to the SUT over scp. However, > scp is already deprecated [1,2]. Is it possible to use rsync over ssh > instead? > > > > We're going to replace the pexpect implementation with the Fabric library > in a separate patch (the helloworld patch is already very big), which will > address this - Fabric uses SFTP for file transfer. > > > > Looks like ssh password needs to be stored in the configuration file which > is not a good practice. Suggests giving users two options (a) using an ssh > key instead of password (b) prompting for user password if no key is > provided. > > > > This is an optional and heavily discouraged option (useful for quick > debugging, so we left it in). SSH keys are the default. The Fabric patch > will also include the support for non-root users (with passwordless sudo). > > > > It's somewhat cumbersome for a developer to create a tarball every time > they run a test case. Therefore, would it be possible to automate the > creation of tarball from a git repo + branch or a local directory when user > doesn’t provide a tarball? > > > > That is also a separate patch in the making - users will be able to supply > a git ref that DTS will use. I haven't thought about local directories, > what additional scenarios would that cover? > > > > It may come in handy if working with a tarball without git or access to > Internet. > > > Is that an additional scenario though? With the git ref support patch, users will be able to pass either a tarball (the tarball won't be deleted so the user can reuse it) or a git ref (when running DTS from the repository). What I wanted to know is how do you arrive at a setup where you have a local directory that's not a git repository and you don't have a tarball - i.e. how do you have a local non-repo directory without a tarball (you have to get the local directory from somewhere, presumable a tarball)? > Regards, > > Juraj > > > > > [1] https://lwn.net/Articles/835962/ > [2] > https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need-know > > > 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 | 222 ++++++++++++ > > .../remote_session/remote/__init__.py | 16 + > > .../remote_session/remote/remote_session.py | 155 +++++++++ > > .../{ => remote}/ssh_session.py | 92 ++++- > > .../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 | 20 +- > > dts/framework/testbed_model/dpdk.py | 78 +++++ > > 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 | 159 +++++++-- > > dts/framework/testbed_model/sut_node.py | 260 ++++++++++++++ > > dts/framework/utils.py | 39 ++- > > dts/tests/TestSuite_hello_world.py | 64 ++++ > > 27 files changed, 3068 insertions(+), 210 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 (64%) > > 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/tests/TestSuite_hello_world.py > > > > -- > > 2.30.2 > > > >