From patchwork Fri Jun 2 15:13:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeremy Spewock X-Patchwork-Id: 127969 Return-Path: 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 5657542C11; Fri, 2 Jun 2023 17:14:14 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3081C40ED8; Fri, 2 Jun 2023 17:14:14 +0200 (CEST) Received: from mail-pg1-f227.google.com (mail-pg1-f227.google.com [209.85.215.227]) by mails.dpdk.org (Postfix) with ESMTP id 62F5F406B8 for ; Fri, 2 Jun 2023 17:14:12 +0200 (CEST) Received: by mail-pg1-f227.google.com with SMTP id 41be03b00d2f7-5289ce6be53so2574607a12.0 for ; Fri, 02 Jun 2023 08:14:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1685718851; x=1688310851; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=mtAdKX2GJb27K/csBnNf2QgS4rIjojtoCiRobBD7nyM=; b=YY7uOaxV66m8hE2o14+IBifJIX1mKAIH4mfT0O34czScAFL6d/ngPDoUK/XcMghHed g2Gnkljq2pPzV/Nc9apPA3WrqZRBdw3b5Ijw3qaPKEYI9tmjzcZX1cMKyimNfwxiUnM+ wA8lm7mogIaJ8tMz8cW2mMZE5u0KxCtWkyVqU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685718851; x=1688310851; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=mtAdKX2GJb27K/csBnNf2QgS4rIjojtoCiRobBD7nyM=; b=fBvB1l6Ca7tjXoeDes1oCKILO+Od371Tz/DLEz0CmtuJeLOKUBVDjWjUMvjznGd8Jz gG1Ku8lpBximT72eU8QgOjxcmrjvR3DX/xQ2ktNssV2NPXgMaVNvkUFz/Z/EZjKFqxTk 804HEJ0sSqrX4A0vo/O4EKmqUlh4F5fx9Ef/lAS62Prxv1l69VAKLERg62QitG819Wlz xbmt7ukDxB9ahe9v2RxIE+QhsTShEHFSxfQ0sj3+hI1epCbyMG+UAsTYHcs3/Lhv/QNH 3wFVnHPIQJkIwSeD3NIvZXUeGEE+vktbQwvT6sixEykvMFhyHOECtjmBPcmJ+wyrP1FV g0Jw== X-Gm-Message-State: AC+VfDwPBWIEiDsC28aEsrfj1WNxEpPXVCsXwDtuu7VygEJo3V88e3Jo c0vqhud2jRYu+6FPSQVEUcLg10nYicFBl8VwbPuwVMiBxgorE6LZcYLs8+UVkcjS9w== X-Google-Smtp-Source: ACHHUZ4XDaix11CEH+Mkh81vva/QbxycEoz4EgBNfCtxMvZqc4/IzV8E7m31iW+eZADXxwJKJ1O1cvg7CDmG X-Received: by 2002:a17:902:cec6:b0:1ad:d95d:ca9c with SMTP id d6-20020a170902cec600b001add95dca9cmr149814plg.15.1685718851556; Fri, 02 Jun 2023 08:14:11 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id u11-20020a170902714b00b001b040079c5bsm160127plm.118.2023.06.02.08.14.11 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Jun 2023 08:14:11 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from iol.unh.edu (unknown [IPv6:2606:4100:3880:1257::1083]) by postal.iol.unh.edu (Postfix) with ESMTP id 46483605246B; Fri, 2 Jun 2023 11:14:10 -0400 (EDT) From: jspewock@iol.unh.edu To: Honnappa.Nagarahalli@arm.com, juraj.linkes@pantheon.tech, thomas@monjalon.net, lijuan.tu@intel.com, wathsala.vithanage@arm.com Cc: dev@dpdk.org, Jeremy Spewock Subject: [RFC v3 0/2] add DTS smoke tests Date: Fri, 2 Jun 2023 11:13:30 -0400 Message-Id: <20230602151332.6404-2-jspewock@iol.unh.edu> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 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 From: Jeremy Spewock This update to the RFC addresses comments recieved on the previous about formatting and implementation. Things that are new to this patch series are: * New class similar to the RemoteSession that handles interactive remote sessions * A keepalive for the interactive SSH session * Proper paramiko error handling when connecting to the host * A factory within this new class for creating DPDK applicaiton drivers * An Enum that represents the different DPDK applications and their default paths * Os-agnostic path handling in the SmokeTests test suite * Stdout and stderr are combined for InteractiveShells * A way to move the stdout buffer pointer to the end to "empty" the buffer * Information gathering moved into respective classes (the test still exists in the test suite but this can now be removed assuming the new gathering method is sufficient) Previous RFCs: * v2: https://mails.dpdk.org/archives/dev/2023-May/267915.html * v1: https://mails.dpdk.org/archives/dev/2023-April/266580.html Jeremy Spewock (2): dts: add smoke tests dts: added paramiko to dependencies dts/conf.yaml | 8 + dts/framework/config/__init__.py | 88 ++++++++++ dts/framework/config/conf_yaml_schema.json | 32 +++- dts/framework/dts.py | 26 ++- dts/framework/exception.py | 12 ++ dts/framework/remote_session/__init__.py | 10 +- dts/framework/remote_session/os_session.py | 34 +++- dts/framework/remote_session/posix_session.py | 30 ++++ .../remote_session/remote/__init__.py | 12 ++ .../remote/interactive_remote_session.py | 113 +++++++++++++ .../remote/interactive_shell.py | 98 +++++++++++ .../remote_session/remote/testpmd_shell.py | 58 +++++++ dts/framework/test_result.py | 38 ++++- dts/framework/test_suite.py | 31 +++- dts/framework/testbed_model/node.py | 2 + dts/framework/testbed_model/sut_node.py | 110 +++++++++++- dts/poetry.lock | 160 ++++++++++++++---- dts/pyproject.toml | 1 + dts/tests/TestSuite_smoke_tests.py | 109 ++++++++++++ 19 files changed, 916 insertions(+), 56 deletions(-) create mode 100644 dts/framework/remote_session/remote/interactive_remote_session.py create mode 100644 dts/framework/remote_session/remote/interactive_shell.py create mode 100644 dts/framework/remote_session/remote/testpmd_shell.py create mode 100644 dts/tests/TestSuite_smoke_tests.py