From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
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 <dev@dpdk.org>; Wed,  1 Mar 2023 09:36:02 +0100 (CET)
Received: by mail-ed1-f46.google.com with SMTP id ck15so50890857edb.0
 for <dev@dpdk.org>; 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>
 <DB6PR08MB26969C03AB8D30E8340C8F579FAE9@DB6PR08MB2696.eurprd08.prod.outlook.com>
 <CAOb5WZZX_Rm4k9DgYnudJLP5ppDo8zQDPaGz_hdsx3wPFrYXOQ@mail.gmail.com>
 <AM4PR08MB269099C0A7B80E37F32D18129FAC9@AM4PR08MB2690.eurprd08.prod.outlook.com>
In-Reply-To: <AM4PR08MB269099C0A7B80E37F32D18129FAC9@AM4PR08MB2690.eurprd08.prod.outlook.com>
From: =?UTF-8?Q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>
Date: Wed, 1 Mar 2023 09:35:51 +0100
Message-ID: <CAOb5WZZQhsfJhrWxCYSCt9hUiob=6wgHOW5Uhh3gQYaWTBXQFg@mail.gmail.com>
Subject: Re: [PATCH v5 00/10] dts: add hello world testcase
To: Wathsala Wathawana Vithanage <wathsala.vithanage@arm.com>
Cc: "thomas@monjalon.net" <thomas@monjalon.net>, 
 Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>,
 "lijuan.tu@intel.com" <lijuan.tu@intel.com>, 
 "bruce.richardson@intel.com" <bruce.richardson@intel.com>,
 "probb@iol.unh.edu" <probb@iol.unh.edu>, 
 "dev@dpdk.org" <dev@dpdk.org>, nd <nd@arm.com>
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 <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

--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 <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=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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Tue, Feb 28, 2023 at 4:27=E2=80=AF=
PM Wathsala Wathawana Vithanage &lt;<a href=3D"mailto:wathsala.vithanage@ar=
m.com">wathsala.vithanage@arm.com</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div class=3D"msg-341182210817702663">





<div style=3D"overflow-wrap: break-word;" lang=3D"EN-US">
<div class=3D"m_-341182210817702663WordSection1">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div style=3D"border-color:currentcolor currentcolor currentcolor blue;bord=
er-style:none none none solid;border-width:medium medium medium 1.5pt;paddi=
ng:0in 0in 0in 4pt">
<div>
<div style=3D"border-color:rgb(225,225,225) currentcolor currentcolor;borde=
r-style:solid none none;border-width:1pt medium medium;padding:3pt 0in 0in"=
>
<p class=3D"MsoNormal"><b>From:</b> Juraj Linke=C5=A1 &lt;juraj.linkes@pant=
heon.tech&gt; <br>
<b>Sent:</b> Monday, February 27, 2023 3:29 AM<br>
<b>To:</b> Wathsala Wathawana Vithanage &lt;<a href=3D"mailto:wathsala.vith=
anage@arm.com" target=3D"_blank">wathsala.vithanage@arm.com</a>&gt;<br>
<b>Cc:</b> <a href=3D"mailto:thomas@monjalon.net" target=3D"_blank">thomas@=
monjalon.net</a>; Honnappa Nagarahalli &lt;<a href=3D"mailto:Honnappa.Nagar=
ahalli@arm.com" target=3D"_blank">Honnappa.Nagarahalli@arm.com</a>&gt;; <a =
href=3D"mailto:lijuan.tu@intel.com" target=3D"_blank">lijuan.tu@intel.com</=
a>; <a href=3D"mailto:bruce.richardson@intel.com" target=3D"_blank">bruce.r=
ichardson@intel.com</a>; <a href=3D"mailto:probb@iol.unh.edu" target=3D"_bl=
ank">probb@iol.unh.edu</a>; <a href=3D"mailto:dev@dpdk.org" target=3D"_blan=
k">dev@dpdk.org</a>; nd &lt;<a href=3D"mailto:nd@arm.com" target=3D"_blank"=
>nd@arm.com</a>&gt;<br>
<b>Subject:</b> Re: [PATCH v5 00/10] dts: add hello world testcase<u></u><u=
></u></p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class=3D"MsoNormal">Hi Juraj,<u></u><u></u></p>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Hi Wathsala, thanks for the comments.<u></u><u></u><=
/p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class=3D"MsoNormal">Everything looks good except for couple of comments/=
suggestions.<br>
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?<u></u><u></u></p>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">We&#39;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=
.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class=3D"MsoNormal">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.<u></u><u></u></p>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">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).<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class=3D"MsoNormal">It&#39;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?<u></u><u></u></p>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">That is also a separate patch in the making - users =
will be able to supply a git ref that DTS will use. I haven&#39;t thought a=
bout local directories, what additional scenarios would that cover?<u></u><=
u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">It may come in handy if working with a tarball witho=
ut git or access to Internet.<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0</p></div></div></div></div></div></div=
></div></blockquote><div><br></div><div>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&#39;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&#39;s not a git=
 repository and you don&#39;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)?<br></div><div>=C2=A0</div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex"><div class=3D"msg-34118221081770266=
3"><div style=3D"overflow-wrap: break-word;" lang=3D"EN-US"><div class=3D"m=
_-341182210817702663WordSection1"><div style=3D"border-color:currentcolor c=
urrentcolor currentcolor blue;border-style:none none none solid;border-widt=
h:medium medium medium 1.5pt;padding:0in 0in 0in 4pt"><div><div><div><p cla=
ss=3D"MsoNormal"><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Regards,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Juraj<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border-color:currentcolor currentcolor currentcolor rg=
b(204,204,204);border-style:none none none solid;border-width:medium medium=
 medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class=3D"MsoNormal" style=3D"margin-bottom:12pt"><br>
