From patchwork Mon Jun 17 15:08:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3615 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 17 Jun 2024 17:09:21 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f184.google.com (mail-lj1-f184.google.com [209.85.208.184]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45HF9K1K019119 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 17 Jun 2024 17:09:20 +0200 Received: by mail-lj1-f184.google.com with SMTP id 38308e7fff4ca-2ec1cb56679sf20862851fa.1 for ; Mon, 17 Jun 2024 08:09:20 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718636955; cv=pass; d=google.com; s=arc-20160816; b=xkQZm7zBYJI6jbO5Qg1y1TNF318jueMR6U2PvlbtTG7fKjFS4TAVQw9qe06MpgAQTU J1I3MnNt6wVXhS+SGK6AALaE+QcIvZnkrlWt6QvaZ5H3yy2pYTotplaeVspAaoTkJgdj WxfE3cVqNdwgLvNSngW3nUCGWW8BihqCnvggf269bZFW9Bl9+ZVbuaXd5oShw9HGJ+6C WJ7Mz3ovPoJJ/I2aNN21nRBDaiPvHLW0PiBgjKetXL0rqWabi2dOcCGV+qDCJ36PdGm/ Rb/+Phe+2EROWeU8gsqGqqHj838mb2aGKNlNKZqGPfseRsj70bn7VV4n0kuN6QTsaFaW /w2A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=UBhANvT2bQojsfZqFX3tOTpOMwHW0ufxLEWGKIlJWG8=; fh=Cs635jErJVxqVwpxI5y2fzKvVswY6hSPxl5HWieYb8I=; b=ZbOF9kYEyHDO7I0EtHZltmmZde2X8rhvFDJPqjgNbtOGBShhS/nS7bEgfLEJknFLfs MNv79RtS+fRkXXk9JjvPnkzLcmXFxAPWar5yzFWAMBx7MmKbNmiq12Fl79keOBowDLwe op16PL4yyAv3yEjk0X3q8kw2q5YAXP1KLvXjvBEi2M6dEOkkTD+kC6zyNs5FB7Tpvk8x 9DN8uEBkVkpvxyOVPPkX1pkdDr1DK5bYwU4VlVg2YWF2UFyVxnh4XpLm+jwXHlgdUY6o h7fz9aRw37XA3k0WhQwyNFRE48lZYcqhYoE7Tt/O8mZn1Q6dzct8IUusiLgOFmR+5Uo5 vcQg==; darn=isar-build.org ARC-Authentication-Results: i=2; 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1718636955; x=1719241755; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=UBhANvT2bQojsfZqFX3tOTpOMwHW0ufxLEWGKIlJWG8=; b=gjPuTMrgzVGndhS4R3CLFrB0wEvGUIDEIC9xugQqMUmEnHvL8Vd+qZ/LbzVOhpNb8l u1JZlIjkYhAbXErHRepl17S7jD1q/cvUNKnDzpmAAr/Wr+qRImzi2D51Kf8ed30LgDUW gqI8rRdNOKm5juvjey49mE7AvbCe8KD0E/NLQbi0g1wRY+fwIoLRbsNlxABvVuA4Nb00 c4QYtaLSEeRPnNN2dcMfGO1/9gc4Vt2ifLN4eFAQzjA9A2nqH2w3lm1J32EWxPNxApBq BKF/NkVy9LGU4uYYoTlu2W3CrWQOKrj/MmNnvGcUYojTdoFyN+jGvFJ6mbA8ucOvb/mA VJbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718636955; x=1719241755; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to; bh=UBhANvT2bQojsfZqFX3tOTpOMwHW0ufxLEWGKIlJWG8=; b=np/l/Zcl9aEpPr60wTpGZAZn/cG/KxbSlqAxQj7PvH4sShDggZnw3N8OlrfdvpQHAp MznXMMEbvlT3NMUXUnWxZvBl6n6XToVPwGSESRhAta8KF0K1XzkEQqIvzdhrD5N0PqvB imj0myr95CXb6EC0doVsN6Nwt8fd5drk47VvhsMsLdSg5AEN/M6dxsX7cG+N8jewYX9G 7LVivcEea0za7oDeOHidq8CtVwRx89D2lCvGknG9xhXJD/glKoHXPLw7KQ2mzQAOBliE T9bXd0c1lsIBwIx7z6Po+PwzUy15VUo1IkJqUh0dB5lBxt24N8fkAyEvYsqfbdYIjj4F xCuQ== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCWX6GdBhVWoa/Qw6GUxT+pIMDThwyLhR3oYmfFRlmcqqHugbmGBZZqOSkWLbTZaUT9e0h43jTzMWRxG5K7uy9kqnd+QHXI= X-Gm-Message-State: AOJu0YzOKDefvcaVhVqwIz0JGljENp7Ok/9OCCVMH8OjCY3ae+JntrRx 5FJEiehBzeAT47O8l0+zRFNaBi/fcqYFnGPEEi/G1C1oSm5t3G8M X-Google-Smtp-Source: AGHT+IHmyRT9y+gjO3h42KvaqCsHWDAOXdL2704+qVtgyRAk9UuoVPAWVx1A+L/b+hRUakZJRS9HPg== X-Received: by 2002:a2e:3505:0:b0:2ea:ea79:4fa1 with SMTP id 38308e7fff4ca-2ec0e6002ecmr63395021fa.37.1718636954643; Mon, 17 Jun 2024 08:09:14 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:a608:0:b0:2ea:b32c:c86e with SMTP id 38308e7fff4ca-2ec02874af0ls7754411fa.0.-pod-prod-04-eu; Mon, 17 Jun 2024 08:09:12 -0700 (PDT) X-Received: by 2002:a2e:988c:0:b0:2eb:f472:e7d3 with SMTP id 38308e7fff4ca-2ec0e5b5f05mr61976771fa.6.1718636952466; Mon, 17 Jun 2024 08:09:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718636952; cv=none; d=google.com; s=arc-20160816; b=nrAJZPEt+r+NBIqnBeSgvH77HDt4QGQ7S/6cVUdWxNzIuJLRbnfr3Y1q6FD7ZXP5FG JCDXAKrI7wlPh5DVltTQ70/J+coBOj7mO5FYiIJEiKmwxbVwH59yC/sRcWJUs+8nL1kk Agc28JscKmxHB+S+5z9F3hEKw3NM6I4Qyr96qm1GzBVgiYo5JBG4ggXke16y1jqLVAiE jW0bMgAQIlKBstZFArR0dJNeOlWoXrh98eKM4gqOTgTHvcBJZd2+Uh29o/bNCMwOhLAA 8s3cbWVS1gMlTKPAhfnv1g3Lq5muJ9lMXj3B1zrU52NfEt5mK58Hagr8HFu0OEcHGuZf 25Ug== 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=hpcmsfJ65TdAte7q8iIInuvVOvL5IlpTUkuYrK21ziY=; fh=z3rP6Lb9kCHMNktWueEpSrG6TTw5jLe7zgHgRhRlVvY=; b=fSsGZ+d87rJt/sfMy3lAeiNCpRKf8fM7OBxokTMzvHJv4NSn33UMo/2mt9gsKoN7qv eJue9Qsdu+IGk0DuKMraMsyrPyNk2gz4XejURMiar+AxlcKHNxbMhxeli5GCRhA1Dla1 GFRZaujAz3Pa2p4t/rOwwkbbs2fDrnv7L+k9NuuRX7TD4Zb953pAJLlY2qNTfhe4+tiq 6DZWgW/aMCsxI0+1H0xx5fyDaVx4xp7zcK83219WEdaGFm2KLDvzNBcb3sYO2qOLfRx7 tsyKQ9bxkZmFpdzx77CJKWmFZ1IraalbNExYSdtf/ig2zRYsWhFdmUcX44hs09/irFS3 PkFQ==; dara=google.com 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 Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-42284b090dfsi8700625e9.0.2024.06.17.08.09.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Jun 2024 08:09:12 -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; Received: from user-B660.promwad.corp ([159.148.83.114]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45HF9AkM019081 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Jun 2024 17:09:11 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Ilia Skochilov , Anton Mikanovich Subject: [PATCH v2 1/5] start_vm: Switch to python version Date: Mon, 17 Jun 2024 18:08:57 +0300 Message-Id: <20240617150901.55853-2-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240617150901.55853-1-amikan@ilbers.de> References: <20240617150901.55853-1-amikan@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-Original-Sender: amikan@ilbers.de X-Original-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 Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Ilia Skochilov Remove the shell version of start_vm. Use the python version of start_vm for both testsuite and command line. Signed-off-by: Ilia Skochilov Signed-off-by: Anton Mikanovich --- scripts/start_vm | 161 +++-------------------------------------- testsuite/README.md | 4 +- testsuite/cibuilder.py | 2 +- testsuite/start_vm.py | 7 +- 4 files changed, 18 insertions(+), 156 deletions(-) diff --git a/scripts/start_vm b/scripts/start_vm index 42899df9..b081e973 100755 --- a/scripts/start_vm +++ b/scripts/start_vm @@ -1,156 +1,15 @@ -#!/bin/sh +#!/usr/bin/env python3 # -# This software is a part of ISAR. -# Copyright (C) 2015-2017 ilbers GmbH +# Helper script to start QEMU with Isar image +# Copyright (c) 2024, ilbers GmbH -set -e +import sys, os +sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'testsuite')) -ES_OK=0 -ES_BUG=3 +from start_vm import parse_args, start_qemu -# Convert bitbake assignments to shell ones -# a = b a=b -# a ?= b a=b -# TODO: Use bitbake to parse vars correctly (overriding in local.conf, etc.) -bb2sh() { - sed 's/[[:space:]]*?*=[[:space:]]*/=/' -} +if __name__ == "__main__": + args = parse_args() -start_qemu() { - root=`echo $QEMU_DISK_ARGS \ - | sed 's,##ROOTFS_IMAGE##,'$IMAGE_DIR/$ROOTFS_IMAGE','` - [ -n "$KARGS$EXTRA_KARGS" ] && OPT_KERNEL_ARGS="-append $KARGS$EXTRA_KARGS" - local had_x - echo $- | grep -q x && had_x=1 || had_x=0 - [ $had_x -eq 0 ] && set -x - qemu-system-$QEMU_ARCH \ - -m 1024M \ - -M $QEMU_MACHINE \ - $QCPU \ - -nographic \ - $EXTRA_ARGS \ - $OPT_KERNEL_ARGS \ - $root - [ $had_x -eq 0 ] && set +x -} - -show_help() { - echo "This script runs ISAR image in QEMU emulator." - echo - echo "Usage:" - echo " $0 [params] [BUILD_DIR]" - echo "BUILD_DIR is your ISAR build folder. If not set, current folder" - echo "is used." - echo - echo "Parameters:" - echo " -a, --arch ARCH set isar machine architecture." - echo " Supported: arm, i386, amd64, arm64, mipsel, riscv64." - echo " -b, --build BUILD set path to build directory." - echo " -d, --distro DISTRO set isar Debian distribution." - echo " Supported: buster, bullseye, bookworm" - echo " -o, --out FILE Route QEMU console output to" - echo " specified file." - echo " -p, --pid FILE Store QEMU pid to file." - echo " -s, --secureboot Enable secureboot with default MS keys." - echo " --help display this message and exit." - echo - echo "Exit status:" - echo " 0 if OK," - echo " 3 if invalid parameters are passed." -} - -# Set default values, that can be overwritten from command line -ARCH=arm -DISTRO=bookworm -BUILD_DIR=$PWD - -# Parse command line to get user configuration -while [ $# -gt 0 ] -do - key="$1" - - case $key in - -h|--help) - show_help - exit 0 - ;; - -a|--arch) - ARCH=$2 - shift - ;; - -b|--build) - BUILD_DIR=$2 - shift - ;; - -d|--distro) - DISTRO=$2 - shift - ;; - -o|--out) - EXTRA_ARGS="$EXTRA_ARGS -serial file:$2" - shift - ;; - -p|--pid) - EXTRA_ARGS="$EXTRA_ARGS -pidfile $2" - shift - ;; - -s|--secureboot) - OVMF_VARS_ORIG="/usr/share/OVMF/OVMF_VARS_4M.ms.fd" - OVMF_VARS="$(basename "${OVMF_VARS_ORIG}")" - cp "${OVMF_VARS_ORIG}" "${OVMF_VARS}" - EXTRA_ARGS="$EXTRA_ARGS -drive if=pflash,format=raw,unit=1,file=${OVMF_VARS}" - ;; - *) - echo "error: invalid parameter '$key', please try '--help' to get list of supported parameters" - exit $ES_BUG - ;; - esac - - shift -done - -eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^DEPLOY_DIR_IMAGE=") -readonly IMAGE_DIR=$DEPLOY_DIR_IMAGE - -readonly ISARROOT="$(dirname "$0")"/.. - -readonly MACHINE_CONF=$ISARROOT/meta-isar/conf/machine/qemu$ARCH.conf -eval "$(egrep 'MACHINE_SERIAL|QEMU_' $MACHINE_CONF |bb2sh)" - -eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "\(^IMAGE_FSTYPES=\|^IMAGE_FULLNAME=\)") -# Take first image type for VM if there are several defined -IMAGE_FSTYPES=$(echo "$IMAGE_FSTYPES" | awk '{print $1}') -case "$IMAGE_FSTYPES" in - ext4) - readonly ROOTFS_IMAGE=$IMAGE_FULLNAME.ext4 - - eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^KERNEL_IMAGE=") - eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^INITRD_DEPLOY_FILE=") - QKERNEL=$IMAGE_DIR/${KERNEL_IMAGE} - QINITRD=/dev/null - [ -n "$INITRD_DEPLOY_FILE" ] && QINITRD=$IMAGE_DIR/${INITRD_DEPLOY_FILE} - if [ "$ARCH" = "riscv64" ]; then - EXTRA_ARGS="$EXTRA_ARGS -device loader,file=$QKERNEL,addr=0x80200000" - QKERNEL="/usr/lib/riscv64-linux-gnu/opensbi/qemu/virt/fw_jump.elf" - fi - EXTRA_ARGS="$EXTRA_ARGS \ - -kernel $QKERNEL \ - -initrd $QINITRD" - KARGS="console=$MACHINE_SERIAL root=/dev/$QEMU_ROOTFS_DEV rw $QEMU_KARGS" - ;; - wic) - readonly ROOTFS_IMAGE=$IMAGE_FULLNAME.wic - EXTRA_ARGS="$EXTRA_ARGS -snapshot" - ;; - *) - echo "IMAGE_FSTYPES \"$IMAGE_FSTYPES\" not supported" - exit 1 - ;; -esac - -QCPU= -[ -n "$QEMU_CPU" ] && QCPU="-cpu $QEMU_CPU" - -start_qemu - -exit $ES_OK + start_qemu(args.arch, args.build, args.distro, args.image, args.out, + args.pid, args.pcbios) diff --git a/testsuite/README.md b/testsuite/README.md index 913767fc..cfcfb1bf 100644 --- a/testsuite/README.md +++ b/testsuite/README.md @@ -57,11 +57,11 @@ $ avocado run ../testsuite/citest.py -t startvm,full ## Manual running -There is a tool `start_vm.py` which is the replacement for the bash script in +There is a tool start_vm which is the replacement for the bash script in `isar/scripts` directory. It can be used to run image previously built: ``` -./start_vm.py -a amd64 -b /build -d bullseye -i isar-image-base +start_vm -a amd64 -b /build -d bullseye -i isar-image-base ``` # Tests for running commands under qemu images diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index 227d0a96..12c48180 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -529,7 +529,7 @@ BBPATH .= ":${LAYERDIR}"\ 'DISTRO', \ target=multiconfig) - # only the first type will be tested in start_vm.py + # only the first type will be tested in start_vm if image_fstypes.split()[0] == 'wic': if wks_file: # ubuntu is less verbose so we do not see the message diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py index ef0dfbcb..2c07b816 100755 --- a/testsuite/start_vm.py +++ b/testsuite/start_vm.py @@ -98,7 +98,7 @@ def start_qemu(arch, build, distro, image, out, pid, enforce_pcbios): print(cmdline) p1 = subprocess.call('exec ' + ' '.join(cmdline), shell=True) -if __name__ == "__main__": +def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('-a', '--arch', choices=['arm', 'arm64', 'amd64', 'i386', 'mipsel'], help='set isar machine architecture.', default='arm') parser.add_argument('-b', '--build', help='set path to build directory.', default=os.getcwd()) @@ -107,6 +107,9 @@ if __name__ == "__main__": parser.add_argument('-o', '--out', help='Route QEMU console output to specified file.') parser.add_argument('-p', '--pid', help='Store QEMU pid to specified file.') parser.add_argument('--pcbios', action="store_true", help='remove any bios options to enforce use of pc bios') - args = parser.parse_args() + return parser.parse_args() + +if __name__ == "__main__": + args = parse_args() start_qemu(args.arch, args.build, args.distro, args.image, args.out, args.pid, args.pcbios) From patchwork Mon Jun 17 15:08:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3616 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 17 Jun 2024 17:09:22 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f185.google.com (mail-lj1-f185.google.com [209.85.208.185]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45HF9K4k019131 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 17 Jun 2024 17:09:21 +0200 Received: by mail-lj1-f185.google.com with SMTP id 38308e7fff4ca-2eae96cecaesf33190371fa.2 for ; Mon, 17 Jun 2024 08:09:21 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718636955; cv=pass; d=google.com; s=arc-20160816; b=w6yIhFLhvqaYcdjR5XsZl9v0qcwNW9R5Nb8KNrGq+kn9yIxcMI2gndPtCvqLJcwgwI yxBIWSwSyR1Og46v9I1DXTKbu90Ior60XS7zlUF6arNvfRKLce6eJYiQE0fCvwYEuR2Q efLcXFQZ8QGBadEuLWITbkzeGVhmVNadnEZLC3bxoJ56ya1UoJWJDWficQxBvjMDvTaP qGb8ZZypmPNHFFP4sFSiVu9IRKEwixGTGimnlz2qas9KWMIDULUsuAs6uY8awI9ml34C q7/UNhdVtneTKBppc06Jilno3wyysJ55ImsPPv7psQ/G5CK7hr54921fHzfkdSryp7LV MQqw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:sender:dkim-signature; bh=GrsaYY3/1YOJELHbZr/Z69Nldcskx6OAUAgn/B6Slzw=; fh=AbwzcCUjVvEB9SeuIj/TChFsI3EIF6ytTCf1FvjcVkU=; b=tjP+ucCQcm9jRcrzTwExYw1CuOXSHZKR4ImLMGrJnpMBCBHtEgaVTl7QzLDW3S3IYv JsU0dblA8F+VfEK0bO7WaJL7iHg+VOveOj4h6f5M7sITQ+x15FBBMmcBq64iexh5VARc klvrfhyyPNsJBJLYYYIPeOcvgT9XBD57u+JOSSq3QLTyV6agXOD4M014A8u/4WJQGXiA dkJijWj9xLcEMxSA2hwjh4LS6sZCUdTLNkOvxbxeLlKUxq8XN4ls9PcZJPoHm4KyKDJc OgMtWJ1SVIY0snH+2ZveOETbKfGJkgWc2B7Z1aNWmY/DE1a4tJ7wWXP4dNfdnTf8tDyq g1Xw==; darn=isar-build.org ARC-Authentication-Results: i=2; 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1718636955; x=1719241755; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:sender:from:to:cc :subject:date:message-id:reply-to; bh=GrsaYY3/1YOJELHbZr/Z69Nldcskx6OAUAgn/B6Slzw=; b=nh+EaTrC95+fVcyc6WVRSTWM+XwpuqWAHUwhzSUVwKuj715NgysPnf674gVE5kl1sW f/VaDPUeKMrJxUe4OoSrNrSXARRU6qs6GXwpxmzsmmJEK3kSY24ztYJEpsM/RBD4pB6V XSlrvBNLQ9nj4R1pGJ3y9k7exi3Jbu92FHHF0eOQoRQaGXxWyEq9kILgZIfamvhosBEe 3kq4Y9REdNeIyxIUJ08vVFCsrDC0jjUOj6aJ6TNbw1VUty45oppetJbdlRvx9uvLQKPu 0Km2LR+DOeWfQVJoD2ehFz3xrGflr506FSczQhrOfaJ1lzqR7fHC28+2hJNWCKtGyfE4 KrWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718636955; x=1719241755; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-beenthere:x-gm-message-state :sender:from:to:cc:subject:date:message-id:reply-to; bh=GrsaYY3/1YOJELHbZr/Z69Nldcskx6OAUAgn/B6Slzw=; b=Cf2gnUUA1R8BO0OF8vFjH7eSnbFuiwyKWe/7mu+G8maH0NtfopJL8ErWNjcgABRKly COJvM1/SeMJ+PBrwC21O9NT2i5EzWMx3ywZyyTe/8AgioplpqggreNPNv6X2ep2Al6++ Dcvha2B34Mmst5qF3B5c8uQNzAA61uRP7bgQqJumBKrf/Dbw53sEy8xBtjVZNj0aOsBd UvFE+gjBsWljuA+lz/fL+abZ3zmtA+7+IShvUYYC87OdtzP0nYlrcMrwKp2JA8HQ+hEB aB5OcZk3ykZEHRehg2DSsj2j5Hp2HM7MeskN98aVc1ptdfy+ECeNxW66y+7thvFvGn4T TWdQ== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCWf98F8lpTWus/t59Ejd31WcpzT+B7rA5qHrO0POoh1siE28FK52JuIkIcn3u7zNArv7EipI1t9kVvUpk1AOig5LX8NAxI= X-Gm-Message-State: AOJu0YzPkf2z1uCUK7TOhQ8jylGHkGt/URRNvL5KOH3wwbLjVEtR3Enr 3+xduibO1/qTaNRRckl4ZBiZS3jfztCAyOzEFJKXzrVCT8JAhguV X-Google-Smtp-Source: AGHT+IFSvzdy/K1fZyqGx6b0+wjQwnWYkm/ku+BszTod2rtzQRVpRVa/ScmTLgndSKd0dTyMkVnN3Q== X-Received: by 2002:a2e:8188:0:b0:2ec:2ccb:8efb with SMTP id 38308e7fff4ca-2ec2ccb8f7amr19139901fa.38.1718636955182; Mon, 17 Jun 2024 08:09:15 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:651c:1056:b0:2ec:3d9:4072 with SMTP id 38308e7fff4ca-2ec03d944dals17979931fa.1.-pod-prod-02-eu; Mon, 17 Jun 2024 08:09:13 -0700 (PDT) X-Received: by 2002:a2e:a0d7:0:b0:2ec:343d:9679 with SMTP id 38308e7fff4ca-2ec343d97c8mr707961fa.5.1718636953227; Mon, 17 Jun 2024 08:09:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718636953; cv=none; d=google.com; s=arc-20160816; b=I8Ow2pB0I3ABAMwKtri0dyCv2T1UUS0fND+FCEeOW90NHhB/kucntzbQC8BU8VabvX +Q7NUjOh5PixN8TIjK2/MMK9PlJajGbiuPKP4gRcyyAw8gk5MwWVvncn/CbuMyMop4yy ZnNo+qlMOyjWvitzrl6bXsK3CxVYEz/B3C3OIpg3H99fzPncnWDKrgxBXt99EC6YTXl1 +A0MsMuIwZT54cBmtyadgli35zsBTzU+QXTiZn2Oja/rpi7h1N34M2fZYOb09bGu76rL TjJgUA6QnlkCRaOP2RWhG+vxwQgAhhydoyqUVPwU5W39yZ7r/J7fpUgJAFTHzQf1kxIi uopA== 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=HPeIJmEiGTWQKAdIqLWluFtfIB+lJjJ26SLa3HKeSJ4=; fh=/h9QQkzJ8EboVkWg45aWwpaUro6WMavIVd2OhN45RtE=; b=HKnHf8idOn0P+UK+/333mbzC1cwtJp3ienknADYFrA2fWmrmFB6WKAE94zbF0BBRFh CwGEe2cdRQegdfMOCyrNFC1OE0Hfc3F0NfQobJ6b4OTqtdwDC7WDtID2T8ArlsMLe3cy d9bQeHdIw+4eziAXV1QD1pChUyTqNQH4z3yeLZsQMMExxsetvH7/FK4p19BjZwNXgZPs b1h5pqXDxT29l/49EiEbwYWtoXWD8T/ItNHorMPm8yW+MWFCSOQrsMD8ylOP/eTiPcpi soBa0qoxzNoI7rqix2zjTPUjEM3yX5gsqnswuRGVGMVsHWGtpL4j1VVqqRD6cEsCZ9eX x+3g==; dara=google.com 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 Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 38308e7fff4ca-2ec05cc82efsi2123371fa.7.2024.06.17.08.09.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Jun 2024 08:09:13 -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; Received: from user-B660.promwad.corp ([159.148.83.114]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45HF9AkN019081 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Jun 2024 17:09:12 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v2 2/5] start_vm: Add secureboot support Date: Mon, 17 Jun 2024 18:08:58 +0300 Message-Id: <20240617150901.55853-3-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240617150901.55853-1-amikan@ilbers.de> References: <20240617150901.55853-1-amikan@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-Original-Sender: amikan@ilbers.de X-Original-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 Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= Add sb_copy_vars()/sb_cleanup() API for creation of OVMF variables file copy in case it was declared in QEMU_DISK_ARGS value. If OVMF_VARS_4M.ms.fd is already exists it will be reused, otherwise created copy will be deleted after QEMU exit. sb_copy_vars() returns True if cleanup needed. Signed-off-by: Anton Mikanovich --- meta-isar/conf/machine/qemuamd64-sb.conf | 2 +- testsuite/cibuilder.py | 13 ++++++--- testsuite/start_vm.py | 37 +++++++++++++++++++++--- 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/meta-isar/conf/machine/qemuamd64-sb.conf b/meta-isar/conf/machine/qemuamd64-sb.conf index 2bec553b..9ad5f8d6 100644 --- a/meta-isar/conf/machine/qemuamd64-sb.conf +++ b/meta-isar/conf/machine/qemuamd64-sb.conf @@ -18,4 +18,4 @@ IMAGER_INSTALL:wic += "${GRUB_DEBIAN_SB_MOK}" IMAGE_PREINSTALL += "mokutil" # overwrite qemu disk args for signed boot -QEMU_DISK_ARGS = "-drive file=##ROOTFS_IMAGE##,format=raw -global driver=cfi.pflash01,property=secure,value=on -drive if=pflash,format=raw,unit=0,file=/usr/share/OVMF/OVMF_CODE_4M.ms.fd,readonly=on" +QEMU_DISK_ARGS = "-drive file=##ROOTFS_IMAGE##,format=raw -global driver=cfi.pflash01,property=secure,value=on -drive if=pflash,format=raw,unit=0,file=/usr/share/OVMF/OVMF_CODE_4M.ms.fd,readonly=on -drive if=pflash,format=raw,unit=1,file=OVMF_VARS_4M.ms.fd" diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index 12c48180..a51d6f7e 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -477,6 +477,8 @@ BBPATH .= ":${LAYERDIR}"\ boot_log, None, enforce_pcbios) cmdline.insert(1, '-nographic') + need_sb_cleanup = start_vm.sb_copy_vars(cmdline) + self.log.info('QEMU boot line:\n' + ' '.join(cmdline)) self.log.info('QEMU boot log:\n' + boot_log) @@ -485,7 +487,7 @@ BBPATH .= ":${LAYERDIR}"\ universal_newlines=True) self.log.info("Started VM with pid %s" % (p1.pid)) - return p1, cmdline, boot_log + return p1, cmdline, boot_log, need_sb_cleanup def vm_wait_boot(self, p1, timeout): @@ -564,6 +566,9 @@ BBPATH .= ":${LAYERDIR}"\ pid = self.vm_dict[vm][0] os.kill(pid, signal.SIGKILL) + if self.vm_dict[vm][3]: + start_vm.sb_cleanup() + del(self.vm_dict[vm]) self.vm_dump_dict(vm) @@ -600,7 +605,7 @@ BBPATH .= ":${LAYERDIR}"\ stderr = "" if vm in self.vm_dict: - pid, cmdline, boot_log = self.vm_dict[vm] + pid, cmdline, boot_log, need_sb_cleanup = self.vm_dict[vm] # Check that corresponding process exists proc = subprocess.run("ps -o cmd= %d" % (pid), shell=True, text=True, @@ -612,8 +617,8 @@ BBPATH .= ":${LAYERDIR}"\ if run_qemu: self.log.info("No qemu-system process for `%s` found, run new VM" % (vm)) - p1, cmdline, boot_log = self.vm_turn_on(arch, distro, image, enforce_pcbios) - self.vm_dict[vm] = p1.pid, cmdline, boot_log + p1, cmdline, boot_log, need_sb_cleanup = self.vm_turn_on(arch, distro, image, enforce_pcbios) + self.vm_dict[vm] = p1.pid, cmdline, boot_log, need_sb_cleanup self.vm_dump_dict(vm) rc = self.vm_wait_boot(p1, timeout) diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py index 2c07b816..45e509a7 100755 --- a/testsuite/start_vm.py +++ b/testsuite/start_vm.py @@ -1,15 +1,18 @@ #!/usr/bin/env python3 # # Helper script to start QEMU with Isar image -# Copyright (c) 2019, ilbers GmbH +# Copyright (c) 2019-2024, ilbers GmbH import argparse import os import socket import subprocess import sys +import shutil import time +OVMF_VARS_PATH = '/usr/share/OVMF/OVMF_VARS_4M.ms.fd' + def get_bitbake_env(arch, distro, image): multiconfig = 'mc:qemu' + arch + '-' + distro + ':' + image output = subprocess.check_output(['bitbake', '-e', str(multiconfig)]) @@ -91,16 +94,42 @@ def format_qemu_cmdline(arch, build, distro, image, out, pid, enforce_pcbios=Fal return cmd +def sb_copy_vars(cmdline): + ovmf_vars_filename = os.path.basename(OVMF_VARS_PATH) + + for param in cmdline: + if ovmf_vars_filename in param: + if os.path.exists(ovmf_vars_filename): + break + if not os.path.exists(OVMF_VARS_PATH): + print('%s required but not found!' % OVMF_VARS_PATH, file=sys.stderr) + break + shutil.copy(OVMF_VARS_PATH, ovmf_vars_filename) + return True + + return False + +def sb_cleanup(): + os.remove(os.path.basename(OVMF_VARS_PATH)) + def start_qemu(arch, build, distro, image, out, pid, enforce_pcbios): - cmdline = format_qemu_cmdline(arch, build, distro, image, out, pid, enforce_pcbios) + cmdline = format_qemu_cmdline(arch, build, distro, image, out, pid, + enforce_pcbios) cmdline.insert(1, '-nographic') + need_cleanup = sb_copy_vars(cmdline) + print(cmdline) - p1 = subprocess.call('exec ' + ' '.join(cmdline), shell=True) + + try: + subprocess.call('exec ' + ' '.join(cmdline), shell=True) + finally: + if need_cleanup: + sb_cleanup() def parse_args(): parser = argparse.ArgumentParser() - parser.add_argument('-a', '--arch', choices=['arm', 'arm64', 'amd64', 'i386', 'mipsel'], help='set isar machine architecture.', default='arm') + parser.add_argument('-a', '--arch', choices=['arm', 'arm64', 'amd64', 'amd64-sb', 'i386', 'mipsel'], help='set isar machine architecture.', default='arm') parser.add_argument('-b', '--build', help='set path to build directory.', default=os.getcwd()) parser.add_argument('-d', '--distro', choices=['buster', 'bullseye', 'bookworm', 'trixie', 'focal', 'jammy'], help='set isar Debian distribution.', default='bookworm') parser.add_argument('-i', '--image', help='set image name.', default='isar-image-base') From patchwork Mon Jun 17 15:08:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3617 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 17 Jun 2024 17:09:22 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f63.google.com (mail-wm1-f63.google.com [209.85.128.63]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45HF9LYR019136 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 17 Jun 2024 17:09:22 +0200 Received: by mail-wm1-f63.google.com with SMTP id 5b1f17b1804b1-4218447b900sf24294145e9.0 for ; Mon, 17 Jun 2024 08:09:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718636955; cv=pass; d=google.com; s=arc-20160816; b=Q5LtQoeBt4bpZfohV4RRULJZ21eIEv4BOIOd4JiQDbQdAbew2zH7mE61Vo1ItH0h0P OhtFccVZayvibsevMbwOgzPb60VjJANGqs/zZohIzPWLJhx/+J/UAi6yCl3mkQecE0xx aK19KwZJnPl2ufJzxDSUUJp9kXd3M3/gtFCl67Iunxb++KuIl4NxIrum0oz8XVjPTJ4L h3iLM/kDwrFufsIKiKnkMdqWf8TMsCW+JB19UYTvNJJ5mo63XyXEouV+BlReAdWrw9AF O7iCV513JYjrSwFrCsAVzgUKSfVrkY3bHwWRQaRlVxce5eCgAnEuwEBNnWji4gdHFpUd D4oQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=DjN8ji1o4vzcfQOoJ62aT9WKswR9BiFs/pRhDT6rOfQ=; fh=5PPVMxoGGyv+LgRoVPIYX4nUNnmSZtcIPMBlCbhS7z4=; b=LeMSfkYlJ6/np01/L4enIBsbt4Cofac9OoBKTsHG6FCFtAL0gYSyz382xEu8BEB+H0 6Bs+aCxEXfRdFS2CeMZFUicCDKT6YUaNpFKUK3vQ/3MB9T8/PlHHGIFdJjzj1CMDC8cQ uybQTJSBhtRJeX2Sd04r9nTHUAVf1RG0ePdwRH/z9d1OXl4GycnDViJ7PGOA7ZvTTjSx FNK3ktN7Z1tPt75WBBDDdvfX+WJhFkLq+sxJp0M8e2eDxESgKjRhrxkx+tmZmv2wdbNh qCYrb8iKkNIUCrwcZD7T/G0Uq1Y3v/j+aYiYKGfIIQJKXPysQman5ql/VEORLoRV1MWl dO+A==; darn=isar-build.org ARC-Authentication-Results: i=2; 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1718636955; x=1719241755; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=DjN8ji1o4vzcfQOoJ62aT9WKswR9BiFs/pRhDT6rOfQ=; b=EPNjKto8/MnsJ2MkyyKIvM739bya4g2kVRpy4FVGijv4vEh6+tzizaGKs1ltBYB6yv IDeGRzHovN5g67lVLD0U4qrrFmJ9QxRjkhF8FdjQHvJgQ8jjZVKWdoEyE8MDwIcnRPdq MrREG1kCKXivSoyUvK/X/z0eecundcFZbcs8EXsXij1ZECvJJCkFN1ZJ6O/vPJnXeobn fh4DidDYwAUcV9/HI4WbEvx/r/i6O2KqhnY4cBXB67CqgV8VR1v1gZZcI96c8lPdbSA7 neszqijRH/NmLpcLiFmGxO2N67Fybbtc63++IrHO0uimJ03VrLMQhkKKtcx7OVpOsdQs dBIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718636955; x=1719241755; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to; bh=DjN8ji1o4vzcfQOoJ62aT9WKswR9BiFs/pRhDT6rOfQ=; b=gdTVX+0n84Fy5BJjkPtknkUHu+WS10ZAKw4Y7R43m+nWKCN6H/MLHTI6cJ42Ns71nK gtl7Mm8Bn/ys2OivKKReJvDSO4Y3YNl3Mcjpgzmm4WiWHDjxCnKwaKoApL36DBAmcy6b px52QKRro7d8XmGI6oJ6zwx6yKpah3EvirRUVpy4TtngbRNjgRAKGUYLoi5MGiShVneP VGKUMzgyfZkp/vD0IofbE9QTAs1meFnXiF/d1y0WOPe4gH0hqpK6HSdvy0qZ+ef9+XRw o/QoAVM8Sju7ClWjiFpsfIXqmV5++OBbzeOx8m2YR7Zy3B7AxNYVTP0eWbkFr3qgNLqA fURA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCUysUaV3J2Mh5SFjpNpRcyEVYfhGB5e1iH+U6XJm0mFzOlSgfexkHMbBeEGy8Yv3vsjfY/YccQHD3y4eie6RXCikg1dq1g= X-Gm-Message-State: AOJu0Yz91pI+fruBBE6M4X8GHYTivUBI9hbPU2T0YWsIBBASJg7Zc8wm pNkD9Q1JLhiKJAFRo+Bi4wj4AGeDpAhJti2ZWhGdPqh861TTTCYJ X-Google-Smtp-Source: AGHT+IEKw2o06WlPbtbjN/VQn4GETRW9thHYONa7syOVWSYWrYhJs4RrvBboTWuVUDdfBIcWF3mXcg== X-Received: by 2002:a05:600c:3589:b0:421:661d:89d6 with SMTP id 5b1f17b1804b1-42304844892mr110096465e9.14.1718636955252; Mon, 17 Jun 2024 08:09:15 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:1d18:b0:421:7b3c:ff0a with SMTP id 5b1f17b1804b1-4228009c878ls16508115e9.2.-pod-prod-00-eu-canary; Mon, 17 Jun 2024 08:09:13 -0700 (PDT) X-Received: by 2002:a05:600c:4f03:b0:421:8179:6127 with SMTP id 5b1f17b1804b1-4230484cb83mr90628865e9.20.1718636953261; Mon, 17 Jun 2024 08:09:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718636953; cv=none; d=google.com; s=arc-20160816; b=mWsKlmUHfocjP+zWG8vR0ETzaXvxZwZZEgyYhDnxCkaP9K97K41e7n9zrtjxfwfqYG oeXSGk8oBYCSUsgZmytlsGB/gUA+1OWfvKYeyGyt4dILvYzwQTWTOUU4UZ2ytyRogsLR mp8a1HERWCBZULX2KAXO7eK26GfonPrTpMzE1jyjp9BHroEo9ASVxL5ZNR25gZtnq3HE b8qI8MTMesLLVAWNlUosVkFWjqIaW1X881j4Emfm9whnvfbAjECh7sYGd56e2YDW+ale M70V+SRPjt+JfUgmZIjxJuxxv56g9HO/fukGN+r1g2NHLyYLm5C4gngUVVxVlTFOZqSf a20g== 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=iLMagJZvpLbiHY5OQYbhzhmnD94wl/7GMgu8HpDDuPg=; fh=z3rP6Lb9kCHMNktWueEpSrG6TTw5jLe7zgHgRhRlVvY=; b=tpcTRUrLe1w0kyMhq0HAW7YHGBokAhUKmA4lcg4KcFxHg7CvMYmedDRx4iPhVUDYDD dnh29ZukKHiUogrPkD1Ekls6DSAmtpmBEHbFSMXMVlLk/siHcATRl0dvQmoJhnIQJe69 SCBbajjRz6zgsoBZIBGE7WPPBJgcJ1dzmYyC1MOw9cVPs9yks0mMl1QA6ZV89LPRF0Fu 98EKI7G2bRn/SLVOA7W4IyWwNtyMr2n+Y8ocRNQocqGaTfWpEKIXivEplbGSClrX9eta yk5IDy8BSauBpOjH6LKyqGeCkQJFQM8zngkydLMfs0h5Gw5qtZlg6Bso1y38XLAStG3K P/bw==; dara=google.com 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 Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-42300f54a31si2375745e9.2.2024.06.17.08.09.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Jun 2024 08:09:13 -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; Received: from user-B660.promwad.corp ([159.148.83.114]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45HF9AkO019081 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Jun 2024 17:09:12 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Ilia Skochilov , Anton Mikanovich Subject: [PATCH v2 3/5] scripts: Remove vm_smoke_test Date: Mon, 17 Jun 2024 18:08:59 +0300 Message-Id: <20240617150901.55853-4-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240617150901.55853-1-amikan@ilbers.de> References: <20240617150901.55853-1-amikan@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-Original-Sender: amikan@ilbers.de X-Original-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 Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Ilia Skochilov Remove vm_smoke_test, its functionality is now covered in the dev testsuite. Remove mentioning of vm_smoke_test in documentation. Add instructions about how to run the dev testsuite via avocado framework in a kas container. Signed-off-by: Ilia Skochilov Signed-off-by: Anton Mikanovich --- CONTRIBUTING.md | 50 +++++++++++--------- scripts/vm_smoke_test | 106 ------------------------------------------ 2 files changed, 28 insertions(+), 128 deletions(-) delete mode 100755 scripts/vm_smoke_test diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9ad6bf3b..f932417b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -80,28 +80,34 @@ Plan merges to `master` so that both fit the two-week window; short extensions s * It's highly suggested to test your patchset before submitting it to the mailing by launching CI tests scripts. The procedure is described below: - First, run "fast" CI -``` - scripts/ci_build.sh -q -f - ... - source isar-init-build-env - scripts/vm_smoke_test -f -``` - Currently "fast" CI launches - * parallel cross build of QEMU arm/arm64/amd64 Debian stretch and Raspberry Pi 1 Raspbian stretch targets - * cross build of one of the supported boards which includes compilation of Linux kernel/U-Boot for it - * Launches login prompt check tests for built QEMU targets - - Second, run standard CI -``` - scripts/ci_build.sh -q - ... - source isar-init-build-env - scripts/vm_smoke_test -q -``` - Currently standard CI launches - * parallel native build of QEMU arm/arm64/i386/amd64 Debian stretch/buster and Raspberry Pi 1 Raspbian stretch targets - * Launches login prompt check tests for built QEMU targets + git clone https://github.com/siemens/kas + cat > kas.yml < .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 "$TESTSUITE_DIR/citest.py" -t $TAGS,startvm \ - --test-runner=runner --disable-sysinfo \ - -p build_dir="$BUILD_DIR" -p time_to_wait=$TIMEOUT; then - RET=$ES_OK -fi - -exit $RET From patchwork Mon Jun 17 15:09:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3618 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 17 Jun 2024 17:09:23 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f55.google.com (mail-wr1-f55.google.com [209.85.221.55]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45HF9MA4019153 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 17 Jun 2024 17:09:22 +0200 Received: by mail-wr1-f55.google.com with SMTP id ffacd0b85a97d-35f142464b9sf2641954f8f.0 for ; Mon, 17 Jun 2024 08:09:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718636956; cv=pass; d=google.com; s=arc-20160816; b=xos+FAdO0jQZ+aA2HUCIFcm/VWAC97luhUSHwlf3KAoGBsNeIP1DULPL9l2wSnmILD y3manmqGjwNMd2OKyeE8akJRuvSLBrfLYUAFL+lRISLbh6/ZzyH7MKljQ6XGmi2i86ib /wJ5HDDvslgvdtdLCdmAFM/mEB9S1jmLIa84kQ79nDOH1YkbXqpC28hmIYjyd1q68q24 iX7ZemZQYeAIPfvYndWXpxzcq27M+GlrLl0umRVf0RfyuzQ4f5MEB3S2JiS/8jkCPWli oSS2Wwgod9Fb2zc+nWY1wEJbUHLPp4mHMYuzYiWqaZc8ZlmAtrZtun4iMdMBWkG42kqF nENg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=XVD39J/VZuljEtgobw9FOihI40himGhca7t79laY2ms=; fh=5HWWLyi/Ef21V3n+0TUiJgJNs09iEE90Q0NWEQhpVmw=; b=1A4dAjpOSRpGZp/suiUZ5WCRJsrxOvj4pRln0PDXasl3b/ZlLSGGJFI/EzyfGiacAM cPNgad9KupFOjaekzFAxYuzWnfPMTffyllqXpMTP6l6s2tvdCo2+AZYt52yH9/oG2nFv sYky2Yk2xt2fQ0vPshn08wRF0imnXh9qE+d1Ra4wPyVwfaL5a+TB/GNU3qhZlx3b1WXP m078FJDpANOkN4TH2lepvUhDfeh1gs6j0CTUTAsMA4gqQ0UsQhzVdWa5n6qMCts1raRy bSssJvblQ4mRmUjrcHCrPbBu34uh4n3zyLlQ7H6s8p8FKEFsFT8VelJpnORauCYIUsYr eX2Q==; darn=isar-build.org ARC-Authentication-Results: i=2; 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1718636956; x=1719241756; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=XVD39J/VZuljEtgobw9FOihI40himGhca7t79laY2ms=; b=xbtrR9ogYnGrjV0XgKK7q7tqEGq6agmQkgLE7t+xOHLcznzHT1cTyi4i+6ON5z4BW9 V70Ph+B1IxzF5894jHN2eGZI0CBdYUsPqOoHP1h2hREKOkZ8/2bQPrz6WrHy/brgGDnF 4ONl8FmKonsvhC9LDVHE48RpvpxF4N5VOyoaEkJjBoZurm0bXymfqgRN+Rtmp7iw96c/ V1timXyv7p5sC5j7FbDqZjirrl2YP+uYkowmnoysqZfpHNrkcC9E7Kzi9f0OMjqGZPGT r8/flyoLGhfoyp0S5vcbTk+h7vr3jJ8zazIC42YL1GRBsBGNinrtj9XfqAZJYbsuvVh+ 93nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718636956; x=1719241756; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to; bh=XVD39J/VZuljEtgobw9FOihI40himGhca7t79laY2ms=; b=Bi7WMu3Q1GGOCFTPHwpGQPN9NCvqZ3M9AdZhlU7KRNOi0LdomoAs2mTUVcwAVZllML xN46WVBSzUi1fupPpdDLd+swZ7tNllvNEmhNvGKiL7lukNMgqWG/ImDbxXhJcTG/mcVV f8vVtA39EV87SSlMyVgguaqJXdabK+5mWECIgiCxLuVilFlDdTLtdGQxBGH41oDnL+Be LHkfMvq93BRxO86c+wlMeN/xl7lRRuVVWQQMfRTv4RMo00zCQCjTpTgMUu7yCNIwbqHa ZfK0KAYzQDI/JAHYAKAn86tJ4U4yJegOoeKw++pAO30M0TxRF4yxkSIX6C2ZAS+xhKi4 OJzg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCUPReJT8kIt1CyEtQD/l9GBhqNyuTD5BaCvhITCyhl1OScUUP6AWtNxFQfh4Uf5Osz4xs24+rgLMdGUldzQO/H9HWpS1+4= X-Gm-Message-State: AOJu0Yz41J98Bji3py15nBvz5IrRQP0BkAZd2YlqZo56Gc/eettWN9tw 08iF/1kzMGDUcjlWyKV3xcj6Cuf+nbJf8ggLbTudc2WpmFUB1wV4 X-Google-Smtp-Source: AGHT+IHGOb6mzJGTzrFf1/Jm1Tmyu+KDQ1sDlL8ByKzhPFoNKy4TXFBUai3X4rcbBTjS/B1Pz0merw== X-Received: by 2002:adf:cc91:0:b0:360:8f8d:9e3 with SMTP id ffacd0b85a97d-3608f8d0c81mr4013450f8f.61.1718636955413; Mon, 17 Jun 2024 08:09:15 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6000:1941:b0:35f:b57:e1c9 with SMTP id ffacd0b85a97d-360718cc178ls1649776f8f.0.-pod-prod-02-eu; Mon, 17 Jun 2024 08:09:14 -0700 (PDT) X-Received: by 2002:a05:6000:1fa1:b0:35f:1ae1:d252 with SMTP id ffacd0b85a97d-3607a783919mr8970267f8f.53.1718636953748; Mon, 17 Jun 2024 08:09:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718636953; cv=none; d=google.com; s=arc-20160816; b=irhM/umRaReFKrq+a1bI7mL0lDrnwHA0UpTOpdrNwTehBjKJCsQbP4xUlA1k3iovs9 HhDc3JZfspKn343m/R3KZSh8Khph0YXP5BIwSyMDm4flOpFkDGmeZIMqzQeJApX7n+su qhvD2vMfIldlQZY+LK9y9uFLILSPzEmZL+tzlMQ3xB/uCHB2Z1WALopNjoB9voJdq/tM g8xHxNnfwpQO5iTHIRcwtjqfg+3foU+Y82eVM4AaWPiSBvPdsL8BMhyg7nA0U8f2hUvq avw/r6NpeRMUIPr+xgnt3Ld0ohlL/Ddl1KH3CQ+elxF0IHqntKijJjfVfaViMERrodYx a+ZQ== 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=a07wbHghMLOtZnFmjWXm5kOQzgrErgkvQ+d+lwJ6VVU=; fh=/h9QQkzJ8EboVkWg45aWwpaUro6WMavIVd2OhN45RtE=; b=y6MCeldsEFOdY14vC183hun1fwMuBkPn6cGuJ2oOLLRkuF7Q6V2HQVJ/v4JRY2ZXmX OF/ZjV/VtmmNh0aGNwCzwjkonMYH59RDwaIJhj6MVSmBp/PgCHouhCTvsJI2IJmb1Zsd Nx1+3XAUVbHCZ8sNzbZ8Qqwu2Wgb9RjzwFPC2wVe7o/IPRUs+i5peIHsdCCnvVf5XEJQ 0ezeX9HtUyiqmMiQPgnvMzyvaYWmDGzFHjtJthXiHda2xpikV6HJ5KOlcrgsOn8RmPT7 HyAjI9wSntfWmHhyoUFpklkzDlb/YqJagT/ecPNm7xcT7VnmFNDAalbfh5Lf3znvB+cH +OlA==; dara=google.com 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 Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-360867eb198si127459f8f.8.2024.06.17.08.09.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Jun 2024 08:09:13 -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; Received: from user-B660.promwad.corp ([159.148.83.114]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45HF9AkP019081 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Jun 2024 17:09:12 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v2 4/5] CI: Allow external usage for some APIs Date: Mon, 17 Jun 2024 18:09:00 +0300 Message-Id: <20240617150901.55853-5-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240617150901.55853-1-amikan@ilbers.de> References: <20240617150901.55853-1-amikan@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-Original-Sender: amikan@ilbers.de X-Original-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 Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= Provide utilities class for external usage to be imported from outside of Avocado framework. Signed-off-by: Anton Mikanovich --- testsuite/cibase.py | 6 +++-- testsuite/cibuilder.py | 50 ++++---------------------------------- testsuite/citest.py | 4 +++- testsuite/utils.py | 54 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 48 deletions(-) create mode 100755 testsuite/utils.py diff --git a/testsuite/cibase.py b/testsuite/cibase.py index 0f6997af..c257a465 100755 --- a/testsuite/cibase.py +++ b/testsuite/cibase.py @@ -8,6 +8,8 @@ import tempfile import time from cibuilder import CIBuilder, isar_root +from utils import CIUtils + from avocado.utils import process class CIBaseTest(CIBuilder): @@ -238,13 +240,13 @@ class CIBaseTest(CIBuilder): for target in targets: sfiles[target] = dict() package = target.rsplit(':', 1)[-1] - isar_apt = self.getVars('REPO_ISAR_DB_DIR', target=target) + isar_apt = CIUtils.getVars('REPO_ISAR_DB_DIR', target=target) fpath = f'{package}/{package}*.tar.gz' targz = set(glob.glob(f'{isar_apt}/../apt/*/pool/*/*/{fpath}')) if len(targz) < 1: self.fail('No source packages found') for filename in targz: - sfiles[target][filename] = self.get_tar_content(filename) + sfiles[target][filename] = CIUtils.get_tar_content(filename) return sfiles self.configure(**kwargs) diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index a51d6f7e..4aa06ffb 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -9,11 +9,11 @@ import shutil import signal import subprocess import sys -import tarfile import time import tempfile import start_vm +from utils import CIUtils from avocado import Test from avocado.utils import path @@ -22,7 +22,6 @@ from avocado.utils import process sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '/../bitbake/lib') import bb -import bb.tinfoil DEF_VM_TO_SEC = 600 @@ -253,38 +252,6 @@ class CIBuilder(Test): except FileNotFoundError: self.log.warn(path + backup_prefix + ' not exist') - def getVars(self, *vars, target=None): - self.check_init() - def fixStream(stream): - # fix stream objects to emulate _io.TextIOWrapper - stream.isatty = lambda: False - stream.fileno = lambda: False - stream.encoding = sys.getdefaultencoding() - - sl = target is not None - fixStream(sys.stdout) - fixStream(sys.stderr) - - # wait until previous bitbake will be finished - lockfile = os.path.join(self.build_dir, 'bitbake.lock') - checks = 0 - while os.path.exists(lockfile) and checks < 5: - time.sleep(1) - checks += 1 - - with bb.tinfoil.Tinfoil(setup_logging=sl) as tinfoil: - values = () - if target: - tinfoil.prepare(quiet=2) - d = tinfoil.parse_recipe(target) - for var in vars: - values = values + (d.getVar(var, True) or 'None',) - else: - tinfoil.prepare(config_only=True, quiet=2) - for var in vars: - values = values + (tinfoil.config_data.getVar(var, True) or 'None',) - return values if len(values) > 1 else values[0] - def create_tmp_layer(self): tmp_layer_dir = os.path.join(isar_root, 'meta-tmp') @@ -314,13 +281,6 @@ BBPATH .= ":${LAYERDIR}"\ bb.utils.edit_bblayers_conf(bblayersconf_file, None, tmp_layer_dir) bb.utils.prunedir(tmp_layer_dir) - def get_tar_content(self, filename): - try: - tar = tarfile.open(filename) - return tar.getnames() - except Exception: - return [] - def get_ssh_cmd_prefix(self, user, host, port, priv_key): cmd_prefix = 'ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no '\ '-p %s -o IdentityFile=%s %s@%s ' \ @@ -526,10 +486,10 @@ BBPATH .= ":${LAYERDIR}"\ resize_output = None image_fstypes, \ wks_file, \ - bbdistro = self.getVars('IMAGE_FSTYPES', \ - 'WKS_FILE', \ - 'DISTRO', \ - target=multiconfig) + bbdistro = CIUtils.getVars('IMAGE_FSTYPES', \ + 'WKS_FILE', \ + 'DISTRO', \ + target=multiconfig) # only the first type will be tested in start_vm if image_fstypes.split()[0] == 'wic': diff --git a/testsuite/citest.py b/testsuite/citest.py index 42d44f6a..b84ae0e1 100755 --- a/testsuite/citest.py +++ b/testsuite/citest.py @@ -5,6 +5,7 @@ import os from avocado import skipUnless from avocado.utils import path from cibase import CIBaseTest +from utils import CIUtils UMOCI_AVAILABLE = True SKOPEO_AVAILABLE = True @@ -17,6 +18,7 @@ try: except path.CmdNotFoundError: SKOPEO_AVAILABLE = False + class DevTest(CIBaseTest): """ @@ -46,7 +48,7 @@ class DevTest(CIBaseTest): def test_dev_rebuild(self): self.init() - layerdir_core = self.getVars('LAYERDIR_core') + layerdir_core = CIUtils.getVars('LAYERDIR_core') dpkgbase_file = layerdir_core + '/classes/dpkg-base.bbclass' diff --git a/testsuite/utils.py b/testsuite/utils.py new file mode 100755 index 00000000..a3f643fa --- /dev/null +++ b/testsuite/utils.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 + +import os +import sys +import tarfile +import time + +sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '/../bitbake/lib') + +import bb +import bb.tinfoil + +class CIUtils(): + @staticmethod + def getVars(*vars, target=None): + def fixStream(stream): + # fix stream objects to emulate _io.TextIOWrapper + stream.isatty = lambda: False + stream.fileno = lambda: False + stream.encoding = sys.getdefaultencoding() + + sl = target is not None + if not hasattr(sys.stdout, 'isatty'): + fixStream(sys.stdout) + if not hasattr(sys.stderr, 'isatty'): + fixStream(sys.stderr) + + # wait until previous bitbake will be finished + lockfile = os.path.join(os.getcwd(), 'bitbake.lock') + checks = 0 + while os.path.exists(lockfile) and checks < 5: + time.sleep(1) + checks += 1 + + with bb.tinfoil.Tinfoil(setup_logging=sl) as tinfoil: + values = () + if target: + tinfoil.prepare(quiet=2) + d = tinfoil.parse_recipe(target) + for var in vars: + values = values + (d.getVar(var, True) or '',) + else: + tinfoil.prepare(config_only=True, quiet=2) + for var in vars: + values = values + (tinfoil.config_data.getVar(var, True) or '',) + return values if len(values) > 1 else values[0] + + @staticmethod + def get_tar_content(filename): + try: + tar = tarfile.open(filename) + return tar.getnames() + except Exception: + return [] From patchwork Mon Jun 17 15:09:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3619 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 17 Jun 2024 17:09:23 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ej1-f59.google.com (mail-ej1-f59.google.com [209.85.218.59]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45HF9MAP019162 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 17 Jun 2024 17:09:23 +0200 Received: by mail-ej1-f59.google.com with SMTP id a640c23a62f3a-a6f0da6cd62sf404937366b.1 for ; Mon, 17 Jun 2024 08:09:23 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718636956; cv=pass; d=google.com; s=arc-20160816; b=QiY6Xn5hXHexwgCTficsbXyabNZPaxU8+yh9Dz/AIy8+GDeqcu+ofkXWIdaRdUAvZ4 oFKmfXwNMordUjU3CN7Ht9WZCm/mpyEsWcz2Deg4+ktUk0NiYxSCmoAzkCaLzY4m/K7i jXOb4KgRVSGexlZf1Usi1wvdffXN8UsK7JsnbbzOBKg0KnvZGaXcADA2d9ChvH01pywr c4r8CfPFS6Ji8MWtTmC1YlH8q4qMiWurgayPtJPyy48lFuGYx+VRngxmAfzdew9KMqNt 5Vim0kwm3KiwZ0Odduca6KMMEw1HWT776Sq/JXXZJ3+q459ojIoPEPbuiUrja0/UUyr0 WrpA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=YsOYP0nIRVwySIsbutfOadger1ogD3E0gbsvhTUGxsg=; fh=2yHtlht436hq+222Rq8K5yKshECwGfh0nsk6GuE+Lsw=; b=kMSLU1RWxi7SlpaSU9mac8/oRsruydICpYgzHmegpB+yDSLxssMYpfe6RPHcfOGsZ5 cGlxB8sDqfDLt/IFbxhclkeyxWr72qTMjEIQd1dlBWNVgqrb5RACoiKPgk6rFxf4qJS6 7XEmtrn7DZhqZisRcbCZHKy8kL6L8zlQN05B5NTCN9r3ZXOw+gfenpTE2I+n3zrA+9Dj 6PmitLiEIcyib85nFjlE8+FsBq88G4N2+N6c3imKFmBTx00eA5BqzN7athW+IDzxc+HW De5AkjDPbMia5g/c0Zpcb6OmeL39rlSXjdnwGRY5+lvB+9VJtw4odN0b2s9m9pZv9d/g EL7Q==; darn=isar-build.org ARC-Authentication-Results: i=2; 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1718636956; x=1719241756; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=YsOYP0nIRVwySIsbutfOadger1ogD3E0gbsvhTUGxsg=; b=fB2KFHTwFTQoBR0vJLKAS4BTI2EfkHY+/jXzTwnPEwd/bvyRqxOrPaf/DgPg1xTwYv HzKlt2lAbcdXgNu1IWv699CbACW1Zm0JmO0H4DQli91nqgXgI+7CvkrNUgBteNX91ASo fwDf1wjm+6Z1nvL70X2JhGEwOgrxBNs79HvVPZuMYZf0nP3Yo3BLsmBejUN+PKm76d73 OVRJko9cOpxCDDDRhTyedQocVB6nB+vFSXq0TC0oRVWcHVzlarpVXNIavKXJhLrDoRbs /dqNSkVW5NnmH7romKrWxVVyKCtHDcZ6sZ3JTnYbhseAaaKy7VaqGZRbc7KL5TDW3bdD 8vqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718636956; x=1719241756; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to; bh=YsOYP0nIRVwySIsbutfOadger1ogD3E0gbsvhTUGxsg=; b=gm7K0K20WxzE45XHwiS0tDzoJhntGgIfAQdF1P6ft4bvMP8a5+omxZmtBpj+fvpEnz t7UqWeZtZSuhNhjclxqGdqLvMaTrRw51V4ROguGEOZCpP0X90gg8KOyzuVS3QEgOO4on 16nk/K5z/pb1xgXMB3RORwhFPR0xvMTgFyVoNE2Nh6fBiKlaZa+lMyrs0vGwTmYrkZ7J +3g/mQSAqUzeR11BfbaIic1nNfoVvB8oVPALKIclwRdTIH+7GIsSlC4kP9IEE+yQsIii upAcNQRI1oxmX1PKXBMhngWkVB1aJ35M1sZ8ECTUU7SCRE+4K09SyU5khSs5iytI9VBp 6hzw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCWV3c/LXcjwBPTl72SxIEw2XL+zRk/+4kLD6oLpxjBUHQWFhzPrSKjZ0/1L5iVu9PSxlGUPvu5s+w/8HoKwq/Vd+RTTkEA= X-Gm-Message-State: AOJu0YyAdkvzcLKtw+mvXX1c99JqjBugXQVf8lP9yBzITk0UNfRszubJ DfqRU1haAWpzgNVTEhsD86z4pJ4BtVRQ70CCdbpmAXMAXuNzatDW X-Google-Smtp-Source: AGHT+IE7Ts2nvcrhhy8J+wMmvq9Vzghcpmos1hshPunnnwdliSQxv2cgbfhGdYDTj/cdJcNe9PWS8g== X-Received: by 2002:a17:906:3409:b0:a6f:6bad:b5a9 with SMTP id a640c23a62f3a-a6f6badb6c8mr477468566b.7.1718636955704; Mon, 17 Jun 2024 08:09:15 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6402:4316:b0:57c:a472:933c with SMTP id 4fb4d7f45d1cf-57cb4a87333ls3462068a12.0.-pod-prod-00-eu; Mon, 17 Jun 2024 08:09:14 -0700 (PDT) X-Received: by 2002:a17:906:66d1:b0:a6f:603a:d9e9 with SMTP id a640c23a62f3a-a6f6082ced4mr698950366b.10.1718636953923; Mon, 17 Jun 2024 08:09:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718636953; cv=none; d=google.com; s=arc-20160816; b=xAmJ80TlJgFwgJVjwTy9IjpjhbKEdh6LNFx8l2OxANEH7GHFqDMX/kmj5y4FE/+9NQ 9yL0I2YY7UMDe1p+7R2jaCBdlCepdo8veXQA500mxys28ksBUzaZI91d4m0MAIYK1Uzq gEyqYLhFz4KGKNsNIWJzw/ScMW1DQSSUuSZnxe54gy4Jtk3AOwOTyK6aq87kTzGwLxSB foWeT1xHFhL9qYPfqlJfazIse6rQKTbfYObn/9OSYyvY7xReLruaPIXZdF0HWOxEYVrC IqOh1EBcm9iOtDlmiLx62pM6zHtOFXT8dMNHC/YOAdvM1G4tUz3LHU3rIPrno74yzCah bYoA== 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=bwRzOpGXXmP369TPfxhAfaM0/J+4BVJcvCIuUxGbayc=; fh=/h9QQkzJ8EboVkWg45aWwpaUro6WMavIVd2OhN45RtE=; b=r3u10gdoBApvkIypXndnigCuW1PbMCQ+jym9wfSFziXfEbbnwv5ZUDlSwKGNF3M0dL dyknZNq7ce5ZJMrmBp4ieGpGOMtUjpkYz+zSx40IxPYM84G9z5+wLyWhr7u9tsLcbPxy NhCsGzjfnuCorKjWY4oSqfucuqPMnG92wyK/DgWSdO9laM+5ig6cWH3nTefEVi4cQtU6 3JPg8T7uYitzmSRLxcbki14vhnw5SfRB+aJpw207FZb7Hj7yW/rGhRrIA/QSG+5+Blvk /bxENGXsszS0VMF/bxg9bShwQ17eHRMenNvzQRwcICRnktHXxCoduOUK+4Lh/blt9obu IwJA==; dara=google.com 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 Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id a640c23a62f3a-a6f56c966c9si27808366b.0.2024.06.17.08.09.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Jun 2024 08:09:13 -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; Received: from user-B660.promwad.corp ([159.148.83.114]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45HF9AkQ019081 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Jun 2024 17:09:13 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v2 5/5] start_vm: Reuse getVars API Date: Mon, 17 Jun 2024 18:09:01 +0300 Message-Id: <20240617150901.55853-6-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240617150901.55853-1-amikan@ilbers.de> References: <20240617150901.55853-1-amikan@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-Original-Sender: amikan@ilbers.de X-Original-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 Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= We already have an API to get Bitbake variable values without manual handling of bitbake execution. This will speedup und simplify start_vm. Signed-off-by: Anton Mikanovich --- testsuite/start_vm.py | 48 ++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py index 45e509a7..f414a194 100755 --- a/testsuite/start_vm.py +++ b/testsuite/start_vm.py @@ -11,43 +11,50 @@ import sys import shutil import time +from utils import CIUtils + OVMF_VARS_PATH = '/usr/share/OVMF/OVMF_VARS_4M.ms.fd' -def get_bitbake_env(arch, distro, image): +def format_qemu_cmdline(arch, build, distro, image, out, pid, enforce_pcbios=False): multiconfig = 'mc:qemu' + arch + '-' + distro + ':' + image - output = subprocess.check_output(['bitbake', '-e', str(multiconfig)]) - return output -def get_bitbake_var(output, var): - ret = '' - for line in output.splitlines(): - if line.startswith(var + '='): - ret = line.split('"')[1] - return ret - -def format_qemu_cmdline(arch, build, distro, image, out, pid, enforce_pcbios=False): - bb_output = get_bitbake_env(arch, distro, image).decode() + image_fstypes, \ + deploy_dir_image, \ + kernel_image, \ + initrd_image, \ + serial, \ + root_dev, \ + qemu_arch, \ + qemu_machine, \ + qemu_cpu, \ + qemu_disk_args = CIUtils.getVars('IMAGE_FSTYPES', \ + 'DEPLOY_DIR_IMAGE', \ + 'KERNEL_IMAGE', \ + 'INITRD_DEPLOY_FILE', \ + 'MACHINE_SERIAL', \ + 'QEMU_ROOTFS_DEV', \ + 'QEMU_ARCH', \ + 'QEMU_MACHINE', \ + 'QEMU_CPU', \ + 'QEMU_DISK_ARGS', \ + target=multiconfig) extra_args = '' cpu = [''] - image_type = get_bitbake_var(bb_output, 'IMAGE_FSTYPES').split()[0] - deploy_dir_image = get_bitbake_var(bb_output, 'DEPLOY_DIR_IMAGE') + image_type = image_fstypes.split()[0] base = 'ubuntu' if distro in ['jammy', 'focal'] else 'debian' rootfs_image = image + '-' + base + '-' + distro + '-qemu' + arch + '.' + image_type if image_type == 'ext4': - kernel_image = deploy_dir_image + '/' + get_bitbake_var(bb_output, 'KERNEL_IMAGE') - initrd_image = get_bitbake_var(bb_output, 'INITRD_DEPLOY_FILE') + kernel_image = deploy_dir_image + '/' + kernel_image if not initrd_image: initrd_image = '/dev/null' else: initrd_image = deploy_dir_image + '/' + initrd_image - serial = get_bitbake_var(bb_output, 'MACHINE_SERIAL') - root_dev = get_bitbake_var(bb_output, 'QEMU_ROOTFS_DEV') kargs = ['-append', '"console=' + serial + ' root=/dev/' + root_dev + ' rw"'] extra_args = ['-kernel', kernel_image, '-initrd', initrd_image] @@ -57,11 +64,6 @@ def format_qemu_cmdline(arch, build, distro, image, out, pid, enforce_pcbios=Fal else: raise ValueError('Invalid image type: ' + str(image_type)) - qemu_arch = get_bitbake_var(bb_output, 'QEMU_ARCH') - qemu_machine = get_bitbake_var(bb_output, 'QEMU_MACHINE') - qemu_cpu = get_bitbake_var(bb_output, 'QEMU_CPU') - qemu_disk_args = get_bitbake_var(bb_output, 'QEMU_DISK_ARGS') - if out: extra_args.extend(['-chardev','stdio,id=ch0,logfile=' + out]) extra_args.extend(['-serial','chardev:ch0'])