From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7008446828784910336 X-Received: by 2002:a05:6402:142e:: with SMTP id c14mr22050364edx.209.1632740584615; Mon, 27 Sep 2021 04:03:04 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6402:65a:: with SMTP id u26ls3865826edx.2.gmail; Mon, 27 Sep 2021 04:03:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsXFbxu0M4HIaHPqh394FqT4zqv2qaghMhlf8QmpU6eUJSrO6JKaczHjaFTutA5aSbok9v X-Received: by 2002:a50:d8c2:: with SMTP id y2mr17833180edj.360.1632740583883; Mon, 27 Sep 2021 04:03:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632740583; cv=none; d=google.com; s=arc-20160816; b=Z9qIVF+a+Dmt8WVzZu+EDlrqVNZDRZcP7/BJInvX6FPebeVksA2IFIN9lT7XQy6vp5 d8TCHKUCTMHAlgZtFH0o6wjfUsOa36nm0Sq7+GLIScOOGk55NItxrQVptjvYrMbWjVWH A53Ki+9U7ioAVs7RA9pa0kP+hp+b9CRQ/qTfFo8xI/lP8t/VM5d5tOoKE5zIWXJwG/cX 4CEh8pcpX/q3Mkmed9PHK1ED1OR2Sx2YUgdX3Z7n+YemEX7TGo9pqTq0qb+byyKz3pat kWWOv6OTtn4rabRA/Rh5MbxRlPFnuxtB6nOE5qufx/R6/DKG02nJtyn5X0LrbVlDVtUO OEPA== 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=/+i4JmzT4nyW/aIFJQfM5fcVjF83EoUsEYRSOTBiW1E=; b=GzRpzz127Op2FdWXdiTcKWp/Ns71PpMQkx7NUE2/T5fWmJ0DvM2KK8Cmzq/K7sqJE3 P0HHvT1MI8aP1t1VdJ2/HGt/GPWK8Bf2Z9wqT9Qad1V8oBlx4P2bsRhFi+XIZqGQigOw gvupiZoQoj7nJzEW5mGlNhgzvpypw/0rB/I2A7oniCwsWQwDsYhf75NPkkh8kMpnGL/0 s169LdGdHjpGi2yUdiwYTP5FYkmkRtdND13nkcKUOsVi3QuFpXtiZgHhZeLvo0VZpMba UaEtV97hFhNJzdQAf6Xf0IgrxIIZJkhiDShiV63u042oTAkOrFZdQsfNN0LCsTS5XSgL g8Ew== 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 6si776401edx.5.2021.09.27.04.03.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Sep 2021 04:03:03 -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-59-42-214-37.mgts.dynamic.pppoe.byfly.by [37.214.42.59] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 18RB25e1004256 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Sep 2021 13:03:01 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v13 16/16] vm_smoke_test: Migrate to Avocado Date: Mon, 27 Sep 2021 14:01:56 +0300 Message-Id: <20210927110157.11291-17-amikan@ilbers.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210927110157.11291-1-amikan@ilbers.de> References: <20210927110157.11291-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: Tw7meSEHehV4 Call Avocado test cases instead of shell based. Signed-off-by: Anton Mikanovich --- scripts/vm_smoke_test | 120 ++++++------------------- scripts/vm_smoke_test_legacy | 168 +++++++++++++++++++++++++++++++++++ 2 files changed, 196 insertions(+), 92 deletions(-) create mode 100755 scripts/vm_smoke_test_legacy diff --git a/scripts/vm_smoke_test b/scripts/vm_smoke_test index ce08213..6416250 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,15 @@ 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 +# Get Avocado QEMU tests path +VM_TEST_DIR="$(dirname "$0")/../testsuite/vm_boot_test" - echo "-------------------------------------------------" - echo "Testing Isar [$DISTRO] image for [$ARCH] machine:" +# Go to Isar root +cd "$(dirname "$0")/.." - 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=./build show_help() { echo "This script tests the Isar images for default targets in QEMU." @@ -91,10 +29,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 +53,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 +79,26 @@ 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 +# Provide working path +mkdir -p .config/avocado +cat < .config/avocado/avocado.conf +[datadir.paths] +base_dir = $BUILD_DIR/ +test_dir = $BUILD_DIR/tests +data_dir = $BUILD_DIR/data +logs_dir = $BUILD_DIR/job-results +EOF +export VIRTUAL_ENV="./" + +if avocado $VERBOSE run "$VM_TEST_DIR/vm_boot_test.py" -t $TAGS \ + --test-runner=runner --disable-sysinfo \ + -p build_dir="$BUILD_DIR" -p time_to_wait=$TIMEOUT; then + RET=$ES_OK fi -# ARM64 machine -run_test arm64 stretch - 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