[1] <a href=3D"https://lwn.net/Articles/835962/" target=3D"_blank">https://=
lwn.net/Articles/835962/</a><br>
[2] <a href=3D"https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-=
9-what-you-need-know" target=3D"_blank">
https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need=
-know</a><br>
<br>
&gt; Juraj Linke=C5=A1 (10):<br>
&gt;=C2=A0 =C2=A0dts: add node and os abstractions<br>
&gt;=C2=A0 =C2=A0dts: add ssh command verification<br>
&gt;=C2=A0 =C2=A0dts: add dpdk build on sut<br>
&gt;=C2=A0 =C2=A0dts: add dpdk execution handling<br>
&gt;=C2=A0 =C2=A0dts: add node memory setup<br>
&gt;=C2=A0 =C2=A0dts: add test suite module<br>
&gt;=C2=A0 =C2=A0dts: add hello world testsuite<br>
&gt;=C2=A0 =C2=A0dts: add test suite config and runner<br>
&gt;=C2=A0 =C2=A0dts: add test results module<br>
&gt;=C2=A0 =C2=A0doc: update DTS setup and test suite cookbook<br>
&gt; <br>
&gt;=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 ++++++++-<br>
&gt;=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 +-<br>
&gt;=C2=A0 dts/framework/config/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 | 130 ++++++-<br>
&gt;=C2=A0 dts/framework/config/conf_yaml_schema.json=C2=A0 =C2=A0 | 172 ++=
+++++++-<br>
&gt;=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 ++++++++--<br>
&gt;=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 +++++-<br>
&gt;=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 +-<br>
&gt;=C2=A0 dts/framework/remote_session/__init__.py=C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 30 +-<br>
&gt;=C2=A0 dts/framework/remote_session/linux_session.py | 107 ++++++<br>
&gt;=C2=A0 dts/framework/remote_session/os_session.py=C2=A0 =C2=A0 | 175 ++=
++++++++<br>
&gt;=C2=A0 dts/framework/remote_session/posix_session.py | 222 ++++++++++++=
<br>
&gt;=C2=A0 .../remote_session/remote/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0|=C2=A0 16 +<br>
&gt;=C2=A0 .../remote_session/remote/remote_session.py=C2=A0 =C2=A0| 155 ++=
+++++++<br>
&gt;=C2=A0 .../{ =3D&gt; remote}/ssh_session.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 92 ++++-<br>
&gt;=C2=A0 .../remote_session/remote_session.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 |=C2=A0 95 ------<br>
&gt;=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 ++++-<br>
&gt;=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 ++++++++++++++++++<br>
&gt;=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 ++++++++++++++<br>
&gt;=C2=A0 dts/framework/testbed_model/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 20 +-<br>
&gt;=C2=A0 dts/framework/testbed_model/dpdk.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0|=C2=A0 78 +++++<br>
&gt;=C2=A0 dts/framework/testbed_model/hw/__init__.py=C2=A0 =C2=A0 |=C2=A0 =
27 ++<br>
&gt;=C2=A0 dts/framework/testbed_model/hw/cpu.py=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0| 274 +++++++++++++++<br>
&gt;=C2=A0 .../testbed_model/hw/virtual_device.py=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 |=C2=A0 16 +<br>
&gt;=C2=A0 dts/framework/testbed_model/node.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0| 159 +++++++--<br>
&gt;=C2=A0 dts/framework/testbed_model/sut_node.py=C2=A0 =C2=A0 =C2=A0 =C2=
=A0| 260 ++++++++++++++<br>
&gt;=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 ++-<br>
&gt;=C2=A0 dts/tests/TestSuite_hello_world.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 |=C2=A0 64 ++++<br>
&gt;=C2=A0 27 files changed, 3068 insertions(+), 210 deletions(-)=C2=A0 cre=
ate mode 100644<br>
&gt; dts/framework/remote_session/linux_session.py<br>
&gt;=C2=A0 create mode 100644 dts/framework/remote_session/os_session.py<br=
>
&gt;=C2=A0 create mode 100644 dts/framework/remote_session/posix_session.py=
<br>
&gt;=C2=A0 create mode 100644 dts/framework/remote_session/remote/__init__.=
py<br>
&gt;=C2=A0 create mode 100644<br>
&gt; dts/framework/remote_session/remote/remote_session.py<br>
&gt;=C2=A0 rename dts/framework/remote_session/{ =3D&gt; remote}/ssh_sessio=
n.py (64%)<br>
&gt; delete mode 100644 dts/framework/remote_session/remote_session.py<br>
&gt;=C2=A0 create mode 100644 dts/framework/test_result.py=C2=A0 create mod=
e 100644<br>
&gt; dts/framework/test_suite.py=C2=A0 create mode 100644<br>
&gt; dts/framework/testbed_model/dpdk.py<br>
&gt;=C2=A0 create mode 100644 dts/framework/testbed_model/hw/__init__.py<br=
>
&gt;=C2=A0 create mode 100644 dts/framework/testbed_model/hw/cpu.py<br>
&gt;=C2=A0 create mode 100644 dts/framework/testbed_model/hw/virtual_device=
.py<br>
&gt;=C2=A0 create mode 100644 dts/framework/testbed_model/sut_node.py<br>
&gt;=C2=A0 create mode 100644 dts/tests/TestSuite_hello_world.py<br>
&gt; <br>
&gt; --<br>
&gt; 2.30.2<br>
&gt; <u></u><u></u></p>
</blockquote>
</div>
</div>
</div>
</div>
</div>

</div></blockquote></div></div>

--00000000000032c95005f5d29a07--