From patchwork Mon Feb 3 23:48:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoann Congal X-Patchwork-Id: 56604 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 21734C02193 for ; Mon, 3 Feb 2025 23:49:04 +0000 (UTC) Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by mx.groups.io with SMTP id smtpd.web10.103982.1738626541005218649 for ; Mon, 03 Feb 2025 15:49:01 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@smile.fr header.s=google header.b=KA9vdnvr; spf=pass (domain: smile.fr, ip: 209.85.128.51, mailfrom: yoann.congal@smile.fr) Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-436a39e4891so34186015e9.1 for ; Mon, 03 Feb 2025 15:49:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smile.fr; s=google; t=1738626539; x=1739231339; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=YJi3JojE2kiCLaQ+RqJvttBtcC6pwcvQgGkxDhUvjnI=; b=KA9vdnvrCrYuuDLfhQGfEHhdkqq1Jvo9rqqZaqA7UtwnXJekaLFIq+ksFaM3UEkhRl 1B0YgmHAmNJ4/lkm/d0Svqv8RWrUarn6jckEtmGHl3TxEDZOXZhJyep+G+UgZZkvCk/q hNhKlxfJdXjsgOYZRz68AqJ+dHnKCoGTANcog= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738626539; x=1739231339; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=YJi3JojE2kiCLaQ+RqJvttBtcC6pwcvQgGkxDhUvjnI=; b=LynyyFilhNE8HCEoauhuyl0DxjzPqm6ds4LSKZ9bsl7l5Z6yLBfk+Bl4rObqwEQIo4 dpQftzy60bKf+j+PyIrFhuqqRB015doyqRWkEKIP5khOWgWEDeG7mhSCAqaaqHJFmrAb QXZavXrWo9uIjBSE9+PMLInuailkUPiASLfsgKmFMOIOj5qupNLWQLZ0DJffTPwW2UtT eRVTe+8jj5mxdlFpmAztlrlacRIs2A7YSDENU8/FXHWCgbN3fRPCKBdhgYwBsqEA+Gwx RkvyucRUNGT2CCGkCe6Arqivim/dyIq1MNze9Cl5UZSDW5r8hLJ5KtgamwusSYkM43Yw Escw== X-Gm-Message-State: AOJu0Yw1uIl3q1v9O+INW2MjbT8LNxqB+XG/3O0u3GUG3IgHVJO49wID B9g6UsN0U9QNZj25yT78LQaTEgr/88feHiHkRRXEafG6pb+r+hgYv5xd6xIvgfjUjKWsmyAzESE z X-Gm-Gg: ASbGnctlaMiqL+CkXv7MhxQA4DK0uHhk/E7JsD1F9tY5aq9dkSvsXrxaFMrUJNBFemU yQGbwvRmySnlRhBGqGgKkrgvoZEB1UWfS2qrY6p3HB7DDs20y2GHFL1ZUjCrqys5n0tefdj9ZCy SaCxrCxR1bV+CTilZK8WK9NEsxGJ3cHMERD0OPxhIWaOwbGMvVjoqe+1MYck08CEN4xZv8nCGCw FfscS/1zq927pw4o1QHwKEs37Gn1zQKCGSzJpwTLT7rGgu2SUwm6vvAnV93fxHwps9wWs7BLDIl ruZfRb0aWcC+d0BEUiwD28HSfLmlP7MPXFBR3x7hmtboNbxFC6fzwuDjZ1gfrjKP7wMWLpyKazp +lNIPjCAzkaLM2Shws9/rGA== X-Google-Smtp-Source: AGHT+IGFf5VLW5Oq6tEVLW7TRXmUKr+myLmLy3f0tTxTuNYlcPZdL2neqZ78v50tJHFmQ/3BN6Yh+w== X-Received: by 2002:a05:600c:198b:b0:434:a7f1:6545 with SMTP id 5b1f17b1804b1-438dc429291mr179913335e9.27.1738626538367; Mon, 03 Feb 2025 15:48:58 -0800 (PST) Received: from P-ASN-ECS-830T8C3.home (2a01cb000deef000367a1a7f22add27b.ipv6.abo.wanadoo.fr. [2a01:cb00:dee:f000:367a:1a7f:22ad:d27b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c5c1d0bbfsm14314537f8f.98.2025.02.03.15.48.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Feb 2025 15:48:58 -0800 (PST) From: Yoann Congal To: openembedded-core@lists.openembedded.org Cc: Yoann Congal Subject: [PATCH 1/2] selftest/reproducible: Move a comment to follow the line it concerns Date: Tue, 4 Feb 2025 00:48:35 +0100 Message-Id: <20250203234836.3635582-1-yoann.congal@smile.fr> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 03 Feb 2025 23:49:04 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/210745 From: Yoann Congal The code line was moved in commit 5a9a5ad6a7be ("reproducibility: continue testing in case of build failure") Signed-off-by: Yoann Congal --- meta/lib/oeqa/selftest/cases/reproducible.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index 3fb0e5ee5b..30eea2675e 100644 --- a/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/meta/lib/oeqa/selftest/cases/reproducible.py @@ -275,8 +275,8 @@ class ReproducibleTests(OESelftestTestCase): self.logger.info("Building %s (sstate%s allowed)..." % (name, '' if use_sstate else ' NOT')) self.write_config(config) d = get_bb_vars(capture_vars) - # targets used to be called images try: + # targets used to be called images bitbake("--continue "+' '.join(getattr(self, 'images', self.targets))) except AssertionError as e: bitbake_failure_count += 1 From patchwork Mon Feb 3 23:48:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoann Congal X-Patchwork-Id: 56605 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 208E2C02192 for ; Mon, 3 Feb 2025 23:49:04 +0000 (UTC) Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mx.groups.io with SMTP id smtpd.web10.103983.1738626541042596753 for ; Mon, 03 Feb 2025 15:49:01 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@smile.fr header.s=google header.b=s+y4i/qZ; spf=pass (domain: smile.fr, ip: 209.85.128.43, mailfrom: yoann.congal@smile.fr) Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-435f8f29f8aso36912855e9.2 for ; Mon, 03 Feb 2025 15:49:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smile.fr; s=google; t=1738626539; x=1739231339; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CPjs3UEwB3l8oKyXgobzjkXu+4/KLm7aJ7xS5FOaPxM=; b=s+y4i/qZjvMSurP+9aiwj1uSYfVa/FW21Lq+igqQ/QhQfu1U5yT7EoY+YAUJoa1gPE onmIkgyH8XwB7IM6KID21fkiGiZeb26RJ4mNnWmta95BqGoVgE5DMzk6V0lf6eyrwbm7 qX+NGh14DpRp1JPO2Fw/1P2VY2lXTRclx+044= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738626539; x=1739231339; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CPjs3UEwB3l8oKyXgobzjkXu+4/KLm7aJ7xS5FOaPxM=; b=RWGn51FXMmX4WApjhwsho6h7MVavdNT4KV+RE9QByRmumvOIbR842B9VmFPZ7ek/lT LgWULCW+eCKNw9XT6rZJm6cAWUVt1mHcvmeaXzDAli60CKe9htFRr7gdSkLCe0HglpzI J6BVmKn1hIcp2bmlaeaZTU5PDeI3gLqz/4e2+02RwvMenFWMdJ5bVtaiSZvqmAsnMpFK sC9wQBiB5RbJ+m33ppJWx00iBdmpuqMwBeYIzO9xpIaxXXAjcYEewmbep8iUUkTf6fl5 aNytoldTO+PV+zqDDN5qZoQ2pazzUjQzCgIf7W9srYUXZBIIZWFZ9bu8BnoaIIwr1DVO AZpQ== X-Gm-Message-State: AOJu0YyUtTd2yC4MOg3L7LyVK+l+ryFuT6CGbxAqSeD5Wm8HX7PI7Uur eRdy3904WkZo8Q7VMVsEm7OzdMdiP9ba0iz6xKkPUhhlDjfCK7LkORHDIJ+H0dzhv2q/VP42AWv g X-Gm-Gg: ASbGncv1PUJti6fLCNZYggFwjVPlcpkZ6MlXZIdEIB1++IkQS1AXALHR2z8OAk4yrLQ jMOFEEgNBVrhk0h8eKlpQdHE+fkvb0+tqxHRcs1OBsv0k1I6CFwtNq9UTv73oiyvyt3246HRkA2 HKjpXcDaPEEOSme36cAasSyaja1E/Wr/W8WDKdk4z3PPXORbQ16CC4rHxa7NdHeEj7joQrR8H2C iXzf9Cwir0gP3a0jCBj1qukkeFYs97IoHXN/mEf4GZG/ZJNQHDbwwlJW580olYBzRLFaXdWhhVX OjPUAlCt/82Q2B5qtwtd4hp1qhEyVf3Du81q3pWC+4lX0vIrU/+ObAxdoUJ/TapR6n7ykII0c/E ycYbs/56Qg+9Hsnp4srIztw== X-Google-Smtp-Source: AGHT+IFdIXLjR5TIhxiViuSPVKKpWKYLH18rw6i/bG5PG5KpNugVQqJvbKsFfa2wc7hevMelZu4Ahw== X-Received: by 2002:a05:6000:1446:b0:38c:5d95:305a with SMTP id ffacd0b85a97d-38c5d953273mr14759254f8f.26.1738626538903; Mon, 03 Feb 2025 15:48:58 -0800 (PST) Received: from P-ASN-ECS-830T8C3.home (2a01cb000deef000367a1a7f22add27b.ipv6.abo.wanadoo.fr. [2a01:cb00:dee:f000:367a:1a7f:22ad:d27b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c5c1d0bbfsm14314537f8f.98.2025.02.03.15.48.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Feb 2025 15:48:58 -0800 (PST) From: Yoann Congal To: openembedded-core@lists.openembedded.org Cc: Yoann Congal Subject: [PATCH 2/2] selftest/reproducible: Add a method to test a single recipe Date: Tue, 4 Feb 2025 00:48:36 +0100 Message-Id: <20250203234836.3635582-2-yoann.congal@smile.fr> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250203234836.3635582-1-yoann.congal@smile.fr> References: <20250203234836.3635582-1-yoann.congal@smile.fr> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 03 Feb 2025 23:49:04 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/210744 From: Yoann Congal Introduce a new variable "OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS". It can be used like OEQA_REPRODUCIBLE_TEST_TARGET but will try to use sstate for the dependencies. This can be used to "quickly" test the reproducibility of a single recipe. [YOCTO #15701] Signed-off-by: Yoann Congal --- NB: Some dependencies are not from DEPENDS and are therefore rebuilt from scratch: In my test I found that PACKAGE_DEPENDS, PACKAGE_WRITE_DEPS, PATCHTOOL create dependencies that are rebuilt in the reproducible test but I'm not sure it's valid to explicitly prebuild them using sstate. What I need is the definitive list of recipe dependency in the task graph of my leaf recipe. I don't know if I can get that easily, parsing $_taskdep maybe? --- meta/lib/oeqa/selftest/cases/reproducible.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index 30eea2675e..1e094892e9 100644 --- a/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/meta/lib/oeqa/selftest/cases/reproducible.py @@ -162,6 +162,7 @@ class ReproducibleTests(OESelftestTestCase): 'OEQA_REPRODUCIBLE_TEST_TARGET', 'OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS', 'OEQA_REPRODUCIBLE_EXCLUDED_PACKAGES', + 'OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS', ] bb_vars = get_bb_vars(needed_vars) for v in needed_vars: @@ -170,12 +171,17 @@ class ReproducibleTests(OESelftestTestCase): if bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE']: self.package_classes = bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE'].split() - if bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET']: - self.targets = bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'].split() + if bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'] or bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS']: + self.targets = (bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'] or "").split() + (bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS'] or "").split() if bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS']: self.sstate_targets = bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS'].split() + if bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS']: + # Setup to build every DEPENDS of leaf recipes using sstate + for leaf_recipe in bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS'].split(): + self.sstate_targets.extend(get_bb_var('DEPENDS', leaf_recipe).split()) + self.extraresults = {} self.extraresults.setdefault('reproducible', {}).setdefault('files', {})