From patchwork Fri May 12 19:25:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeremy Spewock X-Patchwork-Id: 126840 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 C0B4342AE8; Fri, 12 May 2023 21:27:09 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5264A406BA; Fri, 12 May 2023 21:27:09 +0200 (CEST) Received: from mail-yw1-f230.google.com (mail-yw1-f230.google.com [209.85.128.230]) by mails.dpdk.org (Postfix) with ESMTP id 04F0F406B3 for ; Fri, 12 May 2023 21:27:07 +0200 (CEST) Received: by mail-yw1-f230.google.com with SMTP id 00721157ae682-55a83e80262so152541567b3.3 for ; Fri, 12 May 2023 12:27:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1683919627; x=1686511627; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=wsibA6egc4sYe9VF/sfU2NLHgurEJpsNbFr4xvPDRCU=; b=PodY0U3kkvE4gx9N2zCDInWmQyGJCHJQ/ALQjn+kJnWZVkugDdBt93zb6I2gS0m2mm fM+f//WuHvlFfSWgsQb+/ztY6YeIwFcCczcbU8bfPpEJBpA5CQCUoauDuF6i0Q1Y0w6u y1VxM/uKFyjEe0JF17TSIXw9ex6fzlo1VV2Jw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683919627; x=1686511627; 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=wsibA6egc4sYe9VF/sfU2NLHgurEJpsNbFr4xvPDRCU=; b=htJZpo99CrkoC8MlH6krZgAREri5cBYoCthUSIDXf6dyotM2pfU9T09kYdSPTR5W9m 0pUWVR7zZvVmqL73jlz4Bu1F/aouZh8euN7UYOmn6Yw6Z57sg+EHtKMeJt12k4e+6yGf Hm4qtLk0a6UIg1109oqcLv52Xjz/IN9FKplZI4aVq1tZsK1poQAoSG0hmakTUw6JN54G XcgWvmhXnYZ4VqqHPTG79t/Btlw9xX0MAYFouBs0l5kQyT9EssO7gS3wrcDKpeEEF+el /sN/HUOlqsJShg1HzIopwY/uFcSbLPi1s/u19ZWqvX2J4KEujxRlFJVI5+CJ1hWXsFKA bRkA== X-Gm-Message-State: AC+VfDz41uopYreflJ/Ml5hmkc1wCC8oAZlhb3I0u/mM1Sh6BDn8aAmR 7khl2x7r25foKiL6/oL80U9BGqtAITSPvHSKmEkqnlmtLILc1ZqPQ7YrdJjk8xhqYMC4ae87hFD VCMvhH3Dsoz53l7iqfaJtm7lqnrLW+I0PMdaIV4eEVVGOLj+eIDjXK5tPHP5kNov+byNZuQxNcS OBHnSa+H7KSB7FWUG5ARWbYZJc X-Google-Smtp-Source: ACHHUZ7slK9vH7seJnycYK4+6/b4ZsExugxYUOPreJ6ToDtg54UzBOb3Z+Qx4SWkRv7g/COu1eEe3ZBMoWwe X-Received: by 2002:a81:8445:0:b0:55a:5b19:ca9 with SMTP id u66-20020a818445000000b0055a5b190ca9mr26496896ywf.36.1683919627217; Fri, 12 May 2023 12:27:07 -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 g82-20020a816b55000000b00559f15fff3asm2038314ywc.45.2023.05.12.12.27.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 May 2023 12:27:07 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from iol.unh.edu (unknown [IPv6:2606:4100:3880:1271:90f9:1b64:f6e6:867f]) by postal.iol.unh.edu (Postfix) with ESMTP id 941B4605246B; Fri, 12 May 2023 15:27:06 -0400 (EDT) From: jspewock@iol.unh.edu To: dev@dpdk.org Cc: Jeremy Spewock Subject: [RFC v2 0/2] add DTS smoke tests Date: Fri, 12 May 2023 15:25:40 -0400 Message-Id: <20230512192540.401-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 adds a few more things such as physical devices and virtual devices to the config, driver checks in the smoke tests, and interactive shell handling. Interactive shells are handled by creating two SSH connections upon connecting to the SUT, one which is for normal non-interactive opertaions and another (using paramiko) that is reserved for interactive shells. This interactive session is stored in the main session of the SUT and can be piloted using the interactive handler. This handler creates a new channel off the session and provides methods for sending commands both blindly and by expecting output. Then, classes are made for individual DPDK applications that use one of these interactive handlers and know how to handle that applications specific behaviors and outputs. Old RFC: * http://patches.dpdk.org/project/dpdk/patch/20230413175415.7683-3-jspewock@iol.unh.edu/ Jeremy Spewock (1): dts: added paramiko to dependencies Jeremy Spewock (1): dts: add smoke tests dts/conf.yaml | 9 + dts/framework/config/__init__.py | 21 +++ dts/framework/config/conf_yaml_schema.json | 32 +++- dts/framework/dts.py | 19 ++- dts/framework/exception.py | 11 ++ dts/framework/remote_session/os_session.py | 6 +- .../remote_session/remote/__init__.py | 28 +++ dts/framework/test_result.py | 13 +- dts/framework/test_suite.py | 24 ++- dts/framework/testbed_model/__init__.py | 5 + .../interactive_apps/__init__.py | 6 + .../interactive_apps/interactive_command.py | 57 +++++++ .../interactive_apps/testpmd_driver.py | 24 +++ dts/framework/testbed_model/node.py | 2 + dts/framework/testbed_model/sut_node.py | 6 + dts/poetry.lock | 160 ++++++++++++++---- dts/pyproject.toml | 1 + dts/tests/TestSuite_smoke_tests.py | 94 ++++++++++ 18 files changed, 472 insertions(+), 46 deletions(-) create mode 100644 dts/framework/testbed_model/interactive_apps/__init__.py create mode 100644 dts/framework/testbed_model/interactive_apps/interactive_command.py create mode 100644 dts/framework/testbed_model/interactive_apps/testpmd_driver.py create mode 100644 dts/tests/TestSuite_smoke_tests.py