From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7044859904479199232 X-Received: by 2002:a05:6512:2111:: with SMTP id q17mr1582507lfr.285.1640259267885; Thu, 23 Dec 2021 03:34:27 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:651c:1a0c:: with SMTP id by12ls27681ljb.0.gmail; Thu, 23 Dec 2021 03:34:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJwuNQTxYAN22zocO+UJzopmRCcSh8hwSib3ltlA6mQTTrs9quo7C4RaOUvWxykDYIfato/W X-Received: by 2002:a2e:bc24:: with SMTP id b36mr1461259ljf.54.1640259266859; Thu, 23 Dec 2021 03:34:26 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1640259266; cv=pass; d=google.com; s=arc-20160816; b=JLEQ33gspd5Vreq34H4xzM4NLXRuLP4q/r4fyZh13QhWTC6QqeaJCxgs9mQ6IpNIW1 eq7771cwz2rcGIEN/CaYvpCUMXKzZLwbWmtGy1WdlFCoV3HMkK6dMmFEPXJJ0MjsJ9Oi dTRUi6eLK5gHs9qbzB3jlZp5BHXXjuqxqrtMinZpmvJ4TIJbMjbSW5S0HwOwy+pQmnco F/vzjh/92i/skKpDnzBjbAUcDoyJ5/4+LOCrEmrWslPc3RT06wOr88QAC24k3CmdVx04 IW9s8b7CPxhq1PHtVZ8MSbdX8bHHAWQAfQlKVGKzoO/rONncQrWlh7RwbnqRrrS/WY+1 xSaA== ARC-Message-Signature: i=2; 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:dkim-signature; bh=DUlE+R60CmhguzRUUSst2F477qvOT8UBpTAoFjiL1OI=; b=TpXgyQt/LBM9g+DJZPCwNdFjTGS1zxoWdKf9TIlwS8MNdDR6QVXhDEEbn/rJNAHnED 0vb4fRmJjrd0ugjkjuxB5m0QP7fQtXg7sBzAfcPz1Bh2+/68nS02p5N7t2cQ7fP/1fyg HCmUprs1c/jpxOjsUyIVLCwRNipQiTs/nPFiySAi8wA0flR6IGLgvbLDcmjSH56LB9SC XERTBW75ZRnSDjStN/yNZjtXi87wIRJNcBG4ZTkUiMlp5txmetxIVZhPUSa3feO/+dVQ osKYRNl4GabqPkD5H7YPsYGXZ5DigmuQmsI0QiiiQcblfeSmpFRj55v0fTdF0Syio8QW xNVw== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=PgBkMCCN; arc=pass (i=1 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 2a01:111:f400:7e1b::612 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20612.outbound.protection.outlook.com. [2a01:111:f400:7e1b::612]) by gmr-mx.google.com with ESMTPS id b7si258757lfv.5.2021.12.23.03.34.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Dec 2021 03:34:26 -0800 (PST) Received-SPF: pass (google.com: domain of adriaan.schmidt@siemens.com designates 2a01:111:f400:7e1b::612 as permitted sender) client-ip=2a01:111:f400:7e1b::612; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=PgBkMCCN; arc=pass (i=1 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 2a01:111:f400:7e1b::612 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q4KPsKq4u15FJIhN0k5CHub0WaFHusV4H+qpi6JjtaAM68h3fvOOzsYrnY5pLN2b91OS/YOESwIqQe/qBdEhn8TCGMHaHDJaRj5IhSkZC+0nbEm9TKUdcr5tn8RcW37f1ZknoccLMiuRVCZBIM0NjSJqkd5nDhe6nPZqsiYwrqXHK8DMh3ZMPbkiKwHWHRayFPBrxhaXuVVspiSuVe/3jOo9cXNk1vxkG+16CBMxFBMCfzChi45MkRjcfqvVHENnykcY+puXxbHCdeYDJwGLAQIF47cuiflEnk0a7o0qMLZse5tDexpD4NzrUKNfAjQwuTDT0LwrIaHmeUjcOapvkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DUlE+R60CmhguzRUUSst2F477qvOT8UBpTAoFjiL1OI=; b=GjMBGWjMZYm0SLvvJi+XZENxg/GxMFlwSXnHdMOjwFseX051T6hVXdGGoiLLlURC5AA0nFbDqTclOf7IkWWh1wFTL7RC6s9ROk//DRdEXNC/rw0mQyJr0gl+7vQ4wAtmms7a4+LWetAAdI2GRRAidSC+EMqF0tv7p8hrHZ+qjxpVxnpg8C89630L2lIbaKwcSFDmpYPAPa3mvK+/XCxxLhk36jOvqIvlrK/iniX83sQ1OxnBgX3VfNJxdKYrzfxiIMkuNso/oPBzaJKMVHN8SGVVeo5uefwZVLsV7oUbuQPZ9bWxy/U1FgRJtJErz2gbRQY/BtLJYa9tN8V5dZWQ9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 194.138.21.71) smtp.rcpttodomain=googlegroups.com smtp.mailfrom=siemens.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=siemens.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DUlE+R60CmhguzRUUSst2F477qvOT8UBpTAoFjiL1OI=; b=PgBkMCCNDR8Jf/0/jXuqNOowIY1wwlB3IrMLxoy1/zlNtsEdOUy8/cEZZSM82esYHdMvZ7/y3U4Ko37VGlLz2WfHj4NSRR+kVrCbAR3/jyx4Z8bFgNxJNndSRFugTaZad2iotYjOupdJH6t4SLsvQ7yj+B9mPqxGtZZs+ss4ZhFLYsNrXJHiXTemzOLjYPGKd5cZzqFPe0LXEV9nXTXJxJbJoGxO/FKR63BYAjQmtIKgKZPXOf50UPTBIQ0t/Lwduz2aO9A8o/Z7l7wP0k/LW83QX50bxrKkIY54uV9Zplhp9iAPhNfORHcJQT6ifjsSKmXQq8mdAeqWYONnuMI8QA== Received: from OL1P279CA0067.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:15::18) by PAXPR10MB5072.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:217::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.19; Thu, 23 Dec 2021 11:34:25 +0000 Received: from HE1EUR01FT011.eop-EUR01.prod.protection.outlook.com (2603:10a6:e10:15:cafe::d2) by OL1P279CA0067.outlook.office365.com (2603:10a6:e10:15::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.16 via Frontend Transport; Thu, 23 Dec 2021 11:34:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 194.138.21.71) smtp.mailfrom=siemens.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=siemens.com; Received-SPF: Pass (protection.outlook.com: domain of siemens.com designates 194.138.21.71 as permitted sender) receiver=protection.outlook.com; client-ip=194.138.21.71; helo=hybrid.siemens.com; Received: from hybrid.siemens.com (194.138.21.71) by HE1EUR01FT011.mail.protection.outlook.com (10.152.0.173) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4823.18 via Frontend Transport; Thu, 23 Dec 2021 11:34:24 +0000 Received: from DEMCHDC89XA.ad011.siemens.net (139.25.226.103) by DEMCHDC9SKA.ad011.siemens.net (194.138.21.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Thu, 23 Dec 2021 12:34:24 +0100 Received: from random.ppmd.siemens.net (139.25.68.25) by DEMCHDC89XA.ad011.siemens.net (139.25.226.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Thu, 23 Dec 2021 12:34:23 +0100 From: Adriaan Schmidt To: CC: Adriaan Schmidt Subject: [PATCH 2/3] sstate: add test case Date: Thu, 23 Dec 2021 12:33:59 +0100 Message-ID: <20211223113400.1123555-3-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211223113400.1123555-1-adriaan.schmidt@siemens.com> References: <20211223113400.1123555-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain Return-Path: adriaan.schmidt@siemens.com X-Originating-IP: [139.25.68.25] X-ClientProxiedBy: DEMCHDC8A1A.ad011.siemens.net (139.25.226.107) To DEMCHDC89XA.ad011.siemens.net (139.25.226.103) X-TM-AS-Product-Ver: SMEX-14.0.0.3080-8.6.1018-26606.007 X-TM-AS-Result: No-10--10.538600-8.000000 X-TMASE-MatchedRID: NEQO1yxmLJ+R+1YvDC+Nmujm5GlD//5KMyX8ACN8HHmcVWc2a+/ju0tc 8DbogbSEoxCLfriDzzgSz8d8dGtZzn0J7Gr0TEJ7Qo5w/Nw1CtC8GQW9yBIzImwTEruL9ObTd7m NUbprq0o1PUpVd+P33XQPAUDr6f+N8YMGIR6ZqjU65m9meG/WS0poqFUiXLoV+CjwEqX1p7kdLj iwtocA8u9FCyScBaYaRyqMLIj/WA3vZz0D12bDv7Bdb9rysz6qGKlsEGhTUO0rUvpNWR2DOwRsB MbTTgAP1YzbHoRn9L0Ey4w2ObexBy2WkJ5RtCc4myiLZetSf8kOJORD7ijQ38IJ+4gwXrEtwrbX MGDYqV8PXZPurZ0hS4S9mNAC+gilO2nEQWCfhUN3fM4w6QcL5LxmWKKTRbcr X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--10.538600-8.000000 X-TMASE-Version: SMEX-14.0.0.3080-8.6.1018-26606.007 X-TM-SNTS-SMTP: CDC9199F2F9C4F4C35B47BD375B5796F5553370CD96CE7C43C9476FDC2C190132000:8 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cacd970b-691e-4068-6176-08d9c6082c09 X-MS-TrafficTypeDiagnostic: PAXPR10MB5072:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zNGI1qvdybipTuEG2oyDGZIesP2VH6CyYjphctkzsI1YWSgZKhOfV2b+hQ5++8mT4ep2aO18KNfrFHNPD2vBnswh3YqPE97fNIBt+ZnjnWYrvJX/SkNTYvOxF9u4osd1mCQiNp9wqdqvc30OpEq4RutH1KdDLLUDmCi+MhC3p4PaIZCT+ShMPM9q7GQjOIgyImiMs6rShr91+ggBBVNNuaALurfvvqFYrDQefrSmgySFARPHQDMH3AwvoP/66W0UYk1yVfppOPwIhb6/FucnGBXPwAO+M3PvXF+TwNt2tyl04uhUG64hdAnVhYE1jVioUFo5r+rRTfNuHnZJiUMoMSRIT1T94DRVnvLW69KAWR7QeKhKRqzj236yGn2bsiSk0hpiuHSZgFZid0KogVNbA3gcyBmkfqPfQZwjzONTvjKoxjpigEPH4umEhw9/RHs8jDckqbxd9dDJZ945JBN9orHxTGD9/BSJx/mn6lu6gTYn21Gp8vh2BLdO92G1qTeq4o0ZS6pe6dav+s/igTG4rGBbG456HycZ0/Ag2HMoQ1tgX6vLVlPUtlrZd1pV7IRAWUYD67jyIlwVLIWm0cgDKqUluRsMXWRUYQhS9/IUT1d70r1u+nr6KKAkaAn+SFGeM+RqOcMe6X23E3xTipIRCkP4XWvOY0BVU77LUFqEVW1hQz9NXgooc5pWHv+YJNkZbdpPfyUGqr7caJ+3gz7r/aACkJt4NdR2EV9Uq7zevKH4f2SsuJQxh4ZQnDodlwQXIG1C/owvTkstXr5JUd2Y9BYyf/OOpBkBbtpjupzi/gY= X-Forefront-Antispam-Report: CIP:194.138.21.71;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:hybrid.siemens.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(40470700002)(107886003)(5660300002)(36860700001)(82960400001)(356005)(8936002)(81166007)(186003)(4326008)(8676002)(26005)(16526019)(1076003)(83380400001)(2906002)(70206006)(6666004)(508600001)(316002)(70586007)(36756003)(40460700001)(956004)(44832011)(82310400004)(47076005)(86362001)(2616005)(6916009)(336012)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2021 11:34:24.9672 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cacd970b-691e-4068-6176-08d9c6082c09 X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38ae3bcd-9579-4fd4-adda-b42e1495d55a;Ip=[194.138.21.71];Helo=[hybrid.siemens.com] X-MS-Exchange-CrossTenant-AuthSource: HE1EUR01FT011.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR10MB5072 X-TUID: r3NmoEUaMEuf The test populates an sstate cache, and then (after removing tmp/) rebuilds certain recipes. Bitbake task_order logs are examined to confirm that rebuilds used arifacts from the cache. Signed-off-by: Adriaan Schmidt --- testsuite/build_test/build_test.py | 14 ++++++ testsuite/build_test/cibase.py | 76 ++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/testsuite/build_test/build_test.py b/testsuite/build_test/build_test.py index d343a78..65ff6e5 100644 --- a/testsuite/build_test/build_test.py +++ b/testsuite/build_test/build_test.py @@ -210,3 +210,17 @@ class ContainerSdkTest(CIBaseTest): self.init() self.perform_build_test(targets, bitbake_cmd='do_populate_sdk', container=True) + +class SstateTest(CIBaseTest): + + """ + Test builds with artifacts taken from sstate cache + + :avocado: tags=sstate,fast,full + """ + def test_sstate(self): + image_target = 'mc:qemuamd64-bullseye:isar-image-base' + package_target = 'mc:qemuamd64-bullseye:hello' + + self.init('build-sstate') + self.perform_sstate_test(image_target, package_target) diff --git a/testsuite/build_test/cibase.py b/testsuite/build_test/cibase.py index 842ceaa..ae03aa7 100644 --- a/testsuite/build_test/cibase.py +++ b/testsuite/build_test/cibase.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 +import glob import os import re import tempfile @@ -86,3 +87,78 @@ class CIBaseTest(CIBuilder): # Cleanup self.delete_from_build_dir('tmp') self.delete_from_build_dir('ccache') + + def perform_sstate_test(self, image_target, package_target, **kwargs): + def check_executed_tasks(target, expected): + taskorder_file = glob.glob(f'{self.build_dir}/tmp/work/*/{target}/*/temp/log.task_order') + try: + with open(taskorder_file[0], 'r') as f: + tasks = [l.split()[0] for l in f.readlines()] + except (FileNotFoundError, IndexError): + tasks = [] + if expected is None: + # require that no tasks were executed + return len(tasks) == 0 + for e in expected: + should_run = True + if e.startswith('!'): + should_run = False + e = e[1:] + if should_run != (e in tasks): + self.log.error(f"{target}: executed tasks {str(tasks)} did not match expected {str(expected)}") + return False + return True + + self.configure(sstate=True, **kwargs) + + # Cleanup sstate and tmp before test + self.delete_from_build_dir('sstate-cache') + self.delete_from_build_dir('tmp') + + # Populate cache + self.bitbake(image_target, **kwargs) + + # Rebuild image + self.delete_from_build_dir('tmp') + self.bitbake(image_target, **kwargs) + if not all([ + check_executed_tasks('isar-bootstrap-target', + ['do_bootstrap_setscene', '!do_bootstrap']), + check_executed_tasks('buildchroot-target', + ['do_rootfs_setscene', '!do_rootfs']), + check_executed_tasks('isar-image-base-*-wic-img', + ['do_rootfs_setscene', '!do_rootfs']) + ]): + self.fail("Failed rebuild image") + + # Rebuild single package + self.delete_from_build_dir('tmp') + self.bitbake(package_target, **kwargs) + if not all([ + check_executed_tasks('isar-bootstrap-target', + ['do_bootstrap_setscene']), + check_executed_tasks('buildchroot-target', + ['!do_buildchroot_deploy']), + check_executed_tasks('hello', + ['do_dpkg_build_setscene', 'do_deploy_deb', '!do_dpkg_build']) + ]): + self.fail("Failed rebuild single package") + + # Rebuild package and image + self.delete_from_build_dir('tmp') + process.run(f'find {self.build_dir}/sstate-cache/ -name sstate:hello:* -delete') + self.bitbake(image_target, **kwargs) + if not all([ + check_executed_tasks('isar-bootstrap-target', + ['do_bootstrap_setscene', '!do_bootstrap']), + check_executed_tasks('buildchroot-target', + ['do_rootfs_setscene', '!do_rootfs']), + check_executed_tasks('hello', + ['do_fetch', 'do_dpkg_build']), + # TODO: if we actually make a change to hello, then we could test + # that do_rootfs is executed. currently, hello is rebuilt, + # but its sstate sig/hash does not change. + check_executed_tasks('isar-image-base-*-wic-img', + ['do_rootfs_setscene', '!do_rootfs']) + ]): + self.fail("Failed rebuild package and image") -- 2.30.2