From patchwork Fri Jun 14 11:23:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3602 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 14 Jun 2024 13:23:41 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f56.google.com (mail-lf1-f56.google.com [209.85.167.56]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45EBNdXE031668 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 14 Jun 2024 13:23:39 +0200 Received: by mail-lf1-f56.google.com with SMTP id 2adb3069b0e04-52bb096e9d8sf1347061e87.2 for ; Fri, 14 Jun 2024 04:23:39 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718364214; cv=pass; d=google.com; s=arc-20160816; b=Njy9xXLDhw7yBo8lBXNZhr+9Fg0YH9T+SGM4ZuFfKG6sEUYs3R/39r9lfZ+Em/iS4W BHyAYxJMHlzHaz5SxmBwuwVY3398hQHyTLG4v5vVq4a8ofLmG93orEeSox0fzTUsAReH HdZTwbO8JeahiuxJ5ANf1nc+ZHTWbJ9G/15tGF64omr3FyrEq7lSFihYaGhNxBnFDi1q WvOwMAgSKUYwHXMkEjAOeLfY/Tj4/shT2v9G5BG+Zqpwz8IgItbeU3zbKvm6JcyIgy1R 5heJOtljj8eaA9CaFef72RE9meJEXcvG2UIF/LfmM2nls6mxHPNCFUPVanjkLSYb+Exd SdYg== 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=qrOv3DJ3/wiZuNrHv0szz3W6uwOjf9QpD1JuTzUCMrA=; fh=VxKFsH9mXOsmFsloSR/ovXd0dCxkrpOEdUhvfdHxYqo=; b=Gnh7rJmwCnP2AdoRV8ZAEKeepII/wa19sitE1NtMWEiQ2IzMOlR6XR+WHNTtKmvcSg iHb+VcSFJYzOGEdTnT/cKMjJr1H5brWn7/ucMqihmWYP1XDpogf80kEMe6ZGHOW5guJN klBPfR3eTU2Wi5Pheq+Q3N7/X/pzkevCI9hM6M6ciMi1NeLFE6cSZqnZznPDJuTxDNHj FlLGWVOyaCiiJFA9KCm2OJiWIL1A/g+jq18AWLZTvXyxny/J0tTFFdXvrDiBG4s8ffE5 CMY0RUwgaeNTuLyYMRxaRua2/rE04HEhIoIEcz4S0VWL1BCfhz1qVl31iq7Kuf3lVKt7 xVzg==; 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=1718364214; x=1718969014; 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=qrOv3DJ3/wiZuNrHv0szz3W6uwOjf9QpD1JuTzUCMrA=; b=hbVRTlAl3fBPfavLzVlS8RWaYS5YK8oHq5MfjMfaSJX3QReodab2m8pFdfQXTpO+9T Trgr6GuBJwVTtvD2lcHwAH9hulnJblVmfBIo+63rMVnPLz4cKdkkMWgicwxakSdm/98p XKIif6+7ldBr1P7HgPjomEufxZ3IHlU6g4PNFIVzPVp/6soiu1bMzQNmBSCxprQpC/Fo n2qbX/kPuGeujq5twS/CrT+WmcpDMuk1iqBPk562MyI8BjE1NrCri+5Azj+VP5ipuZhc K+jkkg4Zr13Hmgcb3Q/oHRb+GbzogO/52xIz4M4LUVf/IuYiVXz8xLMKTzvn72BOVB4K pKGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718364214; x=1718969014; 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=qrOv3DJ3/wiZuNrHv0szz3W6uwOjf9QpD1JuTzUCMrA=; b=jR2baGKiYBypVQ3ybuYr2+r0vNMZzV515r5ol9OKt1rQbcXfX1xenUK0kjj0rd8Z6v w7iYXltrlu5Z0pOeGvVLoAO9SgmII7h1gnC5/7Y+c6PoaPQJrA1NCw7grSe9E7zgO8Hx gr3MEjhMfE0qP7b6PuxVKtKejoAbDZx+CJHcG5YopoNxEDDWpkqd+Eqt0kBquc3cwR7l XpLcJXhRYsTFiMchSlnMfhqMPxwaj2TDauzKuVFfunZgncL0N90w0cLBUOG4GlwPtozM JXM7HVwcHGtgRSfsaRoOUtJR7atGnEsjy/vGms603B/WECW3TY3jjT2zbcKgWbp145Jj ZUVA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCVeoXcVIa1dSxoOzEdotyieGm355WNLYTxYW11pdGY692Otz6G8fDG2uC8edgnkcrvU4pkoMCDFSvkA/3ldPzjCmcsKjSA= X-Gm-Message-State: AOJu0Ywu8dMt4phIZy/Hg1rQfTXJbMNMOK/9Ic8gexVJIjNfikSQx0nD K4v6WMw2X10VUfdFsNGi8tlNSTH434SEaW7DgPzZn50icd7jxXh0 X-Google-Smtp-Source: AGHT+IHEZXgQtTphvObSvWFRPrTNk91nDIWZrUt65r/80Tjmo5fJSTwZIFxbKR6oPkQ0lCnmDQpWHg== X-Received: by 2002:a05:6512:34c4:b0:52c:86d6:e8d7 with SMTP id 2adb3069b0e04-52ca6e55da5mr1531871e87.13.1718364212648; Fri, 14 Jun 2024 04:23:32 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:4346:b0:422:cb6c:76b2 with SMTP id 5b1f17b1804b1-422cb6c7806ls7395645e9.2.-pod-prod-04-eu; Fri, 14 Jun 2024 04:23:31 -0700 (PDT) X-Received: by 2002:a05:600c:3107:b0:423:499:a1ce with SMTP id 5b1f17b1804b1-42304d934c4mr23412525e9.32.1718364210661; Fri, 14 Jun 2024 04:23:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718364210; cv=none; d=google.com; s=arc-20160816; b=ipBJUT+yIIG+/B/8SbVuC5V3261XmSGlR/3rOqGnAtK39qyPcXXYaWUeuUBxxmNjtF AFUz5lGT9jrnI4FLWfmtplmEwWGdHg1K9n+mDi+hVtPon0wtIjzF+8YbLTkZOvVvRPck drcKRDN9wTPTZUGYadUUHNzfqde0PEULSQfsyJoAvz5mpe9CiTv+CrsfzIeE7AfK5QMh mQbYukmw8/YpvOx8M3DYrITzT8yMkPhnicpCMHtCqn7bvuw+oc2IpcKp2k7ujWXB+hp6 PUdGSlgwhyN1hYESHuxX/q8c+4bYOA5Db7dtN+irHCeoBNN7wNQkcJjUAaaHPn0gKCzB amPw== 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=hskK4u7n5ErVzXVZBFwz9m5DLyzu2MEHv6uQkHx6L7OBJz6Oca6ezCtEiptsS2NvS/ PSutLgv4V5Ti1nm011Qpba0bgyHZqUYEerHZXO3KFYXuowHwvSLQco5a1tgsXGP8GuQB L8Y/uNMLIm1atbnr391nFupmxgU3H9xzn8v4d9RneLjowUfh76YWcU54Fe0KEYk8cu1N 1gMMHBihxu2meC0sNhXzvydO92obbHibzoXhCkIvqWs5BZSF6QQ+v7XACHcGwkyTMXe4 24WEIQUhC9iBL/ZLrnpdKNkqvt7+n21LhiaZZe3S+Daq50amFpffZDnxRdzxh3JiMQWl U0nQ==; 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-422869d533esi1326005e9.0.2024.06.14.04.23.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 14 Jun 2024 04:23:30 -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 localhost.localdomain (r154-240-38-77-broadband.btv.lv [77.38.240.154] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45EBNRq2031631 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Jun 2024 13:23:29 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Ilia Skochilov , Anton Mikanovich Subject: [PATCH 1/5] start_vm: Switch to python version Date: Fri, 14 Jun 2024 14:23:16 +0300 Message-Id: <20240614112320.122428-2-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240614112320.122428-1-amikan@ilbers.de> References: <20240614112320.122428-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 Fri Jun 14 11:23:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3601 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 14 Jun 2024 13:23:40 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f64.google.com (mail-wm1-f64.google.com [209.85.128.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45EBNdS1031658 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 14 Jun 2024 13:23:39 +0200 Received: by mail-wm1-f64.google.com with SMTP id 5b1f17b1804b1-42120e033e2sf12178685e9.0 for ; Fri, 14 Jun 2024 04:23:39 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718364214; cv=pass; d=google.com; s=arc-20160816; b=liVRiLDVHfp0BBCEvaoa1Z7U/5+IWV1iP9sFbD1EaCP84ZVM88gXh0GDtyW5s4de9A UTseUI6FSG7Vk8OfPatPJ816sdUXFBTQbdnyFVRa7lotjUkCWjYktoeMRUjyI9EgDKg+ UkPeuq2Uv5r8d/f3d0rohMde1/94CFotIrylcQMnshuJNEHKZ/i6HdlJZLmdp7/hJ2It YAkaux3+N6Y/CXnCPnvd/G1keWgt84RrUu8s7duS8Q5WjgLJnNUXjUhqZGomquLq8dB3 xAd5Encu8oUixW3Fwl6vbkdh9yE41lCJpMoq5428NHAdN9HeB9LKHZiqeF36ulYBBvdj zbhA== 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=LGaXlVQCvmmNEoAZaA0hD1MVDeaBSip5g65Rtq1uFag=; fh=FeZ8bm845hZG5N9OtJ/HcD/mF8hq+CO8zzbNjsZovfI=; b=lJl6B1Xce1zUG+KUm1Qkb8RNEyyvcYdU/mp32Q1NvtgBjh44bbGhkYfofHoT4rqZJi TrHdQGYnbqEFdNPIbbDNz+kiE6I6uMlaWTLZg8d4gzI1ESTty/NNxhwmXRbHvN3Uh6/f p2sd8YtYep7SR2t3BQ/aVXlDg2kj14PZ2DzIyDa5yCSqSysPbeqQd631fkvZ+VVzSX7F fp4Q68j/gCiEWv1bpllCISu8wIput0r9MUpfFI09/aRVvsJlP2YcdIOEn1BbYrDWeOE5 Xxsu8LjPXdEMBAKyWzwVL14hvYp/eW39lwr8LQHKp5qI8Gpy0dsparqsH693V6+F+uRq oeLQ==; 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=1718364214; x=1718969014; 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=LGaXlVQCvmmNEoAZaA0hD1MVDeaBSip5g65Rtq1uFag=; b=REEob8VE4K8FSa5tdgOqakfULIShV0QIpN7nPFYeCjWRTKs6QJjK25ltRXb4Y2FuGV wGNzbj07gpTuvaRTNuoRPdf2X3bR8t9jbrOXBPmNRrf4niKq7cnssxeHLnsMtsrgFG6y 28AHYeY8bcGXTnEjor7r5CIKH7dx/lnMybsObRTj3JFk6mCngpEjU0ykTYWA4caq8Ytl lhDq/DgCEuaq4nk2Ohhbdq9jIIG2UC0zX99bU1H9JU8Fv0SzXp7jfVaqu3KRayDQreSb 7fonuEEnN4cMtEVC1FpFDlN4XgP9bw0vUznHj3QzoOV206mQIf/WQUfE1rc9xrqWDHQQ cuVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718364214; x=1718969014; 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=LGaXlVQCvmmNEoAZaA0hD1MVDeaBSip5g65Rtq1uFag=; b=c0I1Ap5RyEn9nK4xaBnN1hkl5D+tuSKMoJ7w9VJgLxhqRBI5Bmx/4zqriett4iiwvg P67+YEmsrQbPYrieh1/b4HDumdv3h3c2mXKthgJyplxrHGkDqQ8WM87oc/PcHBxaSy+i JPSqa3tPHrCJudKqy7Y7QsbKBOp0Lhi+aQoTj6N1AakRnrhPDOcdDTOjGmt5byHBxsYy TCe+rqLFp2OZgWJS7ey+1kmY3ju1ykEBC4+9422SBk5ldYbDNcb41LFLJruHeb2WeWqu IiP8XpYQ1xhniHGkHv6fAvHoEdUvDcYGA2+aept+YrZSEkLkq9a+2xhKPmIWCo4f/TKh /0eQ== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCUmAgxUXW0CM1F0AbA+QusnHMoVrPEft4UQ2iHDB1ScnoEEId2nfQuocXaRscHWLNwKeH7edFG8kbr1/ryY+MSGfQn2lG8= X-Gm-Message-State: AOJu0YzfOLK2yWNVRYq5i7JS0vW42PSFLVPMIOxt/w2kv7B8ob3davJy EIdatnXD+Lzq05lnGEptoPqcFXafywliuo2nr927chDvbRQGPMqB X-Google-Smtp-Source: AGHT+IF+5EOTALGCua4NprMR6Zu8Km+lG4Q8egO7y3usZJcH7U2tRG11LxMjSipn6FkQI3TE4Xs70g== X-Received: by 2002:a05:600c:154a:b0:421:8f16:16d5 with SMTP id 5b1f17b1804b1-42304852afcmr24324375e9.33.1718364213381; Fri, 14 Jun 2024 04:23:33 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:4f83:b0:421:7e41:1867 with SMTP id 5b1f17b1804b1-422b6dc6f7als7709495e9.0.-pod-prod-08-eu; Fri, 14 Jun 2024 04:23:31 -0700 (PDT) X-Received: by 2002:a05:600c:1911:b0:422:7037:54c0 with SMTP id 5b1f17b1804b1-4230481f07emr22591125e9.7.1718364211373; Fri, 14 Jun 2024 04:23:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718364211; cv=none; d=google.com; s=arc-20160816; b=X6MAkz/vMcb7iJ7ApTsVcvoz1w0RORsw/Mka/KJX6Yb4Vql31tm6Wd3dOctSRFXPXI j99r/TMkyf+/QLQuTak4V3nJcosh2Hvwi0q6XxBce+OrJMIlDp6bRtMWeRdDj9vWJip7 yrIUmLqYfKxOUJUzgdXLp8sFWZ4hFamz+yBhAmIe+qyFCHqY965NL6DXQIVubyKKyFYl 4xhejhQSV2rITEQsTO/1Khi6ZKzHL+UYGiaDRt60E9NaARkqnnVr+gnlR11qbU2Yqgcy Y3Giw7QiuEkTnsG8cuVBZ6tb+XWsQRKKN2mRVDsBpLgyVpD3p9+7cFASx8XnsV6teCna X4Pw== 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=wsT5i7CqXNGIczMoY6z3Sz/3pKL+TvSn3Rmrb1U48tVZib07Dx/N7VE+yGxB6EDEwH AAkeKtBCrcY+NrBkxJz6fZ9mg/vSZB3jZ6Wvbbmglzif48MeKNkmXlNvroY24W5UB7te kfWgQECH1fja2xMXUzc7ATU6JLKyZgMlAs0x3lA73WltQ8aKtHU6SB9BwR4G4D0pxmxx mxQY3qByttb+Hdttwci/2NhSvGEUtwfV29ftXfzXjwM/RtKsZ5MTTs/ztRM8EVncgDtF FlN5WxJRVqe5jnx9nE1FI6/ZLrCJj9tnKIG/k69+adpzT56sdz47AnqtW4X62iyWykWS 3IGw==; 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-42284b090dfsi4336295e9.0.2024.06.14.04.23.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 14 Jun 2024 04:23:31 -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 localhost.localdomain (r154-240-38-77-broadband.btv.lv [77.38.240.154] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45EBNRq3031631 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Jun 2024 13:23:30 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH 2/5] start_vm: Add secureboot support Date: Fri, 14 Jun 2024 14:23:17 +0300 Message-Id: <20240614112320.122428-3-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240614112320.122428-1-amikan@ilbers.de> References: <20240614112320.122428-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 Fri Jun 14 11:23:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3603 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 14 Jun 2024 13:23:41 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f64.google.com (mail-wm1-f64.google.com [209.85.128.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45EBNe1d031684 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 14 Jun 2024 13:23:40 +0200 Received: by mail-wm1-f64.google.com with SMTP id 5b1f17b1804b1-421791c4eadsf12039095e9.3 for ; Fri, 14 Jun 2024 04:23:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718364215; cv=pass; d=google.com; s=arc-20160816; b=YuwJ5VeWWR1ci0koKxeU7pNeIOifiNMPz/m65Q4vhuUiwRQSL3bdPmh+dsGnReuLQL Xp5l5f9Ec66UvnEgZhXgwla/nR8UU7wQs4YHVtMMNYdDVeZgG+/DdI8eeeKCoO8i59MA Y1NzHWv1RjtzJaWsB3RIvDfIxE8L5kiNFHGjBsolKqXvtLblFPw8xs+vDMBpHpt90eyq f/6CkPqp2yAjNRsXLtvpexelBzXJinUVvwdkcn69Se2Q/euVnZlwNq/pcTvtez3YrUgk 2ZxWI8eTlj6m1bUwbw0bUEdwJfAmIXYCgP1Rl9KYhD6+hedjecQ79ZQYV5p/XJmOZiFF ty4g== 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=K0igi/V+qn1I/fhgedt0NfANU06lhf0h9q7YbdQwPlU=; fh=p4bQzzEt0tL5fcm50ilCMdhQd9smAtqgkvextaEETgs=; b=F0NPp7V1aGPtP5pQlWy/m9Oc/2YsR8lpbrhxcvWGKS5GpTirnUZxn9tZ+CuOJikj5Y QMHAdQpIJizEsse5XBDyR6ox2Gh5/aubCk9NrRu9kmXOOpme686hKUm43GCnEZZlIAIw A5Y3M8TT5/Q3udwNqFU+rEHLU4PHkL+PrgXomhiwzCRwJej1fZFAxDbUdEnWP2n/Ve2e MiDo4eYx9YASpLFZLgYF7OhXXwkZ2jtG3dlPKzmKSwI3tYsyzeBWzKg0CKjvOKKHt0q9 4cjqzNh664liFsgSD/N0KwDWSpRgmqck+28bKRBVg/SON4JxQQtdnwj+bnSq+6yXrSpm IFww==; 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=1718364215; x=1718969015; 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=K0igi/V+qn1I/fhgedt0NfANU06lhf0h9q7YbdQwPlU=; b=Y0gi36RM0yX+JTZrx3gxRezks1fMP9zXH4R0QeqNy0T48IzBAWQ5tMAyAqRMSCKiHt MKrP7h5V6s0GLfAWIy7vQ8b+pCqmslVfihn7Lfyoq0VB7JLyyXeDsQcNqjRHAhATMwEZ HF/hY4rWDDspuVliNJrWsIcBYR3WBKLQClLhN/Szz6NKZ7IdXeTAoMadY+FUFKjmIdsK knGgx119WArq4svAdZkmAxmacNJAIc54MlU8vRPqBdVMzCMgWXOMTHXxPj1yG6jBgp00 bfW2o8m5YQieKudKskqMesf0liWbbdEo7/hl4vCukHscLZ9AWnPHdw8zmfvQ0EKm1nF0 Vjxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718364215; x=1718969015; 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=K0igi/V+qn1I/fhgedt0NfANU06lhf0h9q7YbdQwPlU=; b=TTBLWqQGkn5dD+ExrHDoJBYOq+K4HMzmGS54Wyla9jaxIprqwk62XuYWl7NM8UjcbO +BwcaGJdoPmGSRvuy4RKvLaINBldFkRFttaUL2Zb2evxU7lsI1zbLEbAqswKrFIjY7yi VuZv07QaAlKhpHCRDw+5MBB+KfkiOp3e/VqBAN+5zFl6iAs2q3Dnhtx3s3yu1ZYYbnTi i/jj5rHBHg5ZhesIyg4Q4ce3EY0H7NToiZNP3ddBHpJZFAXZCF7mZkA9NO+WjhuIntOY 4QNfmmU462FlXSpbQmziJprLUA2E1rxcicaTJQ8MJSucO7CrhNmmW35shpXyuZdEqbya tSUA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCU4NV+u7PBAafSXkTOfbubHLpARKwj9TYfdqFJsbGhgXdbBk1x74gkSGdUlH3ddqphGc/kjkutvBKigti9dxHTouwgbRYU= X-Gm-Message-State: AOJu0Yz6u0g4SbJnWYxY6cwjAAfgKg4J1uhgtXps1kISzzK9UU0F9s2W TS8upS1tE8Z3Kodog2UBIQGX66NmVRm7NOpD3lgWLmbCoNwnx9id X-Google-Smtp-Source: AGHT+IFKJd8ZQtVTeWvpfiHVpIeIJDF+CelEs0hdJ8w8Hjvegc4p/0n5OSL3zkpL55ewIwN8ZmqOyg== X-Received: by 2002:a05:600c:3b91:b0:420:29dd:84e3 with SMTP id 5b1f17b1804b1-4230484899cmr26970895e9.26.1718364214110; Fri, 14 Jun 2024 04:23:34 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:4f83:b0:421:7e41:1867 with SMTP id 5b1f17b1804b1-422b6dc6f7als7709515e9.0.-pod-prod-08-eu; Fri, 14 Jun 2024 04:23:32 -0700 (PDT) X-Received: by 2002:a05:600c:198f:b0:420:66e:4c31 with SMTP id 5b1f17b1804b1-42304852784mr22171385e9.34.1718364212502; Fri, 14 Jun 2024 04:23:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718364212; cv=none; d=google.com; s=arc-20160816; b=M+NPGr9bzaboFQ6pDaHGsSFGDaC3INVHYQcer7E6+75l22ESgjfIc9AhgKGPYnQA7y SJYfo6aXFdugA+SSH4xXsuTOT/4pYSs+XQwa4zCfuQf314SlAA8thNddz0eB7eO4rYSU iOeh3iXkFs4ANYYUialSmVzux7yoIsPtP6qmF3wxcboRvOaFcJuZwS45gK/hsPI2YLje q9Gn7rio0kH7JN3pRQ7YYuE2f7k58X5TbvGPGpzPBO8iORqd4b+Y4n3y8O3elb6BYYe9 gl7lcnKu2mvf2yRJzEYrDyXhvt25rS2eWnZwj7k6CU5TZlb9RpH4UncePvMR/dvbYx59 lNZw== 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=iP6au81lEuiPE+7nZcy1WMFm/oVT5aBmxAfO+O2gJzE9jhjYwN+G4QJRg/GaupI71g 6mR359IU70RYLa2aoR+DLrPXGRCi4nc9ZHkjiLqa4/fst5fZ7IHtyTfLkRgtDP6Hgs9A b0IV9IgLq92C+Lbl/qfRu1bltqedPUv32xk9Gk3yBNQOn8838oJT9gry0vlxRRClyrQJ ObU1PcsOsdVJXl06Cd8K9o4EeK75qfziwNqxNRSxJ3vhiQ+brPqa6XGFV79mpXltcV+W ZOj1zqr9J9TO8gHyoxt7ORnmKogseQxI/LC1SsLwtZuTkrBprr8j8RlfhLFNrogl+8CO wIug==; 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-4228556ff26si1857715e9.1.2024.06.14.04.23.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 14 Jun 2024 04:23:32 -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 localhost.localdomain (r154-240-38-77-broadband.btv.lv [77.38.240.154] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45EBNRq4031631 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Jun 2024 13:23:31 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Ilia Skochilov , Anton Mikanovich Subject: [PATCH 3/5] scripts: Remove vm_smoke_test Date: Fri, 14 Jun 2024 14:23:18 +0300 Message-Id: <20240614112320.122428-4-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240614112320.122428-1-amikan@ilbers.de> References: <20240614112320.122428-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 Fri Jun 14 11:23:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3604 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 14 Jun 2024 13:23:43 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f183.google.com (mail-lj1-f183.google.com [209.85.208.183]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45EBNgof031700 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 14 Jun 2024 13:23:42 +0200 Received: by mail-lj1-f183.google.com with SMTP id 38308e7fff4ca-2ebf0863242sf14636821fa.3 for ; Fri, 14 Jun 2024 04:23:42 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718364217; cv=pass; d=google.com; s=arc-20160816; b=fDqd9o81MoleuFW/aR/WMvRvYNyzomXJRsgfhAJevq+w5BW/9FDBaW50otIBsS7Fuh f1FelafJ4UekA3hkkiaL3Yv1ZLMrW/jqZ7qEWgUYv5+BRMNODaWIb3YHUQ1K7Wbm5GAm EYhQu7bxks6RbnCp3o5ICatZQH4ujs6D5LaMzR5pd07YvvqrVI696TWKt4qZD26jTE4Z JssYyIfwgZKxiR0iF+btoGpZkvs661aybeaR1af5bPt9YUbSFHA8szj7T7djZkWP/zZc x9vBATNeoQj/cvEDteWII8xpiKiU7LdjnwcqsWdoeRXSQFrHKNhND2A3BO3GUeiXQCoz oR0g== 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=NNoAeFpgpot9PlqTvrcYpVHVB/EX9TP9G92au2hioUA=; fh=5QtjtvFcGvoK4DTMUwWgys3F5t9R3BDiUCIjmABbwyg=; b=ZceltdALMKj/x4fQLSUcEVkI/agewJZL9wiMWy++nYgwwzy29B4TnDBcqkBZuUigqZ zIzQrpQE4HP4wKu3f8odzvBJR+6slFRzBfDVR65DzblvwCRVm20OHWNQBwBgQ42WAqxK H68JCkwmcqJZUG51xVhwq7JTM+g/DpEBjiSUlv9LHd3qAPrEBfHU74Ej5WkEBu8qLIPW mPYjBt4Y1hwyAVZOT2cVlGZzID88M5MwEKip0EXx9bq+BO7b+Q07Y5mhBwo2hN95b5em bLHxIIIYn9Fg0d6UcLQQXRP12iOCkvRri1HWTlJ3JREquGfbv+pmI2OW25WrY9dyACnu cOnQ==; 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=1718364217; x=1718969017; 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=NNoAeFpgpot9PlqTvrcYpVHVB/EX9TP9G92au2hioUA=; b=T0ZX7audoLJvvNSyRn2QhKuyIBOubO0rCHu/IJA/CcxdwHd/AzaKaZow8bjXTsDgQ2 iOn9vRblsKJGlpxJg4DkG23WKQyfnJOw9P5ISOLGN1EcQcOlqsIEKvFYQsvJleoNU2O/ mN01aFOVrde5At87jcWYSkC+H0LH43i8RrAfWdBstt0SwL8wfBIstYDC0+5nEjaGwS2F 3Wqh/bOP2e+gZoOAtS81p6bEk5+4rJTQbR38xD//Rg7BlpZ4Jyp4k/sazOPL5jOHUah9 td+y9WqMR4cSo/CKev4TTLUO9rQI2lEsARoGS3b6CD7RTQKXiXLjoXHmJ/c96qScG1dr K6fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718364217; x=1718969017; 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=NNoAeFpgpot9PlqTvrcYpVHVB/EX9TP9G92au2hioUA=; b=ds29yd3ZghizFVYNTdyLyPOdk7+NWZ/XATkS0tTkrS0e51yiJJJQwPUDYxpiOCrpVn 60rGLDK2Ecf6dTO8HG99t5M1hSgwnR/Q7ngb2GpqMkRY0QfdN7uEda+qpqH29zXj/VPX SHpSkrvUkS0df+8f1o+hpsdbnSVwRGR7ur32IREOGuzKRZZFbQ3JBt9GM1NpYELBF8lJ hDfEnQaKKNVilpn0WhMILWfm2TOOpxQgbTHK3+eas9idHX3WgHYpq9LL0PzNhWm+gVK/ Vq/3TNEpA33w0sD6zv5FvF5J3ndsA9dK6u7ZTut37dg4EneElCNH27+MAjNo9Bs9qUFT F7uQ== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCV1GzTqOM0/Wjmmz0IR/4fkwFMTKshi3MvL7qGWB/OMghnSasl5mQGa3OofP20nWlw8WIZtVfSU1p3UMzTjYQy1Vrf4xqs= X-Gm-Message-State: AOJu0Yx2XJVNAytfo6wxgQNf1DhXDaleXv3xdcFg6R2EN2gfwq4P5JO3 FZH+jMzAMlD9COl7Xze6vKpjmD8X+67V8kIvRAVmYjzEUxcJYKAu X-Google-Smtp-Source: AGHT+IGdEycxDasOFa3f8jtL7YVT4MDxdi1E2ncbQseBqRH/zvYiYrYdRr84gLtDtMcKc4B9zPkbzg== X-Received: by 2002:a2e:961a:0:b0:2eb:eb11:199f with SMTP id 38308e7fff4ca-2ec0e60dd4amr14309441fa.51.1718364215352; Fri, 14 Jun 2024 04:23:35 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:3b0c:b0:421:7e41:1878 with SMTP id 5b1f17b1804b1-422b6cce65fls9571285e9.0.-pod-prod-07-eu; Fri, 14 Jun 2024 04:23:33 -0700 (PDT) X-Received: by 2002:a05:600c:91e:b0:421:f04d:ebd2 with SMTP id 5b1f17b1804b1-4230482fbafmr24494045e9.22.1718364213390; Fri, 14 Jun 2024 04:23:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718364213; cv=none; d=google.com; s=arc-20160816; b=TtPasHq6kEm7AQh5zsykKDO3NmtiFEddbEVTSvGRXatBTcteNtL/peoEZr+dw9kOsW mFeUr6kMAyd94IOWRqjVT1VRT173MFd0jiVnaa2NQkfs8DRgGgCATgds6WvqXUooYeJv JZDDYAuw9BPyn+0266UDcJRLtAdGD3W/k8kozL/kycw/tqw5ECHO1qjlIXFobN3HAKRC PjbCViQnFt3EvfCiVOqDiqLGF0yL0HU3NZZavpkGvYWZSo5CiGNzblG7ALU+mBpVnp9e SFnJWGhF1F1d/mki+cuRSXGF+KZOTmRdgxnvjJrNGeZYKn55sh5jX7WPZTPvUBZxZOEa 5Ydw== 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=0SU5zPPv3JcFIhQgu0JLLqaIWm8S1xC+iI3FmL3z8oEugAp7CMKkPgg5JsKY7/l0XA o1HnjNvO6KFIxQnWWFmtHMVwRnOTe4kw7zBZqg2YiV+x1EJzAkL/WgsDQTzSqaEZ+ruB MAUsQ70mqM8N682cNOfI34ZRkEtTxNwh/N2d207mjCBmrSqyhzejx2ah4Bn4iN7xCmyi njE+dSKBIb4FyUnQN5ZXJpf2sDCFBD0+sjbi9w3nyACLQCVDOrpJs5cO3El6g+Hgt6nI TlLw6iR6YVmslNUXgCn8RS/WwaNhw32fno2AXe8JgqCCKW4OS0o/VzBoRZQJm0/Ad8PB fd2w==; 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-42285317d3bsi4210915e9.1.2024.06.14.04.23.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 14 Jun 2024 04:23:33 -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 localhost.localdomain (r154-240-38-77-broadband.btv.lv [77.38.240.154] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45EBNRq5031631 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Jun 2024 13:23:32 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH 4/5] CI: Allow external usage for some APIs Date: Fri, 14 Jun 2024 14:23:19 +0300 Message-Id: <20240614112320.122428-5-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240614112320.122428-1-amikan@ilbers.de> References: <20240614112320.122428-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 Fri Jun 14 11:23:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Mikanovich X-Patchwork-Id: 3605 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 14 Jun 2024 13:23:43 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f55.google.com (mail-lf1-f55.google.com [209.85.167.55]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 45EBNhvs031704 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 14 Jun 2024 13:23:43 +0200 Received: by mail-lf1-f55.google.com with SMTP id 2adb3069b0e04-52c8126f372sf1503972e87.1 for ; Fri, 14 Jun 2024 04:23:43 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718364218; cv=pass; d=google.com; s=arc-20160816; b=UbzVWWiEKIc78OyPhQ6VNx2kZ7/rqIpkhAVlSevt9yxVMWEGD7MZisCyGDWSxGZ2Rz eYImFni+RTTpK/MR7+RFsa2pyyrufigmTqifS4m+i1gU02FFgdnS716xso/T+FzARwdY tsgNIwld/qMPHwmycmO20KJ883Iek7NlbgvV1zD0qwfaNp/F40BO7LvvPxLFUgVSyrtM TixEAbdnGFqqstZncuGQ3Kx2adSoc9gcer38nIgAW6w9smSGMlreIKnXR51TbDcKO2W/ UdqRPSbsV9Y5SoYhjGBc98odNKEOrtQuhdHxEaAaC+tk1Zki3KNBA6lVxMq5+kfQJHMm jrWA== 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=fS/MJ/6UXV8OBw1ZTrIUzLFKcrGmtHD0DBAgMvM9xSA=; fh=ppoi3Mdi3UiIGys1+6M5QB77TzaOiQ1CnLr4Yg6crlU=; b=YuEYJ5FbnUl4EPFFVDAJH/uek5UVA6+cDplK09O+/2t/XJj5pM9IIrYjPSxtis04op njGhJCTdO9tbFBtZq3T3ast1npQG0uOggtDreQjQKFsgFekD7A0bfmhiz3A1pPAJsHw/ x5FFIcT8UVEPX83HTp8apSab0EbEVM8d8RlzM6qqm7Pfnfa2rSHdaryYoAeRGZmaG8QQ kFHRdXNscRBLg4JoH0/JH2v+4oaf/Dg+LzVOTzSbKuJ9Zc3HrLcNwJITO4dyT45pgkWP 3CTbbXEXbEFKM96hjYrs8uccws5Oxfal4ofKS4v5ztWci0sPRls2/l27dGVV4XM0VQNa j8gQ==; 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=1718364218; x=1718969018; 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=fS/MJ/6UXV8OBw1ZTrIUzLFKcrGmtHD0DBAgMvM9xSA=; b=H6baAUDgZDpufnu28UM6jCyfTTQZjuHi20xjuOdXOs3tvW2HpD7Bqghi+n3Vctwdnj tOay1aOgfB6x3rqxpPf4R9ICMLA13Ovwr6yqXq+atKGVIngYx3QFrndph4akU6ROIJsu ZpgmO3cTY+9rUlMbihuaRM86LmtUcrnfi4fJkDkbB4nGU6HFJXnSAWrbGtDaXtXMlH0J WPGfPJIatdZcjNh3b7hMp0H1eIAKvHVlD7MWbBiHbA7UUs3fPTWGOJwNF4EUthU1aw3+ CfvUek/JXStTq+QJbZzBv7d5vNeINO0mN4Mt6aaX6UkmeLETB/zl0rS2RbMGHFWOeKbG CDAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718364218; x=1718969018; 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=fS/MJ/6UXV8OBw1ZTrIUzLFKcrGmtHD0DBAgMvM9xSA=; b=PcTy2r9z63J9A/VH9NDvpXR04mVDH1W7VIpQS1Dhd0YbaoOOsHywNEswrTB/W2m8JH B6yJJ0bChlBrqwSP/oiwFnzsRtW4/sJIqwXDm92ywoCNodbmOcNA404hVdtZKkDOZm1W D0dKZI8b/8Jduj5kvOlgu+XtZGLttgsVZpBOR7cOSHtc2Ke/wbwYHlBKZ/ZyrQfXhn+2 c7nVFD26bjfm/PlAeTytH/NWiryiJNdSi6FB8a3GbQX6qiyenRojyOwVgEk8CjU8gzSW cE/2cx1tXfv5p81b0NKeWqJBC7GhUL2/qSL75xORgsm//3h9yc0gSmllvzwzOLHHGj7H 15sg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCWEzAUSEl4ouOQYdKVG3t8Mc/ucKxtWRQYOs2bjG3HGpzBPX1ibA5VIo8WXpki5CLUROjs6sk+vBkUeZ6bi7i4TtF5xq0A= X-Gm-Message-State: AOJu0YxHDjmhr/AXnLLwLI37KP/6GHccTLye4kf/eY7DuyrBWw6HGjJN wveFiWlSky0UZ+bZp43M5eDQqvQeVyasBuWZFkX35Vnl0Hu9LCWN X-Google-Smtp-Source: AGHT+IGN93rpZszJDRQxJunVdDHQr9Q5tmEJEFgtXpjQHK1twr/YLSc2zwZgd/+yEfQBFtwLl6dMyw== X-Received: by 2002:a05:6512:3702:b0:52c:9383:4c16 with SMTP id 2adb3069b0e04-52ca6e65221mr1523235e87.22.1718364216544; Fri, 14 Jun 2024 04:23:36 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3e0a:b0:52c:a105:90f8 with SMTP id 2adb3069b0e04-52ca1059363ls1281103e87.1.-pod-prod-07-eu; Fri, 14 Jun 2024 04:23:34 -0700 (PDT) X-Received: by 2002:a2e:8012:0:b0:2ea:e773:c56 with SMTP id 38308e7fff4ca-2ec0e600497mr15120671fa.35.1718364214404; Fri, 14 Jun 2024 04:23:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718364214; cv=none; d=google.com; s=arc-20160816; b=jVI2pExTuUEHvR3bhUOb/ZLu2hbsMBiq6r/mllXKzVmKtvuzEWqyk2EnhLS37e4z7x jyQSCPj2XWLKrCYX5/umNlChdcOEUjvvjHOMpSEG72f2fUlDpTyZ2wyXT/gk6FWx0FPC uq5451LcldXfDvjT29kM9S3qmjFcnnCbcCjKbn3QqTexvwErmuKB515E1Pha1Orbc+hc gdrpTZXOYjrtUeqkBGnCCDmvbObYP6DxOykLY/y+4ZjuOZ18NpfhyoccKBSs3/8YFuuj bLG1jwXJO8wBsxwMX70owiGQ0hRtnYxi5EI7ewEDVhV6EGdhOAh2QGkPGusD78iCXitq W10g== 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=GVCjbRWHhxxgCo1UO0sD/Be/E7UEUT6g6RataTfCqTU=; fh=/h9QQkzJ8EboVkWg45aWwpaUro6WMavIVd2OhN45RtE=; b=yHPXnOcdQkhcoCQWSCg/QJvx5KxXRnouIEIC7bxmlniUo2Df0cIE3ddW7VYvqhHECi x/R5Aqg5dkp6ZkhoI43FU9UsIJoub/T8hrh+/rQHce5OTCZX2TG8/2kwR4UOp1pjUl9u BCJqHv4xqsde7lo5yF7KjJv/3FXtHsKbFd6HAVKizW3uzzOyHfTkEZdI+qLItk7XUTTA spRv9Lo1x1VTYTGDpi9bqdJh5KIwDJBcj+hNsgumc1mjYmrten1GGa3beVphrYUZDgQJ TQKfzssYSDByPUjJxV0U1XNltXCnl0xZ3QjvVM2lcwA++EW83eNRJQPN6EzQ+3/fe6fI e+PQ==; 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-42284b0a6c9si3132145e9.0.2024.06.14.04.23.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 14 Jun 2024 04:23:34 -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 localhost.localdomain (r154-240-38-77-broadband.btv.lv [77.38.240.154] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 45EBNRq6031631 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Jun 2024 13:23:33 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH 5/5] start_vm: Reuse getVars API Date: Fri, 14 Jun 2024 14:23:20 +0300 Message-Id: <20240614112320.122428-6-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240614112320.122428-1-amikan@ilbers.de> References: <20240614112320.122428-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?= 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 | 47 ++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py index 45e509a7..ada13121 100755 --- a/testsuite/start_vm.py +++ b/testsuite/start_vm.py @@ -11,43 +11,49 @@ 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_type, \ + 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') 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 +63,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'])