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 66F3D41C53; Thu, 9 Feb 2023 17:48:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 53F5E42670; Thu, 9 Feb 2023 17:48:00 +0100 (CET) Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) by mails.dpdk.org (Postfix) with ESMTP id 78C374161A for <dev@dpdk.org>; Thu, 9 Feb 2023 17:47:58 +0100 (CET) Received: by mail-oi1-f169.google.com with SMTP id cz14so2115091oib.12 for <dev@dpdk.org>; Thu, 09 Feb 2023 08:47:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=nGbPoGAGcdy55aM0Ov8Ey0itL0JzFj0IJAzYN4SZxkk=; b=idFk/4laWcviHpJp5gdaLlHG7vaOcsfad4vX8Q5Mcr0zfpCusywusSggypcKUCCAKy /+k+rt/yXPIAh5NUV4Dswp2locfXp5Fk2/vsCcMzCYP47P+qOpfvZmCFsKzFqKeQ2oii UQGYggrRMJlnZqfu5J7LEN7BRhr1k9uz0D8wI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=nGbPoGAGcdy55aM0Ov8Ey0itL0JzFj0IJAzYN4SZxkk=; b=GkfKebN226wPyuQyKPDD3a+uJEgVsQuYiPX9FjU++GMXKcZgGg1wSlC2iUbVkyDxRB Xwl1yfEnG3prt1hvseHbK5B9Vg10TpXp/C1dYivILNA+gguq7/nPjYL4JFIRm27lcXK1 bK1OpEa76DJSwAewY50ExRldyhOx1UD36LZLeEXqaJfa7XZtJ6zuod8YSohLjEbShKka /sv3YywR6V8Ua/zBPbRerrL+gyFtBmZymJtM793jApboDiQL/cDnIIR8vAfWKOCngvbd vflVQAcXW8/Z2uuKoh2U3Lmsa2UgR/GkTCN75QOlWnI+ZJSMG3jRTqha02C5qlcCucEQ KrZg== X-Gm-Message-State: AO0yUKUMzW8XxM+SB5TEZTDp/1jnuT1EoLqxdStsx75hpxnYZhxeaPnB ok071AK2L1YkzMjWxNRhWFhvXOTcjijUjlyP3BKuOQ== X-Google-Smtp-Source: AK7set/AyAhHuKbZNIjbmbiucuZFUpcMOahMVGsNrZGGRbFLUJVBqvSWKDfQQQF5j7iZGVVcf8xZGewGkZCDHyeySac= X-Received: by 2002:a05:6808:11c5:b0:37b:73b1:fae with SMTP id p5-20020a05680811c500b0037b73b10faemr827987oiv.269.1675961276274; Thu, 09 Feb 2023 08:47:56 -0800 (PST) MIME-Version: 1.0 References: <20221114165438.1133783-1-juraj.linkes@pantheon.tech> <20230117154906.860916-1-juraj.linkes@pantheon.tech> <CAHx6DYCM4=9q68s7CLhm+ZR_ZBT20JBVkmCXyuDSotkHabT6yw@mail.gmail.com> In-Reply-To: <CAHx6DYCM4=9q68s7CLhm+ZR_ZBT20JBVkmCXyuDSotkHabT6yw@mail.gmail.com> From: Patrick Robb <probb@iol.unh.edu> Date: Thu, 9 Feb 2023 11:47:45 -0500 Message-ID: <CAJvnSUD-TpZO17fAxyHUq6QtOaHFZ-CFiCKeksX7XmR3G4aPLw@mail.gmail.com> Subject: Re: [PATCH v3 00/10] dts: add hello world testcase To: Owen Hilyard <ohilyard@iol.unh.edu> Cc: =?UTF-8?Q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>, thomas@monjalon.net, Honnappa.Nagarahalli@arm.com, lijuan.tu@intel.com, bruce.richardson@intel.com, dev@dpdk.org Content-Type: multipart/alternative; boundary="00000000000087b18305f447242b" 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 --00000000000087b18305f447242b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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=3Ddumb 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=C5=A1 <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=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 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 +++++++++ >> .../{ =3D> 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.p= y >> rename dts/framework/remote_session/{ =3D> 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> --=20 Patrick Robb Technical Service Manager UNH InterOperability Laboratory 21 Madbury Rd, Suite 100, Durham, NH 03824 www.iol.unh.edu --00000000000087b18305f447242b 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 Thu, Jan 19, 2023 at 11:16 AM Owen= Hilyard <<a href=3D"mailto:ohilyard@iol.unh.edu" target=3D"_blank">ohil= yard@iol.unh.edu</a>> wrote:<br></div><blockquote class=3D"gmail_quote" = style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa= dding-left:1ex"><div dir=3D"ltr">Everything looks good to me with the excep= tion of some issues I ran into with terminal codes. Setting TERM=3Ddumb bef= ore running fixed it, but we might want to set that inside of DTS since I c= an't think of a reason why we would need colors or any of the other &qu= ot;fancy" features of the=C2=A0vt220, and setting everything to telety= pe mode should make our lives easier when parsing output.<div><br></div><di= v>I think that later on it might make sense to have "CPU" be a de= vice class like NIC or Cryptodev, but that can be revisited once we get clo= ser to interacting with hardware.=C2=A0</div></div><br><div class=3D"gmail_= quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jan 17, 2023 at 10:49 = AM Juraj Linke=C5=A1 <juraj.linkes@pantheon.tech> wrote:<br></div><bl= ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef= t:1px solid rgb(204,204,204);padding-left:1ex">Add code needed to run the H= elloWorld testcase which just runs the hello<br> world dpdk application.<br> <br> The patchset currently heavily refactors this original DTS code needed<br> to run the testcase:<br> * The whole architecture has been redone into more sensible class<br> =C2=A0 hierarchy<br> * DPDK build on the System under Test<br> * DPDK eal args construction, app running and shutting down<br> * SUT hugepage memory configuration<br> * Test runner<br> * Test results<br> * TestSuite class<br> * Test runner parts interfacing with TestSuite<br> * The HelloWorld testsuite itself<br> <br> The code is divided into sub-packages, some of which are divided<br> further.<br> <br> There patch may need to be divided into smaller chunks. If so, proposals<br= > on where exactly to split it would be very helpful.<br> <br> v3:<br> Finished refactoring everything in this patch, with test suite and test<br> results being the last parts.<br> Also changed the directory structure. It's now simplified and the<br> imports look much better.<br> I've also many many minor changes such as renaming variables here and<b= r> there.<br> <br> Juraj Linke=C5=A1 (10):<br> =C2=A0 dts: add node and os abstractions<br> =C2=A0 dts: add ssh command verification<br> =C2=A0 dts: add dpdk build on sut<br> =C2=A0 dts: add dpdk execution handling<br> =C2=A0 dts: add node memory setup<br> =C2=A0 dts: add test suite module<br> =C2=A0 dts: add hello world testplan<br> =C2=A0 dts: add hello world testsuite<br> =C2=A0 dts: add test suite config and runner<br> =C2=A0 dts: add test results module<br> <br> =C2=A0dts/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 19 +-= <br> =C2=A0dts/framework/config/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 | 132 +++++++-<br> =C2=A0dts/framework/config/arch.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 |=C2=A0 57 ++++<br> =C2=A0dts/framework/config/conf_yaml_schema.json=C2=A0 =C2=A0 | 150 +++++++= +-<br> =C2=A0dts/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> =C2=A0dts/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> =C2=A0dts/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> =C2=A0dts/framework/remote_session/__init__.py=C2=A0 =C2=A0 =C2=A0 |=C2=A0 = 30 +-<br> =C2=A0dts/framework/remote_session/linux_session.py | 114 +++++++<br> =C2=A0dts/framework/remote_session/os_session.py=C2=A0 =C2=A0 | 177 +++++++= +++<br> =C2=A0dts/framework/remote_session/posix_session.py | 221 ++++++++++++<br> =C2=A0.../remote_session/remote/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0|=C2=A0 16 +<br> =C2=A0.../remote_session/remote/remote_session.py=C2=A0 =C2=A0| 155 +++++++= ++<br> =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 91 ++++-<br> =C2=A0.../remote_session/remote_session.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 |=C2=A0 95 ------<br> =C2=A0dts/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 79 ++++-<br> =C2=A0dts/framework/test_result.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 | 316 ++++++++++++++++++<br> =C2=A0dts/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> =C2=A0dts/framework/testbed_model/__init__.py=C2=A0 =C2=A0 =C2=A0 =C2=A0|= =C2=A0 20 +-<br> =C2=A0dts/framework/testbed_model/dpdk.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0|=C2=A0 78 +++++<br> =C2=A0dts/framework/testbed_model/hw/__init__.py=C2=A0 =C2=A0 |=C2=A0 27 ++= <br> =C2=A0dts/framework/testbed_model/hw/cpu.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0| 253 ++++++++++++++<br> =C2=A0.../testbed_model/hw/virtual_device.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 |= =C2=A0 16 +<br> =C2=A0dts/framework/testbed_model/node.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0| 165 +++++++--<br> =C2=A0dts/framework/testbed_model/sut_node.py=C2=A0 =C2=A0 =C2=A0 =C2=A0| 2= 61 +++++++++++++++<br> =C2=A0dts/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> =C2=A0dts/test_plans/hello_world_test_plan.rst=C2=A0 =C2=A0 =C2=A0 |=C2=A0 = 68 ++++<br> =C2=A0dts/tests/TestSuite_hello_world.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 |=C2=A0 59 ++++<br> =C2=A028 files changed, 2998 insertions(+), 203 deletions(-)<br> =C2=A0create mode 100644 dts/framework/config/arch.py<br> =C2=A0create mode 100644 dts/framework/remote_session/linux_session.py<br> =C2=A0create mode 100644 dts/framework/remote_session/os_session.py<br> =C2=A0create mode 100644 dts/framework/remote_session/posix_session.py<br> =C2=A0create mode 100644 dts/framework/remote_session/remote/__init__.py<br= > =C2=A0create mode 100644 dts/framework/remote_session/remote/remote_session= .py<br> =C2=A0rename dts/framework/remote_session/{ =3D> remote}/ssh_session.py = (65%)<br> =C2=A0delete mode 100644 dts/framework/remote_session/remote_session.py<br> =C2=A0create mode 100644 dts/framework/test_result.py<br> =C2=A0create mode 100644 dts/framework/test_suite.py<br> =C2=A0create mode 100644 dts/framework/testbed_model/dpdk.py<br> =C2=A0create mode 100644 dts/framework/testbed_model/hw/__init__.py<br> =C2=A0create mode 100644 dts/framework/testbed_model/hw/cpu.py<br> =C2=A0create mode 100644 dts/framework/testbed_model/hw/virtual_device.py<b= r> =C2=A0create mode 100644 dts/framework/testbed_model/sut_node.py<br> =C2=A0create mode 100644 dts/test_plans/hello_world_test_plan.rst<br> =C2=A0create mode 100644 dts/tests/TestSuite_hello_world.py<br> <br> -- <br> 2.30.2<br> <br> </blockquote></div> </blockquote></div><br clear=3D"all"><div>Tested-by: Patrick Robb <<a hr= ef=3D"mailto:probb@iol.unh.edu" target=3D"_blank">probb@iol.unh.edu</a>>= <br></div>-- <br><div dir=3D"ltr"><div dir=3D"ltr"><p dir=3D"ltr" style=3D"= line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font color=3D"#000000" f= ace=3D"Arial"><span style=3D"font-size:13.3333px;white-space:pre-wrap">Patr= ick Robb</span></font></p><p style=3D"color:rgb(34,34,34);line-height:1.2;m= argin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:10pt;font-family:= Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline= ;white-space:pre-wrap">Technical Service Manager</span></p><p dir=3D"ltr" s= tyle=3D"color:rgb(34,34,34);line-height:1.2;margin-top:0pt;margin-bottom:0p= t"><span style=3D"font-size:10pt;font-family:Arial;color:rgb(0,0,0);backgro= und-color:transparent;vertical-align:baseline;white-space:pre-wrap">UNH Int= erOperability Laboratory</span></p><p dir=3D"ltr" style=3D"color:rgb(34,34,= 34);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-s= ize:10pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;ve= rtical-align:baseline;white-space:pre-wrap">21 Madbury Rd, Suite 100, Durha= m, NH 03824</span></p><p dir=3D"ltr" style=3D"color:rgb(34,34,34);line-heig= ht:1.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:10pt;font= -family:Arial;color:rgb(17,85,204);background-color:transparent;vertical-al= ign:baseline;white-space:pre-wrap"><a href=3D"http://www.iol.unh.edu/" styl= e=3D"color:rgb(17,85,204)" target=3D"_blank">www.iol.unh.edu</a></span></p>= <p dir=3D"ltr" style=3D"color:rgb(34,34,34);line-height:1.2;margin-top:0pt;= margin-bottom:0pt"><br></p><p dir=3D"ltr" style=3D"color:rgb(34,34,34);line= -height:1.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:10pt= ;font-family:Arial;color:rgb(51,51,51);background-color:transparent;vertica= l-align:baseline;white-space:pre-wrap"><img src=3D"https://lh4.googleuserco= ntent.com/7sTY8VswXadak_YT0J13osh5ockNVRX2BuYaRsKoTTpkpilBokA0WlocYHLB4q7XU= gXNHka6-ns47S8R_am0sOt7MYQQ1ILQ3S-P5aezsrjp3-IsJMmMrErHWmTARNgZhpAx06n2" wi= dth=3D"150" height=3D"37" style=3D"border:none"></span></p></div></div></di= v> --00000000000087b18305f447242b--