From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 21 Feb 2025 16:49:03 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f55.google.com (mail-wm1-f55.google.com [209.85.128.55]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 51LFn2r3015930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 21 Feb 2025 16:49:02 +0100 Received: by mail-wm1-f55.google.com with SMTP id 5b1f17b1804b1-4393e873962sf11773685e9.3 for ; Fri, 21 Feb 2025 07:49:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1740152937; cv=pass; d=google.com; s=arc-20240605; b=A/js7bM4DxTxjdvfwR8ASWpGtdNhY4mYNklFTRX/Rcmjt79SJKDX0qpPUjR2ZRvgMP NNACUolSeI0iGQaVzEtONaEE02TKG3xFcwF/uom0eGbg9Xsv5OzjVzRvVNac9THFjPrm tLewjl+5BiEgHFBTStlG2xr83ycy64HBPhlsrcM3Q+gaCJCUfJ0guMKQS3jap+EPfyAM 8z/KRCf5kyWN2hZx11L/36/8Vzshea6VlqiU0ez3hMu2coRuMiALHPRo3m//4mZsmX+q /n8O07P5pIrBrGtk9pp2ahp9AxCEctMVJVgTxwTrRQDqZPIyYdGlI+gw3qovRZj8Hea1 z4jw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=kax3d4Ums4ZpjKCLs3L+nQU+C9x2sTz0hLyymbgxlZE=; fh=tdW1AokKLefYxvBtzMEXQRMgBgKBlXK9E/AcdRvfYX0=; b=LfcRwytl4alBvCbLkXdtDevKSPQ2SsvyuSYQwzCJO4y1pv2HFojUb+hTs+zV+GXuBK bUqTY4YuQENOgf6tVBGsJJt5Azn++GJ17BM9/h+5hTVPKhtUQ75Qa2hBFkKyLqXkCQdO MHHzXS7NRxfFKd1662FAkUMPwIVGXmRyrwTQUzWKV0ADazqtV1SUt/k0n/wJmhPEDAsP e8gmAHZ+08j6/ZfLQCmRIspJ5CxwqyV3Etb3Pu6uNK+Ydk8hQE2Y9Tt/OC4RSOxW6wbR Ejakdx+D5PfQOJGMvsxKLi2UqXAIrAvMfgmurfzRRspmXBZ1cYSqkBdhBqnJS5HA/CCx brhw==; darn=ilbers.de 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=1740152937; x=1740757737; darn=ilbers.de; 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=kax3d4Ums4ZpjKCLs3L+nQU+C9x2sTz0hLyymbgxlZE=; b=YUQOhNEDYweLOc+v8Ag2GmVkX+5tD1mLrA4rvetASYVTDgX0NIA9NkFej7eU8K2I9x sFf90Hc3tjpoMvkShM3kbEDj/AO1fe9pC9p89VeAq1XxdMTw7t2ae3QXK3jlbwEdzu2q iHnbdTdfqGRDXDSH3uIXwq8Mk2Fgyn/MxMlDMf2K8GZKI4ubSBqWQAlmJuDoTqqd6sZh mWCbZVKJBAPB8ZZEfxQ1l7tNn0t7LDXMXndWSVdmOL0MpiBAb4l35MP2EIJNv+AH/7jD I3MTuefn6M3Te9VMPZFjBXmGRpxy+f+UJxQUV9OUZ8ew1USEsBc2gd71hfku4YQ0AHKI xq3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740152937; x=1740757737; 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=kax3d4Ums4ZpjKCLs3L+nQU+C9x2sTz0hLyymbgxlZE=; b=fcm/rMnmO0wq9ZabhUjyP1qfpjxNuuAIT1J+yk8mPZau+BxZOFmVndmAFP2U/sKgiB 2b697NtRXoVsF4D2y3YMr28E6PpFpmhbRD3j6/xAQkYxgGbQkD/BKuZ2DyGzc5phyWRg v0xrJx1zUliOS0P62WzaAwyl3P9A+V6T6ng+B5HzIP+2NcpsJF/yKLG8UxHAWjhDepR+ YWYFKJwv/83E6mZ1mhVGqc7ASp/WI1PcrBgoGSkiuO4Z1d9nvZklTVTaDymxes5i0kEp z+vwI5Sw68EZCX6Bryx0zdRlMsU1M5t7stixfuWcAqS9w9XrpOSMBs0i7lI4Q5x4+P9+ ZHMg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCWWvtsHTgkoN7/HN11050oOYnR9hgjiErQ932HxGvp6701FP0WvTElTLOkjlMNWDxMkXcGx@ilbers.de X-Gm-Message-State: AOJu0YyzvqnSMAAlnOl+1id5abXh+46xNXlu9Ok9dDUpSywE0NFEwa16 5wvoXQ8sPEtb0FOqIsGpcE/vJcZ2LFkuxGRaite/7rMcZhwxRra3 X-Google-Smtp-Source: AGHT+IFiDG1ZQJsTmn5/MiYY6rXqbFt5B3KaTiIOCsa6WArQPAQKzI5d2NRSrrCvPyEEv3SpUVUN9w== X-Received: by 2002:a05:600c:46c7:b0:439:86fb:7324 with SMTP id 5b1f17b1804b1-439ae1d7e16mr33430565e9.4.1740152936466; Fri, 21 Feb 2025 07:48:56 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h=Adn5yVHe3rFd3pC/Bg3KvgZLqOVxDst+YDKZodKUEIIyjBqG6g== Received: by 2002:a05:600c:3550:b0:439:9744:6876 with SMTP id 5b1f17b1804b1-439a285722cls8576395e9.0.-pod-prod-04-eu; Fri, 21 Feb 2025 07:48:54 -0800 (PST) X-Received: by 2002:a05:600c:1ca1:b0:439:a4d9:34a3 with SMTP id 5b1f17b1804b1-439ae1e6619mr32791645e9.12.1740152934225; Fri, 21 Feb 2025 07:48:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1740152934; cv=none; d=google.com; s=arc-20240605; b=dU2yEZ+Xv30dtgg6tvnirP6ZbMBy5ChU6tpKgZdXs1Q/4dwsVY4ySZVGZ8evk4tiP2 +xOMT3uR9DyvhNVip590EnqEC+Nfvwb42RrL/1L/Vor8L+pdzcaOy4H8T4E9kEgFtanD /vjCuvNcSVmPQvCyjlC9Rc3tLvPgUMZ1ObzQz4vJJMj9MTZv07082Nju4ebZ9djPYK/D znyn0BxFqe3VJ0w9bPi/kGALZ8hHHHVwassfAksIcvhkSgOFbx849I6LJdrM2cH+zr9J 8S55aiBLUWlaoqyLs/PM9VZv19UVrDncVWAliHpeiak1tNcuSOQNFg9/Kp22FMD1inaU PeZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=UegNh9q4K91GF8M0+G8xMXWagH/ZT67+iEkAZhtlmyM=; fh=/h9QQkzJ8EboVkWg45aWwpaUro6WMavIVd2OhN45RtE=; b=Wnl7drQaJPPRN+ZMwHIGsMIKYPQITnABsVN00PC/VqtZ8EHz2nXJJiBb8N0+O9erqr +44aTeszS4RB7M5Bd5TFsrsEXQvjEfpdJ2yT9xXBzNSPbAugglDMo9s2c66jqxw+U1pn iPwKWU33NIKX2VPdUpfH+4jpHc38Dlh7LTSMsHHTBT3nzXgBPIFMGs1Ym8zLden7u1pA DQM632NvN0CX6T8P9gAYf35Mr+uRA8M86jT+hKIQfiqhO+0CFMflGx0YVFcCOF4ljIaI T4V5o1zIs9mtc6YbQxi3XqJyfIqzse0HZRd/2KguTMfvyx40d0MQNMvODuYuPjrUps2s jlYg==; 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-439b0131a99si350095e9.0.2025.02.21.07.48.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 21 Feb 2025 07:48:54 -0800 (PST) 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.123]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 51LFmn2r015858 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 21 Feb 2025 16:48:53 +0100 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH 4/6] CI: Add essential packages rebuild test case Date: Fri, 21 Feb 2025 17:48:41 +0200 Message-Id: <20250221154843.515037-5-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250221154843.515037-1-amikan@ilbers.de> References: <20250221154843.515037-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_DNSWL_BLOCKED,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 Content-Type: text/plain; charset="UTF-8" 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-TUID: jjtS+hQckfpZ Rebuilding of essential packages (already present in sbuild chroot) was not covered with CI before. Add a testcase for such a fuctionality. This test case also covers f62de679 change already merged. Signed-off-by: Anton Mikanovich --- testsuite/cibase.py | 101 +++++++++++++++++++++++++++++++++++++++++ testsuite/cibuilder.py | 4 ++ testsuite/citest.py | 25 +++++++++- 3 files changed, 129 insertions(+), 1 deletion(-) diff --git a/testsuite/cibase.py b/testsuite/cibase.py index 075535b1..c692719a 100755 --- a/testsuite/cibase.py +++ b/testsuite/cibase.py @@ -1,4 +1,10 @@ #!/usr/bin/env python3 +# +# This software is a part of ISAR. +# Copyright (C) 2022-2025 ilbers GmbH +# Copyright (C) 2022-2024 Siemens AG +# +# SPDX-License-Identifier: MIT import glob import os @@ -359,3 +365,98 @@ class CIBaseTest(CIBuilder): self.fail("Source packages are equal") finally: self.cleanup_tmp_layer(tmp_layer_dir) + + +class CIEssentialTest(CIBaseTest): + def init(self, pkg='sed', dep='enable-fsck', **kwargs): + self.__pkg = pkg + self.__dep = dep + self.__flag = 'isar' + super().init(**kwargs) + + def perform_build_test(self, targets, **kwargs): + package_targets = [] + dependant_targets = [] + localapt_targets = [] + cleanup_targets = [] + rootfs_dirs = {} + work_dirs = {} + for target in targets: + package_target = target.split(':', 3) + dependant_target = package_target.copy() + cleanup_target = package_target.copy() + + package_target[-1] = self.__pkg + dependant_target[-1] = self.__dep + cleanup_target[-1] = 'sbuild-chroot-target:do_cleansstate' + + package_targets.append(':'.join(package_target)) + dep_str = ':'.join(dependant_target) + dependant_targets.append(dep_str) + localapt_targets.append(dep_str + ':do_local_isarapt') + cleanup_targets.append(':'.join(cleanup_target)) + + rootfs_dirs[target] = CIUtils.getVars( + 'IMAGE_ROOTFS', target=target + ) + + work_dirs[dep_str] = CIUtils.getVars('WORKDIR', target=dep_str) + + self.configure(essentials=self.__pkg, **kwargs) + + cmd = ( + "%e dpkg-query -f='\${Version}' -W " + f"{self.__pkg} > ${{WORKDIR}}/ci_vercheck" + ) + sbuildclass_file = self.set_sbuild_hook(cmd) + + try: + # Build local isar-apt copy + self.bitbake(localapt_targets, **kwargs) + + # Build package for target + self.bitbake(package_targets, **kwargs) + + # Cleanup existing sbuild chroot + self.bitbake(cleanup_targets, **kwargs) + + # Build other package + self.bitbake(dependant_targets, **kwargs) + + # Ensure updated build dep used + for target in dependant_targets: + check_path = os.path.join(work_dirs[target], 'ci_vercheck') + with open(check_path) as f: + ver = f.read() + if self.__flag not in ver: + self.fail( + f"Package {self.__pkg} of version {ver} used for " + f"building don't have {self.__flag} flag" + ) + finally: + self.restorefile(sbuildclass_file) + + # Change rootfs bbclass and rebuild + layerdir_core = CIUtils.getVars('LAYERDIR_core') + rfsclass_file = os.path.join(layerdir_core, 'classes/rootfs.bbclass') + self.backupfile(rfsclass_file) + try: + with open(rfsclass_file, 'a') as file: + file.write('python do_rootfs_install:append() {\n\n}') + + # Build again package for target + self.bitbake(package_targets, **kwargs) + finally: + self.restorefile(rfsclass_file) + + # Build full image after all + self.bitbake(targets, **kwargs) + + # Ensure target rootfs use non-updated package + for target in targets: + ver = self.get_pkg_ver(rootfs_dirs[target], self.__pkg) + if self.__flag in ver: + self.fail( + f"Package {self.__pkg} of version {ver} used for " + f"installing have {self.__flag} flag, but shouldn't" + ) diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index d335dbe8..5aa64e31 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -109,6 +109,7 @@ class CIBuilder(Test): source_date_epoch=None, use_apt_snapshot=False, image_install=None, + essentials=None, **kwargs, ): # write configuration file and set bitbake_args @@ -155,6 +156,7 @@ class CIBuilder(Test): f" sstate_dir = {sstate_dir}\n" f" ccache_dir = {ccache_dir}\n" f" image_install = {image_install}\n" + f" essentials = {essentials}\n" f"===================================================" ) @@ -216,6 +218,8 @@ class CIBuilder(Test): f.write('IMAGE_INSTALL = "%s"\n' % image_install) if fail_on_cleanup == '1': f.write('ISAR_FAIL_ON_CLEANUP = "1"\n') + if essentials: + f.write('ISAR_REBUILD_ESSENTIAL_PKGS = "%s"\n' % essentials) # include ci_build.conf in local.conf with open(self.build_dir + '/conf/local.conf', 'r+') as f: diff --git a/testsuite/citest.py b/testsuite/citest.py index ee965278..9e2c1b43 100755 --- a/testsuite/citest.py +++ b/testsuite/citest.py @@ -1,9 +1,15 @@ #!/usr/bin/env python3 +# +# This software is a part of ISAR. +# Copyright (C) 2022-2025 ilbers GmbH +# Copyright (C) 2022-2025 Siemens AG +# +# SPDX-License-Identifier: MIT from avocado import skipUnless from avocado.core import exceptions from avocado.utils import path -from cibase import CIBaseTest +from cibase import CIBaseTest, CIEssentialTest from utils import CIUtils UMOCI_AVAILABLE = True @@ -400,6 +406,23 @@ class SstateTest(CIBaseTest): self.perform_sstate_test(image_target, package_target) +class EssentialTest(CIEssentialTest): + + """ + Essential packages rebuild test + + :avocado: tags=essential,full + """ + + def test_essential(self): + targets = [ + 'mc:qemuamd64-bookworm:isar-image-base', + ] + + self.init(pkg="sed", dep="enable-fsck") + self.perform_build_test(targets) + + class SingleTest(CIBaseTest): """ -- 2.34.1 -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/20250221154843.515037-5-amikan%40ilbers.de.