From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 96E1941D44; Wed, 1 Mar 2023 09:36:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 87CE94113C; Wed, 1 Mar 2023 09:36:03 +0100 (CET) Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by mails.dpdk.org (Postfix) with ESMTP id DFC1E40E50 for ; Wed, 1 Mar 2023 09:36:02 +0100 (CET) Received: by mail-ed1-f46.google.com with SMTP id ck15so50890857edb.0 for ; Wed, 01 Mar 2023 00:36:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon-tech.20210112.gappssmtp.com; s=20210112; t=1677659762; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=iHYn7wPXQOt2DUqw08JwNF27gaDUls6Ip4/2zNIIGoY=; b=XinlQC7Yq6Tw7NFg7wPleDzw6u6gti9/oQ7yBeLRhvmsCRAASJ5sQP5M7FLecE08Vs cEhGg4Mae2VFNOYCwVHN+c01/dXwce9VAICvD7k+3KWZY+SJjg5LgsnM1hM6cG7O7pDG VsZ13rgujeR4Fm035FEG1gDNb9noe0WTl3Al62U/VfT10ziEi1UosgMCPCOT1R2HHF0j 6xxiP58IF4+USKUR4geiGaKUkG99VACtq/1Ry95xmLJCS44dYHvN2m35z8gXJDYMIpPw /THeFhiO8tpeymjIzBT9J2FCD52zC8n8AJn1m5FRKjDwdDQ/hztzVfBXveSMLO4DxNEE nwTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677659762; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iHYn7wPXQOt2DUqw08JwNF27gaDUls6Ip4/2zNIIGoY=; b=TtMaHjYkxFIwyzTOu33TAYa8rLBpvwLGp4SG8fngkl0MzYVTby3HLi61ZDD1zLJrX+ gBsko+grpurjzRqqBnUJCkz+/0v3mnx/9OeBMBV0bW6jD2aNQnoVMM+2nvJTgHYP7yCa iZP4v0H/mUKCa3foIUqxwPUR9YPWk70YJnZXqBhakw+bqaHCiywJNFfF4tHcbnY1PXi9 pyLrGURd4FDMEFfoawJ79xMvTRYvYXsv6oaX+NW79MYv9L64L9SxVExU7f2WEbm3uvV7 HxtCLa7YaS2GShpY5sh/jwjQYaEh2w7RV2vrSmlEeTHaQc2xwb/BnW13xuJXjGLyz04K kvYw== X-Gm-Message-State: AO0yUKUwnoyZHpD+z0N9y8T1I6mFlWIkk9WoY1svde+2CydE/FJ91KQF OIKHuJXcsnv2eqsPVEagkBPbhOoUMuHJA6HNFwDhmA== X-Google-Smtp-Source: AK7set+bWqQ67DDcp7b1RdGfXoz4zT0bd/2L8Bu/QAH6pzSU+DFBbfLc+svyK9Q75udxZ4FGWrEkCWxkAP4HU/piZjs= X-Received: by 2002:a50:cc84:0:b0:4ae:f5fd:c2d1 with SMTP id q4-20020a50cc84000000b004aef5fdc2d1mr3219622edi.2.1677659762505; Wed, 01 Mar 2023 00:36:02 -0800 (PST) MIME-Version: 1.0 References: <20230213152846.284191-1-juraj.linkes@pantheon.tech> <20230223152840.634183-1-juraj.linkes@pantheon.tech> In-Reply-To: From: =?UTF-8?Q?Juraj_Linke=C5=A1?= Date: Wed, 1 Mar 2023 09:35:51 +0100 Message-ID: Subject: Re: [PATCH v5 00/10] dts: add hello world testcase To: Wathsala Wathawana Vithanage Cc: "thomas@monjalon.net" , Honnappa Nagarahalli , "lijuan.tu@intel.com" , "bruce.richardson@intel.com" , "probb@iol.unh.edu" , "dev@dpdk.org" , nd Content-Type: multipart/alternative; boundary="00000000000032c95005f5d29a07" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --00000000000032c95005f5d29a07 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Feb 28, 2023 at 4:27=E2=80=AFPM Wathsala Wathawana Vithanage < wathsala.vithanage@arm.com> wrote: > > > > > *From:* Juraj Linke=C5=A1 > *Sent:* Monday, February 27, 2023 3:29 AM > *To:* Wathsala Wathawana Vithanage > *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=E2=80=99m not mistaken dpdk tarball is copied to the SUT over scp. H= owever, > 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 wil= l > address this - Fabric uses SFTP for file transfer. > > > > Looks like ssh password needs to be stored in the configuration file whic= h > is not a good practice. Suggests giving users two options (a) using an ss= h > 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 us= er > doesn=E2=80=99t provide a tarball? > > > > That is also a separate patch in the making - users will be able to suppl= y > 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-ne= ed-know > > > Juraj Linke=C5=A1 (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 +++++++++ > > .../{ =3D> 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/{ =3D> 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 > > > > --00000000000032c95005f5d29a07 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Tue, Feb 28, 2023 at 4:27=E2=80=AF= PM Wathsala Wathawana Vithanage <wathsala.vithanage@arm.com> wrote:

=C2=A0

=C2=A0

From: Juraj Linke=C5=A1 <juraj.linkes@pant= heon.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.r= ichardson@intel.com; probb@iol.unh.edu; dev@dpdk.org; nd <nd@arm.com>
Subject: Re: [PATCH v5 00/10] dts: add hello world testcase

=C2=A0

=C2=A0

Hi Juraj,

=C2=A0

Hi Wathsala, thanks for the comments.<= /p>

=C2=A0

Everything looks good except for couple of comments/= suggestions.
If I=E2=80=99m not mistaken dpdk tarball is copied to the SUT over scp. How= ever, scp is already deprecated [1,2]. Is it possible to use rsync over ssh= instead?

=C2=A0

We're going to replace the pexpect implementatio= n with the Fabric library in a separate patch (the helloworld patch is alre= ady very big), which will address this - Fabric uses SFTP for file transfer= .

=C2=A0

Looks like ssh password needs to be stored in the co= nfiguration file which is not a good practice. Suggests giving users two op= tions (a) using an ssh key instead of password (b) prompting for user passw= ord if no key is provided.

=C2=A0

This is an optional and heavily discouraged option (= useful for quick debugging, so we left it in). SSH keys are the default. Th= e Fabric patch will also include the support for non-root users (with passw= ordless sudo).

=C2=A0

It's somewhat cumbersome for a developer to crea= te a tarball every time they run a test case. Therefore, would it be possib= le to automate the creation of tarball from a git repo + branch or a local = directory when user doesn=E2=80=99t provide a tarball?

=C2=A0

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 a= bout local directories, what additional scenarios would that cover?<= u>

=C2=A0

It may come in handy if working with a tarball witho= ut git or access to Internet.

=C2=A0


Is that an additional scenario thou= gh? With the git ref support patch, users will be able to pass either a tar= ball (the tarball won't be deleted so the user can reuse it) or a git r= ef (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)?
=C2=A0

Regards,

Juraj

=C2=A0


[1] https://= lwn.net/Articles/835962/
[2] https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need= -know

> Juraj Linke=C5=A1 (10):
>=C2=A0 =C2=A0dts: add node and os abstractions
>=C2=A0 =C2=A0dts: add ssh command verification
>=C2=A0 =C2=A0dts: add dpdk build on sut
>=C2=A0 =C2=A0dts: add dpdk execution handling
>=C2=A0 =C2=A0dts: add node memory setup
>=C2=A0 =C2=A0dts: add test suite module
>=C2=A0 =C2=A0dts: add hello world testsuite
>=C2=A0 =C2=A0dts: add test suite config and runner
>=C2=A0 =C2=A0dts: add test results module
>=C2=A0 =C2=A0doc: update DTS setup and test suite cookbook
>
>=C2=A0 doc/guides/tools/dts.rst=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 165 ++++++++-
>=C2=A0 dts/conf.yaml=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2= =A0 22 +-
>=C2=A0 dts/framework/config/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 | 130 ++++++-
>=C2=A0 dts/framework/config/conf_yaml_schema.json=C2=A0 =C2=A0 | 172 ++= +++++++-
>=C2=A0 dts/framework/dts.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 185 ++++++++--
>=C2=A0 dts/framework/exception.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 100 +++++-
>=C2=A0 dts/framework/logger.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 24 +-
>=C2=A0 dts/framework/remote_session/__init__.py=C2=A0 =C2=A0 =C2=A0 |= =C2=A0 30 +-
>=C2=A0 dts/framework/remote_session/linux_session.py | 107 ++++++
>=C2=A0 dts/framework/remote_session/os_session.py=C2=A0 =C2=A0 | 175 ++= ++++++++
>=C2=A0 dts/framework/remote_session/posix_session.py | 222 ++++++++++++=
>=C2=A0 .../remote_session/remote/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0|=C2=A0 16 +
>=C2=A0 .../remote_session/remote/remote_session.py=C2=A0 =C2=A0| 155 ++= +++++++
>=C2=A0 .../{ =3D> remote}/ssh_session.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 92 ++++-
>=C2=A0 .../remote_session/remote_session.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 |=C2=A0 95 ------
>=C2=A0 dts/framework/settings.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 81 ++++-
>=C2=A0 dts/framework/test_result.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 316 ++++++++++++++++++
>=C2=A0 dts/framework/test_suite.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 254 ++++++++++++++
>=C2=A0 dts/framework/testbed_model/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2= =A0|=C2=A0 20 +-
>=C2=A0 dts/framework/testbed_model/dpdk.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0|=C2=A0 78 +++++
>=C2=A0 dts/framework/testbed_model/hw/__init__.py=C2=A0 =C2=A0 |=C2=A0 = 27 ++
>=C2=A0 dts/framework/testbed_model/hw/cpu.py=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0| 274 +++++++++++++++
>=C2=A0 .../testbed_model/hw/virtual_device.py=C2=A0 =C2=A0 =C2=A0 =C2= =A0 |=C2=A0 16 +
>=C2=A0 dts/framework/testbed_model/node.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0| 159 +++++++--
>=C2=A0 dts/framework/testbed_model/sut_node.py=C2=A0 =C2=A0 =C2=A0 =C2= =A0| 260 ++++++++++++++
>=C2=A0 dts/framework/utils.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 39 ++-
>=C2=A0 dts/tests/TestSuite_hello_world.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 |=C2=A0 64 ++++
>=C2=A0 27 files changed, 3068 insertions(+), 210 deletions(-)=C2=A0 cre= ate mode 100644
> dts/framework/remote_session/linux_session.py
>=C2=A0 create mode 100644 dts/framework/remote_session/os_session.py >=C2=A0 create mode 100644 dts/framework/remote_session/posix_session.py=
>=C2=A0 create mode 100644 dts/framework/remote_session/remote/__init__.= py
>=C2=A0 create mode 100644
> dts/framework/remote_session/remote/remote_session.py
>=C2=A0 rename dts/framework/remote_session/{ =3D> remote}/ssh_sessio= n.py (64%)
> delete mode 100644 dts/framework/remote_session/remote_session.py
>=C2=A0 create mode 100644 dts/framework/test_result.py=C2=A0 create mod= e 100644
> dts/framework/test_suite.py=C2=A0 create mode 100644
> dts/framework/testbed_model/dpdk.py
>=C2=A0 create mode 100644 dts/framework/testbed_model/hw/__init__.py >=C2=A0 create mode 100644 dts/framework/testbed_model/hw/cpu.py
>=C2=A0 create mode 100644 dts/framework/testbed_model/hw/virtual_device= .py
>=C2=A0 create mode 100644 dts/framework/testbed_model/sut_node.py
>=C2=A0 create mode 100644 dts/tests/TestSuite_hello_world.py
>
> --
> 2.30.2
>

--00000000000032c95005f5d29a07--