From patchwork Fri Jun 27 07:41:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 65710 X-Patchwork-Delegate: steve@sakoman.com 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 452EBC7EE31 for ; Fri, 27 Jun 2025 07:41:55 +0000 (UTC) Received: from PA4PR04CU001.outbound.protection.outlook.com (PA4PR04CU001.outbound.protection.outlook.com [40.107.162.27]) by mx.groups.io with SMTP id smtpd.web10.8143.1751010103901817899 for ; Fri, 27 Jun 2025 00:41:45 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@prevas.dk header.s=selector1 header.b=B6lfVD23; spf=pass (domain: prevas.dk, ip: 40.107.162.27, mailfrom: rasmus.villemoes@prevas.dk) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E6yHSX5KpgfLu4FjGe7TrpbA8/XsXoHNLsoLwQ9j/uyCAdyck5sbWqrrXY6ikNXWl1WhYdtDhR311AjVofiaMs93kAtYCd1hutyfQYRAX9dcJsDPE6gZv9+EYms/i9UqbyP8ddGPOhW9qmV8RAJ5akHs2Y7RjUqZQLvZ/Ic5ZxiiW0OJxMvn4FQmqmR3uk9zWrJRkO1PzXKsWHgndwLTqOqiIhsAenU0+1IUFc11VEHIZHb1DiZmNpmQ6KB3kq85hUHWx3Jc+FRyfJi9KTzBFaQtQTM4kU0VEnK6JwMbqod6c72MsqDdjZ/ebn7jFFrXVu6+ADRtInfT/N8EYhfYaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=o3QXsCTYapXDVENP1aTLmND9MR3cfmJhPPyH5qq33FI=; b=p3GG4Lo38Z/yfg1+zVGl63toFZiVx+p2YvvgkL5WSufgTmRX43Ckm3INT9QR5ub64K0McJD936vUmsTPIRARZYOPXx22OaCpTpvXmqqWq78jYuklfrEC3n6thzaCqSwyi5xnlHPcIk5mwPBpNoJMCnxQhZOwhGxKNK0fZSqJCrlLyrnwJ/ZCXLthswuqBL/HY88eYiCd900qAqweBSxYT8v1iBjK/zEwUJAtR59kZcdOiOuP4Z/biva9dfc4tlIRpfD7SA1W5nR+7/0TnjMmmiG6fwuL8em/TeKGU1ihnNcpZ9sWKb2gwDVl2GPHy++yMOwAxl9M1ovsjf80JCpUBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=prevas.dk; dmarc=pass action=none header.from=prevas.dk; dkim=pass header.d=prevas.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=prevas.dk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o3QXsCTYapXDVENP1aTLmND9MR3cfmJhPPyH5qq33FI=; b=B6lfVD23Xm0BmMin7OF5hhllc3RY3VVnULx0hRgOe1+Jl5Wf/PyL0SPuIfy9brWdgdyA7yqBqszP+eXnN+oXcRK+kBcW/l7Th1tMqzS6T+St2b7L+aPqSotmg7PjTW/hyvI63HO/lW1DFMQjdpE3ElCQ/vU7NdHMGktnBGkzD+E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=prevas.dk; Received: from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:681::18) by AS8PR10MB7160.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:612::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.22; Fri, 27 Jun 2025 07:41:40 +0000 Received: from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM ([fe80::c2c9:6363:c7c2:fad5]) by AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM ([fe80::c2c9:6363:c7c2:fad5%5]) with mapi id 15.20.8880.021; Fri, 27 Jun 2025 07:41:40 +0000 From: Rasmus Villemoes To: openembedded-core@lists.openembedded.org CC: Steve Sakoman , Rasmus Villemoes , Richard Purdie Subject: [walnascar][PATCH 1/3] sstate: apply proper umask when fetching from SSTATE_MIRROR Date: Fri, 27 Jun 2025 09:41:31 +0200 Message-ID: <20250627074133.2173819-1-ravi@prevas.dk> X-Mailer: git-send-email 2.49.0 X-ClientProxiedBy: MM0P280CA0011.SWEP280.PROD.OUTLOOK.COM (2603:10a6:190:a::33) To AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:681::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS5PR10MB8243:EE_|AS8PR10MB7160:EE_ X-MS-Office365-Filtering-Correlation-Id: 41276b18-3c1d-4b54-bf63-08ddb54e0df5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: ytSi6IWlcvYEVlOr3ndWtjAJTP/nOQ5ERY9+Mitc95UavFcnk/mzIJ9sxTlpw7bTjHccnR+66fn31JdByj2Vn5Z3K2/DlaKWsN0+M6YZUW5M3TPmcLtXExHG6NO3G8bXiN2gm63wRmkTA9VUjmfL6JmwFfohDn0jfzxf1Z5Hqwc4+Z8hsLDcVFeziM+e+K0hzF3ez+3EVZenItvo6FG7nM5oYYTzdUJNsWjjYgwt0zh92zzw0Iyw8KXJZv4mXCnUVumnSqFwrGhSdq063GCLj/AAqAlBNufHbihSpsq7ZaGdnwejnAYt50voSj3E+HPUhrKrvVFaaKtvVMeL6DjOC9elkXKII0/UApoHEAcMocBRLjtv+jqotTBLR1MvUNHspUDgF2wgS4YH07YkF3B/zArFD5QGhjab+mdUqtSaKIHsqK4TTHGHXo5CeVk8f8WCBknVuYbTLtWc2YYfCRlpLJ0ClKrf42or9keY8CphW97fGB6dKBJv1z8ce4AkhKUUyzTaokeppB1VCbYYeVu4WRLftuPOLTCBY4yzRDtXdGDfb77l2Cs8uy6Js6cOvS76KF/1NnqV3m76Mz39oBCC94/1AZCjjEWkVozOqPzpgFTDT8rD38GbSRKeiAPuK+xPItp4wDx3l/kvhVbTueaD72cUb9MKaQa9noXC8CEd/CV/inSnOaEsm6VISMBeklqB3wH9FxEc3OSbwrcu+c1zL8Q+qo3EjAanGGhMm2E95+gwJ4jsBBqUuqQ8qsLoy8GlbqixUe7ikSicHuVk5Qa4EMThTmVB6JgZd2vHd+jKfY9XxT+mIGbv63KzldtO02kq0e5OsEUwTBSEJWeC+vEQ5hp6KWFFaDSzTR2/eLPIhLuemMi7Af1hmBBOSw4m9Ez4MBBcXWNMbrpb3Hpxp7yLbMVURU6g/JenGCEOrjqLAZ1LhixKKxZQg5WaxJQgHjGDzo5VKHDlyh6bm8FXS4Mbtyqn6W5wkshbZdtzXMTSDC0IzCym9E9lGx7Bk9RA8uzaLSmYfqjNjWrDhqLmKp7O0WqFcGY1Xz/Lbu1pOAF6UqvqJSn+m55CeXU66i5jvaY//kMguPEOAPLH/FTEmdc5wsncAFPxdUC3NKlvVVsHLzGF/NHyTNQHc9zZUvm5c7khlMKEBlmTNzMUSHnfvOvst+X2jP/yCAxkv8Avnu3c7fFkk4pZj2f5/r/tKlGI0rDa5xne+gkyzWdUaTdq0vqwQNBVZBSJoy7OwSzbkRvnZxJOzb7bQEmJHX+hoOtRaKZh4bW7XnxXzlX1b/15yA9lSMeKwSKJbORHJUDGJjLUXKeEj1wJDaZdUKzxrhwzQlTnaIZK2JjGNJS8tIvrl8H2ErjmcNv+aGXuiNuLfX9AWrK4gGyzvsNs7Z0U4s7AYYOy9y0La6dTtfh+iDv4I6q9Yt6DBxsGBf+l+0OiCntvjkBr/mVOaRWhLfdMKLrliNbMozsVf4Sd8qE2vIpQ+hYwUA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: u8daYcaeTenp2AXORweHY/yvVPlX37bm52bTD/OtzriXTGd4FZ+XfodFN6X6p123jQNI6yNtBWcEcYGtCvrvoVsmxIo+aeQq9p1j1nFu8BqSd30ClfjzjFmq9WSPWl5XCaBtXnJiSMw1KLsYL7Fwf6WZTXTEB00fdWzDF8i6d3LGzE1QksEYFTZHq+EGqeibxDYV+qkA+21JWMEXRioON6XN+/0QKWTonprKD+2caXQgNni3enGu5N6CqS4GT+8ytdtBHZGOAS5sfZZevG1+D0qXxNAqezhYrFQuko+licCCx9Glv6fOl58hOBpwtmt2U0NMW/gFJ0y7HK6r5pi0iQ3opEGbd6vy0AYS/k36LOHQi7joa15DWsL6YiBROlJ1+Jx4qMSkrvAOClMiUZHqnhujkrDu7DoAPdhhfHcx7prnKQN+KCYVwZyNLMFKOt5/YgCm9ZxTbthw0KbiybxHXsab8gF58uadHqCaMM/U1UPRI0diBsZEpfiiw8nznfWczGv4y5PrU4kI1gWBBfPwnWlxove6vMh7svUxNy81cFcln2+pXfCMRecGajiTDo2VCWe26DHSfMI4GzLyz7yAA8HHAEe5cm/iSJ/ohrIY9lVfOfcg++dUrLXr8afkb+mUw0ydZHy9TLQRibUn30pUdSgeJ4m9awGcmAYp2LS14YrTyXiHZy4CxI7qJK5UTFYGnVbx0dRAJeIj7OHLsNxtCIrwHshm/zYH7EA++yGt1jflq9czNOtfpRUqa1dWwB6yhAtIBlNEXulj+Af/O6jldzUeqleMk8BXFUfQe3KdTm+Mjhl8u/4Lx9qECI6qKsdnJd4O0a8jF6RViSze+VY0TnDUfQfU1LaK7f3PBoO5W3isCs56wMc8X3hG4K1uyoWyXtPqXZa62CN4s1gN69TSSccHqZMLD0DNtrHIz5ZWHI19KxWCp/B4rFHPgCIn7JA9goxm7A/npQZkvTQEfglZtImMHptfCw7dJkpWXTplJyG0e83GTXteCtqx4uPb2Tm2amDL0DljheXTFyWt1SHIhE3hBpCsFmO0a4jP5AYwvHeEte/9fgqU662t0h5WO8cFsLEaW5PH/AyJmcFQOR3sfa2uJtOXr2Xr+U2kKVflT++hvWOAYwY2Klb5/6ghXRkNv174yoK+t//GjpNjtuTPqFwXJ0Rn5Gy7kC6jlV0mkEC4rxtIwSKRyXoP1bx4jPM5SoIUR0x9j2BhT9alq1+4vC/Xwa4rn9Tbv/MIj3dP2u6t/k69O8oGT3Afcx5dBABNG6w0xOHHZninlyktoSia84IJ3lRq2rX+98RvSyux+UgorjTnqBJEkWI2JsMw9jHlnrimPkCTCWVIQo6FOWJsejbduTNFnOqVErE/xoNVao7Q9pNgPhv+P5VzPBziUsCHW923tWrJ7oDCU4KUSEMzqt1fxNIRJPPFaeK+p5IRx7KN0vHFAsykE3rtER667DrFz8mxVdyByZlbkcX5QP3Kl2kDLZh9k5KDbZ2awiYjSpR1BQS/lnYYKLCAPfI/JB5DStStsA7ywBPWZ/ax2iByryjiWKYJDGvRDAVOOGgFFK0YUgA1r+tUES9ZPsKFhm8nGVk8alzat36GY/qXRki++w== X-OriginatorOrg: prevas.dk X-MS-Exchange-CrossTenant-Network-Message-Id: 41276b18-3c1d-4b54-bf63-08ddb54e0df5 X-MS-Exchange-CrossTenant-AuthSource: AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2025 07:41:40.4731 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d350cf71-778d-4780-88f5-071a4cb1ed61 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tjOJSD9Z6mVn8TI9vVvfr99kxWvsVqbuWfIcZfAbtW73+RcPDIJVasefKapSz9/KIAuAA6g5T5Znj9dCyws/vyXXEXYaE5liKAIral3BfnU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR10MB7160 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 ; Fri, 27 Jun 2025 07:41:55 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/219387 From: Rasmus Villemoes Currently, files and directories created under ${SSTATE_DIR} when fetching from an sstate mirror are not created with group write, unlike when the sstate artifacts are generated locally. That's inconsistent, and problematic when the local sstate dir is shared among multiple users. Wrap the fetching in a bb.utils.umask() context manager, and for simplicity move the mkdir of SSTATE_DIR inside that. Signed-off-by: Rasmus Villemoes Signed-off-by: Richard Purdie (cherry picked from commit a6038553aaef3b88b834a09018c524c4fa41e625) --- meta/classes-global/sstate.bbclass | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass index 2c259a6657..b98fbba982 100644 --- a/meta/classes-global/sstate.bbclass +++ b/meta/classes-global/sstate.bbclass @@ -726,7 +726,6 @@ def pstaging_fetch(sstatefetch, d): localdata = bb.data.createCopy(d) dldir = localdata.expand("${SSTATE_DIR}") - bb.utils.mkdirhier(dldir) localdata.delVar('MIRRORS') localdata.setVar('FILESPATH', dldir) @@ -746,16 +745,19 @@ def pstaging_fetch(sstatefetch, d): if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False): uris += ['file://{0}.sig;downloadfilename={0}.sig'.format(sstatefetch)] - for srcuri in uris: - localdata.delVar('SRC_URI') - localdata.setVar('SRC_URI', srcuri) - try: - fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False) - fetcher.checkstatus() - fetcher.download() + with bb.utils.umask(0o002): + bb.utils.mkdirhier(dldir) - except bb.fetch2.BBFetchException: - pass + for srcuri in uris: + localdata.delVar('SRC_URI') + localdata.setVar('SRC_URI', srcuri) + try: + fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False) + fetcher.checkstatus() + fetcher.download() + + except bb.fetch2.BBFetchException: + pass def sstate_setscene(d): shared_state = sstate_state_fromvars(d) From patchwork Fri Jun 27 07:41:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 65711 X-Patchwork-Delegate: steve@sakoman.com 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 30CC4C7EE39 for ; Fri, 27 Jun 2025 07:42:05 +0000 (UTC) Received: from PA4PR04CU001.outbound.protection.outlook.com (PA4PR04CU001.outbound.protection.outlook.com [40.107.162.27]) by mx.groups.io with SMTP id smtpd.web10.8143.1751010103901817899 for ; Fri, 27 Jun 2025 00:41:46 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@prevas.dk header.s=selector1 header.b=fbnLl0xO; spf=pass (domain: prevas.dk, ip: 40.107.162.27, mailfrom: rasmus.villemoes@prevas.dk) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z/W/a+v+gxoaxkrFZliBZ3YC6jCrGa1rydjDYgM5e/CUebjHxKnRvRta/twB3V5IoqGkTgwPlltVmcegoCDYUU96FMeUEncD123/QvKZmcZ6qbKK+3hd9w9gTfqCyAUxS8/GmW/9qCC7XkJPbZ/zy+DOeZfTegPIpFWZrLX+4EV+37WvCRmX5iiZxWcwDvod40NOJGvnus1a643VvoPp4HQKhEahb+gbgei+dT1/G35NA5Wz1SoH/0KmjlAYQvBU9jAncx7VOdUkvoLS3iz+Ow+IAujTsmCgZpU24Y52bJtn4nZFJlDjl08g1Y2riu7Ygzk9MQvxYci5QB61pb5Wjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=bx99yDz42VejVWf0PgfwQH33rlWgzEorpQGNtPylbNA=; b=jfxSHLJVnJJ6GldhdqaIy1jPIcw/+mgxR4v1Dn50HdU1tDIOvaf+U9Lo93BFjkCWbfS1TWodrmLmlHHFfGSlTZ9DWM1pE5pcIUjRW1qsDFurJHWblq/GEic+usuZvM/nuQLsCcHvMUQoD3j3x6ZWyNfpOoz3LmOOlDiWWvsfdNqry/ME1rEH1agkSXsfacd1xmkpHKVhvZV17JkDRL1qnjLbfuMD2wUD5gvYXt+FR5dekl6JQ6TRKY6It6IqsiUSnTuaNDZnW8mAz67acWBD5vsf7repAz6BuWwbtjAl8xJ/CXN1FTpll6lD6A2RfQSKpbxZs3OpNdPMKDWTk7AfYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=prevas.dk; dmarc=pass action=none header.from=prevas.dk; dkim=pass header.d=prevas.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=prevas.dk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bx99yDz42VejVWf0PgfwQH33rlWgzEorpQGNtPylbNA=; b=fbnLl0xOmS31TTb6Q3W2MIDPTyl3gKCUuWA0K1K/LszDGIG3Yxzjlmg+TUk+rHrsM4K90AKh0LPJ0HPMNEsu2PWSkPKUbZp5wu2nycAb3YnEm4QSvRDWkBVshRhwBejHsZ5xpAsBHW2f5ksxnZVpjaGlU0OaCADXrVRWDUkPxE4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=prevas.dk; Received: from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:681::18) by AS8PR10MB7160.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:612::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.22; Fri, 27 Jun 2025 07:41:43 +0000 Received: from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM ([fe80::c2c9:6363:c7c2:fad5]) by AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM ([fe80::c2c9:6363:c7c2:fad5%5]) with mapi id 15.20.8880.021; Fri, 27 Jun 2025 07:41:43 +0000 From: Rasmus Villemoes To: openembedded-core@lists.openembedded.org CC: Steve Sakoman , Rasmus Villemoes , Richard Purdie Subject: [walnascar][PATCH 2/3] oeqa/sstatetests: Fix NATIVELSBSTRING handling Date: Fri, 27 Jun 2025 09:41:32 +0200 Message-ID: <20250627074133.2173819-2-ravi@prevas.dk> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250627074133.2173819-1-ravi@prevas.dk> References: <20250627074133.2173819-1-ravi@prevas.dk> X-ClientProxiedBy: MM0P280CA0118.SWEP280.PROD.OUTLOOK.COM (2603:10a6:190:9::8) To AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:681::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS5PR10MB8243:EE_|AS8PR10MB7160:EE_ X-MS-Office365-Filtering-Correlation-Id: 220fe596-7a7f-4153-a826-08ddb54e0f84 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: 25HzyJvKugevks9Pe++ZBjOI5BGt7NHgWUfB3zresCJAsVpyGIn/u2ySvPaqZZrIsFmKmFM0ZnvSWIXj59a/dUOhCsIv/1EWPw5HOp+KVRfaEkrdyfODsS+tCzhtVu6OYRQQB/jeXKN3Q1Tej7jOhSpHR+isJoF3nuk0Hjn5MiPUPsUmPTtWZ83FmWaN4QCMXAwzoB11E8E1L7m2wD/pEBvebw+kos6cvIS7x11VwqfoKBrUn1VmEKWJ207iUN643wXcUTdKe7NGX/dzds9IrfNgMgzFjZ576ok/0L/W6WQ6VUmRMRfbNuSUwsmlICfKv2suC15zciN0mVE0Jx8KY2KQ174GXW8HLfTZhqEU/BO/x88nUJkbmI8rqmc63/dGpJOYOCI24I38b1KB50BrlEI6v21FcXT+az/rvDFCInnigl7WUX5uzkQdUifz3p5Kl3E2RiCznetSZFIwDSjlHgONCRC++orLTboqQJJF1bzlJ7rue8qgcJi51zaHcwwLSJIxwPQJWEEmSLjA8lnekbkBiHCZMuXs9W82b1vYdKXkxwy5gdBuFmLLF5IPMx7Txr9oDWW4Dk6tWNDIMnM4rV9znOCBbD/Av+I7QW6zuZctbr9vtDocGNrGTvCiSaew4LPz8/Wa/sB9rJ3WDV55PLDPEp9kl7TiklPi69r3Nhv0chSH/FyPVdOzdLQCW3LAIvM1xiLkKNt7TTinVcxBiJkGctuo1KtlhRQEu1rGKhAn140g21+bpuAdMxhHuLGdbn9V1TuTtkRUM1ChJSY4njvDmcXbJ0vi3CWWQaM6JOwH/ivwwZ55EZ738KuEBH+IqSJKg1Za9sF3WuqqxcfT03mzaJrmnhzqWkesuN4uL7myKOg9Xxpwr8yeyaGwwtuCdBBVUbgCzO5n7CGCLwnwfmjwkyCmiSdnMga4xSM5IDGL2uoe1ahBMt0SwSwotj2nWqTh+KO0i0mT5Z381Erngp2VymgARhajyFRUcsZf4aQIITjfnLbyFL0tWqmJp9FMpexDR4N7iq/2t20hOBPCYLVPqMy6hr3hEkIwy6CdHZlqpV291gqkQHQD0nlJF2gL17X8PYXHJ66jXhZypYHrmT8V296pGPnGckiNDas2HL2Ipo03cgiCW1IVaj1BTn7/+W9fdudfjYv0GyOceK7no+1UOy1wofJZLcdszuHw9tEHjXIshWfI6mpDItHLYGMK3bC94q2rLC6Sg9POsWgmmF/D2BuBupn6714k2dpkxUQfrawPvb1vOfs6gy0i3URFcQJOSkd9lYtbS53yfDI+8FmR7e8Jke1v1ea+uIF8byvmcHuCiHTkAOt0BlwBpoe58dg1gTbvyWF7VqO4eq48rfcdBDd8P3TsoAe++BH8XrsaDQJpAWTimBIV2ad55XKWYs/wOzaww9vPr9uGQfKpDHed2lOOnB36lIhjNOT2VPAT/6IW9DHbQz6gLHiWFpn+pAfdyG0KWMUWTVj5g6k+aA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tSIdjqcRuEyVfvAKqRAjGBPZIsgL0yBgSgWpwbXAUB7FsF0KLT66yZHiLbTbRe1xYRW8KDKcjkJ7OWPuuPnw3sSripvFAd9mPXizwagQECZkV1ur6qhVjAP5e53QPceyjqPsU7I6O6c9fblUGWe8u/jfXVr4ae0vlghHXiiTig/H25JHZPlZMB63Da7fPB9FHP+AF6kGtpx4xyURv03/1HYy2yfd01Wiqjn0IX9sJBb/7BWeNkl3D9caCHOKj1zuaztxXgC6GH1QCG1cLCSwsJ02CEY0KEJH5nfLgm9WAltREYMXsKGmWwN9/WHwaZe/fq7GkpBLEOrqd7Zogy5Bszgj9vFjkp02UcpvgqXn0XsO7gUw2AlzJFyHwK1YbZE+qbNUh8erMpKGAxp0Nr6EQPuMqa88iBW0Jeg1e91/CSrFsQ2KVPZPLghThm/bD0HA5bqr3/B7SrgXudZM4HFAvqLZAPu8sWDMxNDet+GcH9YSz5pxKe+QB33LkW01jo7vkbUlNqu/3fKRxOCbLzYWHQt4fw0nrRgMI6oLyV0jliRG4WWjuicuGC3RQ6gIhgNRtxHjARfp6qcjmIaTd9WMUpHNyqdjeUvxvKrxv952KfGcKUrooXlWsA3kZJKeyuey2OZdLzF9jCn6saLsMah7IXF+/+TZDhelIyPPGAoKGDkoPmGfj65Xm0IQOgf6LoxFyspTXI8V2H+I3tkcWyeU6msI+sFjp2IWAV6f36ASfHcJpFQ6WcRHZjv/854oUdtcyMo0FM7lYCWk3lrAH0PIa08giIuRLJZ/UUYcZ+d3RAd/ecKnAkVOOnRywTUOGzWsP+ts9xmpeuJSOguF1+T91tYuTrAfhlTh+j5MbyvrCEi+3VWN3bUXfwVaVbvQA9AVXz0ATjW7Lq7hBAibapszVEze08xxBloyCzW8Iler2jtwQMDsLZkXgKGNb3mVizB7yqcsp6bZZyhRd3ExAy0QBmiMs+sOwUcKpB9opiuxl03DpecyyaxXcqy8Fp/k4QccAEyQM39ljOlMMBuvBpotTRzQwoIqio5hZrigjFsXxv2WroMuuOw1mqVsGR6cykmX+o3X1r6s8sHSUq4gXj+m0cbPVj9/hI04IiQhOKJzvKtRl0URkl86IlyLI+ONpOmyFCwPQnO7QjXsFGi86nevMvnz6TXI9BpJbS1lv+Vf0jTHU57Nf7yal+PN8ZinF3TESqZd3tPCVLkDaK2Vco8x0laioBu6XL/HWVovL20SxPFun7bzprFoRhjlBrTDKrq9dUYC/z2m0lPJewMuHJH+pt3mAZc0x9cyxqKTheVdv3uKmeC+LPrVAa1imVojjDLHc48ZyJrlq4LBlAX16/fjNu2m+oQifv3hHgWStf58yM+DRDQzWRkvf2BzcBi9cFz3Ktdj42WejtYP24eXFz1J4Jk4n/KiGh8pIwRBOSTt87ORReT+PgsXxCPRmPQnxwrQiPNYsdIlu/RCKU97X50GMlgJG1G8T9XyLas9RtdTaz//8mVZy2F9j7EOqM+ZAH8SFYAUzrKcC8evK9fHAmMlvE8wgG4g5+/JMhrWFCodktweNY6qm0+ormAx/Imhf/zSy7tc/SVdDC7Dq/zXwCHogQ== X-OriginatorOrg: prevas.dk X-MS-Exchange-CrossTenant-Network-Message-Id: 220fe596-7a7f-4153-a826-08ddb54e0f84 X-MS-Exchange-CrossTenant-AuthSource: AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2025 07:41:43.1156 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d350cf71-778d-4780-88f5-071a4cb1ed61 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wZwwJmLVBW7cG30+3mMQTegD/swO8FBplFHbyOrandBbT8AMjmKxrIIDeLMfFyO31EaWHJDg2TCg7eG2TkBrwPa+UuaSAyHDvneoUfZ7mHI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR10MB7160 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 ; Fri, 27 Jun 2025 07:42:05 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/219388 From: Richard Purdie The NATIVELSBSTRING variable changes value once a BuildStarted event occurs in a build directory. This meant running some of the tests directly in a fresh build directory would fail but they'd pass when run as a group of tests. This is clearly suboptimal. Move the NATIVELSBSTRING handling to a location where the value is consistent and a comment about the interesting behaviour of the variable so it hopefully doesn't catch out others in future. Signed-off-by: Richard Purdie (cherry picked from commit e1c46fdb44fed18909d9ff4b43b4e445c5a22d33) Signed-off-by: Rasmus Villemoes --- meta/lib/oeqa/selftest/cases/sstatetests.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py index 487995acc3..7231115a6b 100644 --- a/meta/lib/oeqa/selftest/cases/sstatetests.py +++ b/meta/lib/oeqa/selftest/cases/sstatetests.py @@ -27,17 +27,15 @@ class SStateBase(OESelftestTestCase): def setUpLocal(self): super(SStateBase, self).setUpLocal() self.temp_sstate_location = None - needed_vars = ['SSTATE_DIR', 'NATIVELSBSTRING', 'TCLIBC', 'TUNE_ARCH', + needed_vars = ['SSTATE_DIR', 'TCLIBC', 'TUNE_ARCH', 'TOPDIR', 'TARGET_VENDOR', 'TARGET_OS'] bb_vars = get_bb_vars(needed_vars) self.sstate_path = bb_vars['SSTATE_DIR'] - self.hostdistro = bb_vars['NATIVELSBSTRING'] self.tclibc = bb_vars['TCLIBC'] self.tune_arch = bb_vars['TUNE_ARCH'] self.topdir = bb_vars['TOPDIR'] self.target_vendor = bb_vars['TARGET_VENDOR'] self.target_os = bb_vars['TARGET_OS'] - self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro) def track_for_cleanup(self, path): if not keep_temp_files: @@ -52,10 +50,7 @@ class SStateBase(OESelftestTestCase): config_temp_sstate = "SSTATE_DIR = \"%s\"" % temp_sstate_path self.append_config(config_temp_sstate) self.track_for_cleanup(temp_sstate_path) - bb_vars = get_bb_vars(['SSTATE_DIR', 'NATIVELSBSTRING']) - self.sstate_path = bb_vars['SSTATE_DIR'] - self.hostdistro = bb_vars['NATIVELSBSTRING'] - self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro) + self.sstate_path = get_bb_var('SSTATE_DIR') if add_local_mirrors: config_set_sstate_if_not_set = 'SSTATE_MIRRORS ?= ""' @@ -65,8 +60,16 @@ class SStateBase(OESelftestTestCase): config_sstate_mirror = "SSTATE_MIRRORS += \"file://.* file:///%s/PATH\"" % local_mirror self.append_config(config_sstate_mirror) + def set_hostdistro(self): + # This needs to be read after a BuildStarted event in case it gets changed by event + # handling in uninative.bbclass + self.hostdistro = get_bb_var('NATIVELSBSTRING') + self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro) + # Returns a list containing sstate files def search_sstate(self, filename_regex, distro_specific=True, distro_nonspecific=True): + self.set_hostdistro() + result = [] for root, dirs, files in os.walk(self.sstate_path): if distro_specific and re.search(r"%s/%s/[a-z0-9]{2}/[a-z0-9]{2}$" % (self.sstate_path, self.hostdistro), root): @@ -153,6 +156,8 @@ class SStateBase(OESelftestTestCase): bitbake(['-ccleansstate'] + targets) + self.set_hostdistro() + bitbake(targets) results = self.search_sstate('|'.join(map(str, [s + r'.*?\.tar.zst$' for s in targets])), distro_specific=False, distro_nonspecific=True) filtered_results = [] From patchwork Fri Jun 27 07:41:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 65712 X-Patchwork-Delegate: steve@sakoman.com 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 299DCC7EE31 for ; Fri, 27 Jun 2025 07:42:05 +0000 (UTC) Received: from PA4PR04CU001.outbound.protection.outlook.com (PA4PR04CU001.outbound.protection.outlook.com [40.107.162.27]) by mx.groups.io with SMTP id smtpd.web10.8143.1751010103901817899 for ; Fri, 27 Jun 2025 00:41:47 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@prevas.dk header.s=selector1 header.b=CEKEb7C/; spf=pass (domain: prevas.dk, ip: 40.107.162.27, mailfrom: rasmus.villemoes@prevas.dk) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OF+eXjJm08fgR9prJvDrjEFn/Ryphoore5jSrcRjsE8W+u8gC/nwBW3lwtPm2WDEKDzxkngNUww8c7SVQIbST3UaM66AREmFF0zDMXRzxCGIZ4vOQ3V3vjmVqOiBcMOJYY2srZ7F0w0NIYNj4F4JsN0JHek0kwoY/U8nXcwOBJNf/A39qE85xPEIku+XjXf83xYqgJW2lcgTjgi0C/X4dal+CKdG4VTxm5T7EBJ2c/FqyDLOKbZd+l/l/HCyerEwJ2SSe7ue568pi8x0hXx8K4C8coEKPeLJt6OrKfzVVSHZPEBwORLhZMhxY8SIC29W8JK4D8Eg5WFjga4Jj4UXlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=jPUkr+58wZKwsvjHRBss2YywiBNdsGOrpmELKj1XI7o=; b=huIabObu+Yv/kZrJqir0j4Eam4LwNzH2Nvwtgay6lalqS7L1m+crLnEMszZxnjiaAZfabLMLewSlx6+kUGrwcyj78/oks2nROXgzaZ6pUgy7VWFfR5TX0tj6mk2YjbTwy8wjQ1dBZZ/HZNP4wj0xQXwC5duWS3XE7M+XM0km+VDxJNDZrvmQI0voRUdYh1HvoOSWYjGEh4DNMfKkloYpU4FneBjslHwR7eR3bXKnPAPzUR/IrDNtUGDyu+YfURyQezKf2jsY3lF9FumIwRKSo5xvF0yu99Z9QP9EXbrkgctYNGZGVhLsQhG+S9qC0meyuOqoC5KfF0Hr6jftbeVPoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=prevas.dk; dmarc=pass action=none header.from=prevas.dk; dkim=pass header.d=prevas.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=prevas.dk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jPUkr+58wZKwsvjHRBss2YywiBNdsGOrpmELKj1XI7o=; b=CEKEb7C/K3xtnfXWfeu+67pa9JqE//M2xR+ARCE6z9AwVmWMh28DJCsKVOJQAKZSVpEL0AqHShsqLpFZOHnn1jZwLEKOmCulYJBAhajXzxV7ICmG023XBFGod+C7cfaV/VRpFl2L1vA4BiuVPgBzkkZaiJ4ytGevvdGFoKn2Gfc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=prevas.dk; Received: from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:681::18) by AS8PR10MB7160.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:612::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.22; Fri, 27 Jun 2025 07:41:45 +0000 Received: from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM ([fe80::c2c9:6363:c7c2:fad5]) by AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM ([fe80::c2c9:6363:c7c2:fad5%5]) with mapi id 15.20.8880.021; Fri, 27 Jun 2025 07:41:45 +0000 From: Rasmus Villemoes To: openembedded-core@lists.openembedded.org CC: Steve Sakoman , Rasmus Villemoes , Richard Purdie Subject: [walnascar][PATCH 3/3] oeqa/sstatetests: Improve/fix sstate creation tests Date: Fri, 27 Jun 2025 09:41:33 +0200 Message-ID: <20250627074133.2173819-3-ravi@prevas.dk> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250627074133.2173819-1-ravi@prevas.dk> References: <20250627074133.2173819-1-ravi@prevas.dk> X-ClientProxiedBy: MM0P280CA0060.SWEP280.PROD.OUTLOOK.COM (2603:10a6:190:b::21) To AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:681::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS5PR10MB8243:EE_|AS8PR10MB7160:EE_ X-MS-Office365-Filtering-Correlation-Id: d51e77f1-a477-4b05-1d9c-08ddb54e10dd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: K8a2S5rOG5+b5LaLSGd+fscxgz82vEPQ9YAzN+Pv+oJTf+VHxS5m8gQ5Wy5h9q5zwSWxbOHrvbKl2P5vPC5kyK2vsBM1uffiToP5Px3NRo8Ola9ZFiS3kXo34ygDP5gMGukNvEGfbNm8Ob/lL97pd0DoeTltYgogiTKQuLaDrRVF1V8cghLYxDK8Tv9HpgyxurEIbAwGwcBkDcVtPvyTj1KGn0mViFvh86RvBNYkPew4BTUDZwJWrzlWl1aRQ/nLDICN+zcOikKcJoU8PgTEgTY1WPXPBPC34OacCTKuku2ZkkNhtH3fMW2Kp5tXo/jgZyX6gMSPgmaFZeWDq9iKunFDyJZvBNtw1ehoX/4FhxJ1R3zhgavl/nEBARY1oK6UzSayRoLGhhiqtbof5KWSzjvM+emUKWsIkN/EdsWGAAAKAVKMecOO5sUF6K7bEiqkGdTSPlcUE465GNyn6VcLJgNDK+IphCUBTXeO4wQAovbzzIIxfpt+l+NRGEXcvHcPc3HznV3hT0U1HrsBxWPxdcbrtyF2kFynHs1bvnkF7WqJZveL55yih2QHQFiczaslarQqMrlsiYwaB313rlBhmsu4tka8vGrFd5135oDpTiDHVJVQqV0W95KPIU/mKNOVPOuSyPWwJ861DmUiX7qwyLHhlYt8+Jd+xs5mt+fX0uUoWQoxnjxMgnrFxY+Cx75GBvIIgFiG1hG5Y+uJ8usRKIP5v45UngsUD7iKzciGnmxhtCyrp/3SBe4NYl9TvQXxsJJcL56pVdGzw1GHX6M5BFIcoyMZaDuKGDaU6T9RiQ3cAa60exjTCjUXpZm73Sr/u3O2yFw2Rrdp++PxZ+q2xS22HxaLFXT9jz4/mFjBz0tzemQxZc9QQO7IMfxg6gxUV+1AvOH46mGW8WwKmWd34aZuvpFP22vxVZpTxNxRFZWgE9Ogv3Ka2ob5BtpypFlxxTlqpC/37HKIn7NyBPSNwRCzpQo0Tp3W148w6HX/9Zf2sxaBJCeTxLR+CR7/gtlogNrqi9gP+HR0RsUtfd3pbYHbgwvucgV4h/Z0tyIXkVSLikl7ykK37N+xQ7RCRn9AEiTJKyKgo80OegGYQrYu03Oeyoi3HJJ0OTLjyRGDTPT/YeVxx+sVmnXp7Nk//2wHLtptOXnTaD7hVPSI2W8OVoRz8wftXAEDY3gevPzk7eu6ko/kKQrr8w73TFpBlED4qtxUtTIlilmjoD0ICzojfVjV0d/Xkf7L58P2kQVgyNBFJUuCqfN+JIMVdTwRVkABbHrZqpghXCZrIsCZE31gKJwFo1oV/JZ/fjhA92RE9EedAIgIJ/R9CztXMcNG7rfTPJidsWLxt7htHygOO+UgiJg4pEZ8yPkhqwEtqUxbwQI3CtWbEGjcg4RkqYwaJnEYcxw8tAFmdHxTZzJrLOZi28UInodTkxyEFVsX9zKIeiOCjF7Gw93hzhOTDNxsKNSVjsZU7L0WtNkAeiOMqMQuRg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: K/vR7P4/c2Tf+JtB4eZMBH5zdnNXOCNhMTllTgOqOxvkc0D7m+BIgxjtzAhmIN/dp8QDO5NWfG3bL5XjBiScYYW6aKxB9wr7nguZRGi+ltdRXt9svIcqEpGxTu3+EHvNz+M3uoSXCbFvlglmgGdAAWmPwvy+129TLjgNLYFLX473i8Tb08DZFnx/RMxRxkQ4RmRWOHSmfuwXGsI867WCXflCithkKbQ4+3CZbniaY8nykELjIRQ7B8etWqqnpclGUFwi6AKGRYhOpWVCOkCSgraJyo2l9A/ZV7FDJJrPU/X7OklaWv3TJVqgMK7dRDeZXN9iOlxx08QiCiM9k2wXMse1grWgiCTDSlMfWcGFXh8B2eqto6J6YKqhFCvxHwCw7WvL/Qe8phVsXZ5QZ/t+rrO776QZwj8C7xSZMMN94mIRKbULL0znJzgRcavbtwmJCTWPCrf8vlVlN1Y8lNuQN+9P59S3WEWgUuWIgu3mVnT9ZPKbkmi3bvY6yKkfrotfsF8K1fugQj3P1hIhuZOtyiIYtY9he5TkXHo3Ku2egvlUhc/kFwitcgDB/zmTQvz10mAPY5rBdK21qhLRdE/kda4a2LNuzpMe5Yi38bOQoQHarXRxAjzG+3Zyj5l2ef1R6U77CSn0l/YGW56huM8ZHDhP7ihIcdVNgkv4ldvxIjyL4aUf2EUIRHSVZ+i0V87p2SHMXwsGwj0WM7JdcWSbnQk+KwYpxA2zvnuikfIEhz9VMG/fWwOQ+jYOHe0x1i3YjbmqR+lg3p7QjaeX3x5QmYzLvUeboeGpp2d3rwXf063fyyoaM5em2d+mNVHTb108u4o6RhTlRPixS82Z7JHwytA5Aab8UuelFbLjCNpO+RMl59MNehkYMMEACDk2K2eo0hOaxJAoz+muPsIsjfqUU0Kz5B33oT9AKnvB1HHOXhNO1OLE7I9h2KPX9VCUyvwJX91nESAKWzaR4fHmQOXB2B6oMIzc4nmmuvM+TcYF2oiqhPL9kH9sk1NA1WvGfDOgE16AesUjGRCxvnF7PtMLVmckAsWPNhD9H1X5c10AH8qaC3L2B0TLep0RRTxquatCGeEp1KQbk83jKGsrcugd4n3lgpiSjqgmT3bv79XXtyLntsMjiZ1045SBuyZA6ve01feW3ul+vJpr9u4OoNfR7HAU4Tu0FJItxJhow5HiN7rY7BVEKkB6DeqbgfA+h0bxqY3iHASXEHuA3l/jxV2XTxHchVtcX29tDV1sU+AWm1cbDNo4LxZOugwAgKId9SnTIzDWHGRIZwcJ8R7Ujuqn5RUghdrxq04pwAnClkISK3ppWp9i+KH024O0nmJ5E60t11ZDNM8vuTUJNucxH3KPYUHaOphWBjUp1sPYLDXVAUxivmsip+CgtMmXBheWcOyITYJvPR9ZbavUtsSicaRbhPBw4YArq35+4t2VfILBlGYEl4BlriX0WIuPWHvAel9NADq0JVabsdd+8OuyIPg/tRlJIt6T2nOuU6XPYWRT2fEq7o4KPi7VvCKyDCTP0+pLi2EvL626g7yvmHcqETsaW4NjPz6H8sfNTdrp7hSqTVWoZhPhmUFVi+QfbUoQutqQPmLQ8ob7Kev8plXLpVHu1Q== X-OriginatorOrg: prevas.dk X-MS-Exchange-CrossTenant-Network-Message-Id: d51e77f1-a477-4b05-1d9c-08ddb54e10dd X-MS-Exchange-CrossTenant-AuthSource: AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2025 07:41:45.3327 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d350cf71-778d-4780-88f5-071a4cb1ed61 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tUGvNVzfwmdsKQXONdhRYHL9xo4mX2hp0ollyqmWayGyjyrXAjraszzRAbzErsRePqjDof8gPHKH59C86F71jKmWrBWS/DoRLK4JgeGmf8E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR10MB7160 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 ; Fri, 27 Jun 2025 07:42:05 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/219389 From: Richard Purdie There are multiple problems with the sstate creation tests. They currently both execute twice, once to check one set of files, then another. We can do this together in one test which makes the code easier to follow. The common test function also has parameters which were always the same value, so those can be simplified. We can use the umask context manager from bb.utils to simplfy the umask code. The badperms test was actually broken, it was detecting bad permissions, then ignoring them. This patch fixes that regression too and allows the check to operate (relying on a separate fix to sstate umask handling). The result should be an easier to understand couple of test cases which should also function correctly and be more reliable. Signed-off-by: Richard Purdie (cherry picked from commit 5b9263040013199c5cb480125d5ca349f5d6dc55) Signed-off-by: Rasmus Villemoes --- meta/lib/oeqa/selftest/cases/sstatetests.py | 78 ++++++++------------- 1 file changed, 30 insertions(+), 48 deletions(-) diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py index 7231115a6b..08f94b168a 100644 --- a/meta/lib/oeqa/selftest/cases/sstatetests.py +++ b/meta/lib/oeqa/selftest/cases/sstatetests.py @@ -83,55 +83,43 @@ class SStateBase(OESelftestTestCase): return result # Test sstate files creation and their location and directory perms - def run_test_sstate_creation(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True, should_pass=True): - self.config_sstate(temp_sstate_location, [self.sstate_path]) + def run_test_sstate_creation(self, targets, hostdistro_specific): + self.config_sstate(True, [self.sstate_path]) + + bitbake(['-cclean'] + targets) - if self.temp_sstate_location: - bitbake(['-cclean'] + targets) - else: - bitbake(['-ccleansstate'] + targets) - - # We need to test that the env umask have does not effect sstate directory creation - # So, first, we'll get the current umask and set it to something we know incorrect - # See: sstate_task_postfunc for correct umask of os.umask(0o002) - import os - def current_umask(): - current_umask = os.umask(0) - os.umask(current_umask) - return current_umask - - orig_umask = current_umask() # Set it to a umask we know will be 'wrong' - os.umask(0o022) + with bb.utils.umask(0o022): + bitbake(targets) - bitbake(targets) - file_tracker = [] - results = self.search_sstate('|'.join(map(str, targets)), distro_specific, distro_nonspecific) - if distro_nonspecific: - for r in results: - if r.endswith(("_populate_lic.tar.zst", "_populate_lic.tar.zst.siginfo", "_fetch.tar.zst.siginfo", "_unpack.tar.zst.siginfo", "_patch.tar.zst.siginfo")): - continue - file_tracker.append(r) - else: - file_tracker = results + # Distro specific files + distro_specific_files = self.search_sstate('|'.join(map(str, targets)), True, False) - if should_pass: - self.assertTrue(file_tracker , msg="Could not find sstate files for: %s" % ', '.join(map(str, targets))) + # Distro non-specific + distro_non_specific_files = [] + results = self.search_sstate('|'.join(map(str, targets)), False, True) + for r in results: + if r.endswith(("_populate_lic.tar.zst", "_populate_lic.tar.zst.siginfo", "_fetch.tar.zst.siginfo", "_unpack.tar.zst.siginfo", "_patch.tar.zst.siginfo")): + continue + distro_non_specific_files.append(r) + + if hostdistro_specific: + self.assertTrue(distro_specific_files , msg="Could not find sstate files for: %s" % ', '.join(map(str, targets))) + self.assertFalse(distro_non_specific_files, msg="Found sstate files in the wrong place for: %s (found %s)" % (', '.join(map(str, targets)), str(distro_non_specific_files))) else: - self.assertTrue(not file_tracker , msg="Found sstate files in the wrong place for: %s (found %s)" % (', '.join(map(str, targets)), str(file_tracker))) + self.assertTrue(distro_non_specific_files , msg="Could not find sstate files for: %s" % ', '.join(map(str, targets))) + self.assertFalse(distro_specific_files, msg="Found sstate files in the wrong place for: %s (found %s)" % (', '.join(map(str, targets)), str(distro_specific_files))) # Now we'll walk the tree to check the mode and see if things are incorrect. badperms = [] for root, dirs, files in os.walk(self.sstate_path): for directory in dirs: - if (os.stat(os.path.join(root, directory)).st_mode & 0o777) != 0o775: - badperms.append(os.path.join(root, directory)) + mode = os.stat(os.path.join(root, directory)).st_mode & 0o777 + if mode != 0o775: + badperms.append("%s: %s vs %s" % (os.path.join(root, directory), mode, 0o775)) - # Return to original umask - os.umask(orig_umask) - - if should_pass: - self.assertTrue(badperms , msg="Found sstate directories with the wrong permissions: %s (found %s)" % (', '.join(map(str, targets)), str(badperms))) + # Check badperms is empty + self.assertFalse(badperms , msg="Found sstate directories with the wrong permissions: %s (found %s)" % (', '.join(map(str, targets)), str(badperms))) # Test the sstate files deletion part of the do_cleansstate task def run_test_cleansstate_task(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True): @@ -256,17 +244,11 @@ class SStateTests(SStateBase): bitbake("dbus-wait-test -c unpack") class SStateCreation(SStateBase): - def test_sstate_creation_distro_specific_pass(self): - self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True) - - def test_sstate_creation_distro_specific_fail(self): - self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True, should_pass=False) - - def test_sstate_creation_distro_nonspecific_pass(self): - self.run_test_sstate_creation(['linux-libc-headers'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True) + def test_sstate_creation_distro_specific(self): + self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], hostdistro_specific=True) - def test_sstate_creation_distro_nonspecific_fail(self): - self.run_test_sstate_creation(['linux-libc-headers'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True, should_pass=False) + def test_sstate_creation_distro_nonspecific(self): + self.run_test_sstate_creation(['linux-libc-headers'], hostdistro_specific=False) class SStateCleanup(SStateBase): def test_cleansstate_task_distro_specific_nonspecific(self):