From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6990633379674718208 X-Received: by 2002:a50:cf8c:: with SMTP id h12mr1589580edk.360.1627633685947; Fri, 30 Jul 2021 01:28:05 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:f98f:: with SMTP id li15ls429485ejb.0.gmail; Fri, 30 Jul 2021 01:28:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxaFNP60vhb8barqhCzFP7bm+3ScESlWovfNU6YyeUXR4s7fxy+WiJ/Ap3mpQOg3Y/YktJl X-Received: by 2002:a17:906:2541:: with SMTP id j1mr1573459ejb.128.1627633685055; Fri, 30 Jul 2021 01:28:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627633685; cv=none; d=google.com; s=arc-20160816; b=vfpFSrl/pusz/NeaqnEVgPOynyiJ5BuqvNk4RaLiipgb9SVpT3ZC6u2wpkzN07amQD /IwYGZIpQFaMIYrBUwNgXIjgV4L4zVk0bfgGNDIfdfh7eL6J/VJ7CXvYl1t8+ZmGLj0K Ye+ki80xOn9bVIYLXLeKOotLnrXCtc5YpuU88HFICrvlwfNcHiLAdajZshnKsXfX97ZP 3jvMhuK5kiuWYZR5OshAFFcFfgNPhDNZwMkaKENUtVvkXYTRvuhzraMnml/3hdrdL9Kx 2cH8n+EcdtJelNEKuv9a1j3OvdC//HycySwR0+XTcrDX5tNF0IH+JpPV8NdQXQwgSRJz /k/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=s48t1fyzx5We5TMGoQ/DPSUhAxkAQHlfM9KN0be5RU0=; b=fIARrK+/ak49Pi3UoK91pA9eLPSj4VME+3w72Apn7kp3KuRr+mHvGea3HznXb0BibU qHp6+yoM4jWRabbNf90cMxH1QSIL/VfRgvgzeHRU1k5Vi9SamQ/RP3I4V2JcT2hf7+10 E8Bk8HOo9uEXCQZbr3peIyVWRBMwEb5Hk8+BGBpnX4G/kgMQ26F0z4UUxDISIC97eDUp YlxBhTDbNNC6z3Ng/ykl+6EW32YLoQRGUKryxvwpZtVpq4ibhfW7/JgWqfDX7YE2DNLO Lxl7s6UYUFCQJgMBGC6kVVFfrTGhmKxdMVDOYbceBu2oQSYqCPxXivOQFShaWuYh0gpZ VX5A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id dz22si36693edb.5.2021.07.30.01.28.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Jul 2021 01:28:05 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from localhost.localdomain (mm-88-30-214-37.mgts.dynamic.pppoe.byfly.by [37.214.30.88] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 16U8RkvY008721 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 30 Jul 2021 10:28:04 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v10 16/17] vm_smoke_test: Migrate to Avocado Date: Fri, 30 Jul 2021 11:27:38 +0300 Message-Id: <20210730082739.15042-17-amikan@ilbers.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210730082739.15042-1-amikan@ilbers.de> References: <20210730082739.15042-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: g1fbCBshEUYe Call Avocado test cases instead of shell based. Signed-off-by: Anton Mikanovich --- scripts/vm_smoke_test | 110 ++++------------------- scripts/vm_smoke_test_legacy | 168 +++++++++++++++++++++++++++++++++++ 2 files changed, 185 insertions(+), 93 deletions(-) create mode 100755 scripts/vm_smoke_test_legacy diff --git a/scripts/vm_smoke_test b/scripts/vm_smoke_test index ce08213..647b417 100755 --- a/scripts/vm_smoke_test +++ b/scripts/vm_smoke_test @@ -3,9 +3,7 @@ # This software is a part of ISAR. # Copyright (C) 2015-2018 ilbers GmbH -CONSOLE_OUTPUT=/tmp/isar_console -PID_FILE=/tmp/qemu.pid -VERBOSE=1 +VERBOSE="--show=test" TIMEOUT=300 # Error codes: @@ -13,75 +11,12 @@ ES_OK=0 ES_FAIL=1 ES_BUG=3 -RET=$ES_OK +RET=$ES_FAIL -dump_boot_log() { - echo "Boot log:\n8<--" - cat $CONSOLE_OUTPUT - echo "\n8<--" -} - -check_login_prompt() { - echo -n "Check login prompt: " - - str=$(grep "isar login: " $CONSOLE_OUTPUT) - - if [ -n "$str" ]; then - echo "PASSED" - else - echo "FAIL" - RET=$ES_FAIL - FAIL=1 - fi -} - -check_example_module() { - echo -n "Check example module: " - - str=$(grep "Just an example" $CONSOLE_OUTPUT) - - if [ -n "$str" ]; then - echo "PASSED" - else - echo "FAIL" - RET=$ES_FAIL - FAIL=1 - fi -} - -run_test () { - ARCH=$1 - DISTRO=$2 - - echo "-------------------------------------------------" - echo "Testing Isar [$DISTRO] image for [$ARCH] machine:" +# Get Avocado QEMU tests path +VM_TEST_DIR="$(dirname "$0")/../testsuite/vm_boot_test" - start_vm -a $ARCH -d $DISTRO -o $CONSOLE_OUTPUT -p $PID_FILE > /dev/null 2>&1 & - sleep 5 - - if [ -z `ps -p $! -o pid=` ]; then - echo "QEMU start: FAILED" - RET=$ES_FAIL - echo "Command output:\n8<--" - start_vm -a $ARCH -d $DISTRO -o $CONSOLE_OUTPUT -p $PID_FILE - echo "\n8<--" - else - sleep $TIMEOUT - kill `cat $PID_FILE` - - FAIL=0 - - check_login_prompt - - check_example_module - - [ $VERBOSE -eq 1 -o $FAIL -eq 1 ] && dump_boot_log - - rm $CONSOLE_OUTPUT - fi - - rm $PID_FILE -} +BUILD_DIR=$PWD show_help() { echo "This script tests the Isar images for default targets in QEMU." @@ -91,10 +26,6 @@ show_help() { echo echo "Parameters:" echo " -f,--fast test reduced set of supported targets." - echo " -o,--output FILE specify file to store console output." - echo " The default is: /tmp/isar_console" - echo " -p,--pid-file FILE specify file to store QEMU process PID." - echo " The default is: /tmp/qemu.pid" echo " -q, --quiet do not display boot logs for all the targets." echo " If test failed for the specific configuration," echo " the respective boot log will be printed anyway." @@ -119,18 +50,18 @@ do exit 0 ;; -o|--output) - CONSOLE_OUTPUT=$2 + # Deprecated option shift ;; -p|--pid-file) - PID_FILE=$2 + # Deprecated option shift ;; -f|--fast) FAST_BUILD="1" ;; -q|--quiet) - VERBOSE=0 + VERBOSE="" ;; -t|--timeout) TIMEOUT=$2 @@ -145,24 +76,17 @@ do shift done -# ARM machine -run_test arm stretch -run_test arm buster - -# AMD64 machine -if [ -z "$FAST_BUILD" ]; then - run_test amd64 buster - run_test amd64 focal +TAGS="full" +if [ -n "$FAST_BUILD" ]; then + TAGS="fast" fi -run_test amd64 stretch -# i386 machine -if [ -z "$FAST_BUILD" ]; then - run_test i386 stretch - run_test i386 buster -fi +# Provide working path +export VIRTUAL_ENV="./" -# ARM64 machine -run_test arm64 stretch +if avocado $VERBOSE run "$VM_TEST_DIR/vm_boot_test.py" -t $TAGS \ + -p build_dir="$BUILD_DIR" -p time_to_wait=$TIMEOUT; then + RET=$ES_OK +fi exit $RET diff --git a/scripts/vm_smoke_test_legacy b/scripts/vm_smoke_test_legacy new file mode 100755 index 0000000..ce08213 --- /dev/null +++ b/scripts/vm_smoke_test_legacy @@ -0,0 +1,168 @@ +#!/bin/sh +# +# This software is a part of ISAR. +# Copyright (C) 2015-2018 ilbers GmbH + +CONSOLE_OUTPUT=/tmp/isar_console +PID_FILE=/tmp/qemu.pid +VERBOSE=1 +TIMEOUT=300 + +# Error codes: +ES_OK=0 +ES_FAIL=1 +ES_BUG=3 + +RET=$ES_OK + +dump_boot_log() { + echo "Boot log:\n8<--" + cat $CONSOLE_OUTPUT + echo "\n8<--" +} + +check_login_prompt() { + echo -n "Check login prompt: " + + str=$(grep "isar login: " $CONSOLE_OUTPUT) + + if [ -n "$str" ]; then + echo "PASSED" + else + echo "FAIL" + RET=$ES_FAIL + FAIL=1 + fi +} + +check_example_module() { + echo -n "Check example module: " + + str=$(grep "Just an example" $CONSOLE_OUTPUT) + + if [ -n "$str" ]; then + echo "PASSED" + else + echo "FAIL" + RET=$ES_FAIL + FAIL=1 + fi +} + +run_test () { + ARCH=$1 + DISTRO=$2 + + echo "-------------------------------------------------" + echo "Testing Isar [$DISTRO] image for [$ARCH] machine:" + + start_vm -a $ARCH -d $DISTRO -o $CONSOLE_OUTPUT -p $PID_FILE > /dev/null 2>&1 & + sleep 5 + + if [ -z `ps -p $! -o pid=` ]; then + echo "QEMU start: FAILED" + RET=$ES_FAIL + echo "Command output:\n8<--" + start_vm -a $ARCH -d $DISTRO -o $CONSOLE_OUTPUT -p $PID_FILE + echo "\n8<--" + else + sleep $TIMEOUT + kill `cat $PID_FILE` + + FAIL=0 + + check_login_prompt + + check_example_module + + [ $VERBOSE -eq 1 -o $FAIL -eq 1 ] && dump_boot_log + + rm $CONSOLE_OUTPUT + fi + + rm $PID_FILE +} + +show_help() { + echo "This script tests the Isar images for default targets in QEMU." + echo + echo "Usage:" + echo " $0 [params]" + echo + echo "Parameters:" + echo " -f,--fast test reduced set of supported targets." + echo " -o,--output FILE specify file to store console output." + echo " The default is: /tmp/isar_console" + echo " -p,--pid-file FILE specify file to store QEMU process PID." + echo " The default is: /tmp/qemu.pid" + echo " -q, --quiet do not display boot logs for all the targets." + echo " If test failed for the specific configuration," + echo " the respective boot log will be printed anyway." + echo " -t,--timeout SEC specify time in seconds to wait before stop QEMU." + echo " The default is: 300" + echo " -h, --help display this message and exit." + echo + echo "Exit status:" + echo " 0 if OK," + echo " 1 if test failed," + echo " 3 if invalid parameters are passed." +} + +# Parse command line to get user configuration +while [ $# -gt 0 ] +do + key="$1" + + case $key in + -h|--help) + show_help + exit 0 + ;; + -o|--output) + CONSOLE_OUTPUT=$2 + shift + ;; + -p|--pid-file) + PID_FILE=$2 + shift + ;; + -f|--fast) + FAST_BUILD="1" + ;; + -q|--quiet) + VERBOSE=0 + ;; + -t|--timeout) + TIMEOUT=$2 + shift + ;; + *) + echo "error: invalid parameter '$key', please try '--help' to get list of supported parameters" + exit $ES_BUG + ;; + esac + + shift +done + +# ARM machine +run_test arm stretch +run_test arm buster + +# AMD64 machine +if [ -z "$FAST_BUILD" ]; then + run_test amd64 buster + run_test amd64 focal +fi +run_test amd64 stretch + +# i386 machine +if [ -z "$FAST_BUILD" ]; then + run_test i386 stretch + run_test i386 buster +fi + +# ARM64 machine +run_test arm64 stretch + +exit $RET -- 2.25.1