From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7008446828784910336 X-Received: by 2002:a05:6512:21cc:: with SMTP id d12mr8704612lft.452.1631898097402; Fri, 17 Sep 2021 10:01:37 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3f14:: with SMTP id y20ls43376lfa.1.gmail; Fri, 17 Sep 2021 10:01:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwO+bOwIMr/PAJEFMOaMue90+DQ1BqfY1BXN7A7YU8pISakIioZXj3tvxR032eJuZXwdpE X-Received: by 2002:a19:670a:: with SMTP id b10mr9234011lfc.431.1631898096303; Fri, 17 Sep 2021 10:01:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631898096; cv=none; d=google.com; s=arc-20160816; b=YQ955auZgSHDqKJ7ws2SRipp12yoOJLMmj/1jdBfv22vbi077Hrj3MGjC/9kcapsjT eO/qH2ofXLKwQ0T6Zl2Iw+dx+IsxWJrwWk4bjv3CDMeldWjX0w5IzcVP3FWDjzC/qGWk EvqQP4aInu8sbpTZh6q7fWbwPzHTY/wohbUpGXAHK4Razz/fK7zB9IsZN9u5zWB0i19K YJbFqt8ZijvupyAOIY8wBJGNBRIOSbOPzIYAAXERiB5Do7TRU1+Lp5eC0qeUVxY5wNRy lsg3ZnJOEsnJzWvbv8PZ0w7Bov0BE2vzt2g3i9TVPWd3+Xp5jDd3MiKmH6/2g0Rd/ZS2 ffbw== 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=kDrNwZGWKKI1KhQrkwBJUzq3ExcVWS8oe4/TIDd+YRklD7N7Yj3yYSDGM8ws6G9lLW tyXFAKfPLbw5bI4Tw639FvwqQhp0p/COsrJvQ5m5UxriCt72+opsnUO9KTq79thECCh/ ntPU91S7LD68om9MQiooiIO06quKBu209G3GrZ40yVFBGfKuyrI/45/pTAe9r042Qhsm vEmQdEpXnCRmaoX4lGver3XNve4esb7Mv3XSWZ6oniqTBVrjxlOMahwLC4xweCZhZHgS XSWdTVYvPs+unkWK2opDPXhrgc41ozUoIjx8aH0AtcQW2csPu2RJEklnQ7HEjOXJXWVT 5aBg== 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 o22si383317lfu.4.2021.09.17.10.01.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 Sep 2021 10:01:36 -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-240-58-214-37.mgts.dynamic.pppoe.byfly.by [37.214.58.240] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 18HH0iNE028039 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Sep 2021 19:01:33 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v12 16/16] vm_smoke_test: Migrate to Avocado Date: Fri, 17 Sep 2021 20:00:33 +0300 Message-Id: <20210917170033.74797-17-amikan@ilbers.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210917170033.74797-1-amikan@ilbers.de> References: <20210917170033.74797-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: ob+Sgf1301WN 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