From patchwork Wed Sep 25 07:43:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sawas Etairidis X-Patchwork-Id: 49587 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 B8C49C369A7 for ; Wed, 25 Sep 2024 07:43:45 +0000 (UTC) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (EUR05-DB8-obe.outbound.protection.outlook.com [40.92.89.55]) by mx.groups.io with SMTP id smtpd.web10.10027.1727250217892818642 for ; Wed, 25 Sep 2024 00:43:38 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hotmail.com header.s=selector1 header.b=BdDMeegd; spf=pass (domain: hotmail.com, ip: 40.92.89.55, mailfrom: falital@hotmail.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SUYkiW3X+/e6/VXRcwmLvz9qcJv5G4+51LuANtVD6hYUtUqvna8ZPIicKyRnqv5JxjUHzSHX9GncPjGVMYfdMJ6PfT6yj+Km+XMAyXGMeDnQGR872TD6CtvdBXvRFriYV0bGEwBR3tv+oJJdl4e4L4gpzFnEeOdOmRXzNMPIit5mSbJVtkruGRAvCU7kiCJCisCFjSzOZMZi15cixy5h0JTmJq/VFEk2q/lngzBGHYFS6qewQu1tdnc5A6Mi/mbv1QeX7YdlrMh4TcTLnl8txxWA2P2R3oLKTBlR6+9BzFOnB2crLkGSL6CojQ9ynWlwYm363j7uJVe5vivIGUxjwQ== 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=66DpD3fgA5zKnt5LAwLcT8kwozf/YKTlEjulLTl8VX0=; b=ATd9xuQWTO0+FENIzOKvYAbT/aqTAP9W2nsaiZTIcGZJZRxNVSTSGSdytJya65XpwT+DYzEkcef0g38URS34hAhiTR+juW5ikiX1rSiSWjcs9+1QJnAxE0waiGOzUX3A8WcREtQ6TEEYYwxFtCciJb6W2m2r7yTF/kF/40s6y93dQzO2qPmRl1rIc7geM7wsftVR6wlJiW5bNCN5oV737UzjIHUs+5uB60uAApsbRDh1PQ3iAzVeBAJTH1mTHoMl4p/OKVKI2bqqYElof0ij7eHYW20lBSIbOHUf/wxt/swA/5r47hN1EScJ4XPIY6Ui8XBDGLQsS4M3Y1faegXetg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=66DpD3fgA5zKnt5LAwLcT8kwozf/YKTlEjulLTl8VX0=; b=BdDMeegdV85ZdcSamdoEeTjvR54EVZQiCWYFTXzpsZkHm70XY9di0i5D4OkECzF/40/aFcZh7GKDMIau8RM986j5xPAFD1UB/zVQtypfWhAccAvyQuTZwsftalxxgDJ6ZLh4kjoU3AiKX1CK2/7j/G6PTpmNFe2TtDdIuXSzlU5nkK7NLh0MbrhtKhjkbpL21oaBeSZXBwuURtk1nQ38dhcM/9R5C0bwmIG4i8S5FF9tXXToKPSCmUga3KfGMqLnx8ex2xFv+UIEA1d3j4/24AKCTHCtj/oh/NnjFwgDJI5fTtAiyKytvX2/xGRjlADZMZNT3cyMDzO5Wu5dBWI6lA== Received: from PRAP195MB1601.EURP195.PROD.OUTLOOK.COM (2603:10a6:102:298::17) by AM8P195MB1089.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:1cb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7982.27; Wed, 25 Sep 2024 07:43:35 +0000 Received: from PRAP195MB1601.EURP195.PROD.OUTLOOK.COM ([fe80::601b:ed61:5240:df8e]) by PRAP195MB1601.EURP195.PROD.OUTLOOK.COM ([fe80::601b:ed61:5240:df8e%4]) with mapi id 15.20.7982.022; Wed, 25 Sep 2024 07:43:35 +0000 From: Sawas Etairidis To: "bitbake-devel@lists.openembedded.org" Subject: [PATCH] tests/parse: Add ParseTest.test_unclosed_functions #bitbake Thread-Topic: [PATCH] tests/parse: Add ParseTest.test_unclosed_functions #bitbake Thread-Index: AQHbDx6gdZ7ospmGvki3nHbRZRjHYg== Date: Wed, 25 Sep 2024 07:43:34 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PRAP195MB1601:EE_|AM8P195MB1089:EE_ x-ms-office365-filtering-correlation-id: 74f9862f-0b18-41fe-839f-08dcdd35c2bc x-microsoft-antispam: BCL:0;ARA:14566002|8060799006|461199028|7092599003|12050799009|8062599003|15080799006|19110799003|9400799024|15030799003|10035399004|3412199025|4302099013|440099028|1602099012|102099032; x-microsoft-antispam-message-info: =?iso-8859-1?q?Pgb+XU/PxD+nZVgRZB1JhOb0qj?= =?iso-8859-1?q?GoDoyP6+hrvAxscFswUfzoc+qvR+BjkzPAbDBT6jBS82abXApU3a+ROVBAc0?= =?iso-8859-1?q?hUiPPmrTkWjDNmRuEURYcfJD2x+7iP/VGrV630g/1UX2GP+YOYlg6mHVDSpP?= =?iso-8859-1?q?EO3nx5JoJl8pXwe7cTic1Wt0flNqjvUCibxuA2KpJJvfhbvuZNcldMipTHkU?= =?iso-8859-1?q?domzTWEgOvP3uQbhrLb61j05aMULB0HHVjGaYBPjXUZnz+Txwyo84ubRVJmF?= =?iso-8859-1?q?OmhPXDlBNTW5whxufshx7sa7bt7KtHgkprWDmflaUSm9F+w6vwnm+mRAwLY/?= =?iso-8859-1?q?nAM3khSx6H6yoDsbOYkC4+7/dO9OBdhuRNAN1wpOCaKQF3x2/+T5fFd7dIxP?= =?iso-8859-1?q?cyw2mKEHsYWTzh/9pTxH7ZceOO0AuVePTmT2i4q9++lkHimhIHVNeh1CYewi?= =?iso-8859-1?q?vV/fCa64vTbwNY2fYOafT3KInYqC9pArrrrpiSJ8kaKH8ZgvC79XDtjNxOXU?= =?iso-8859-1?q?FeZlBRXpwr9hmXWNfY1vCQmB8l5ZneMPaHTSZJ/FsDNC/YGKYFBCXH+A493n?= =?iso-8859-1?q?GEUFP8JhX+9wdw+8VENfEuq1rtuQfGxv4dIcF1wjPEOcnLzEI+7UagZHcpfJ?= =?iso-8859-1?q?dHg8Y4CnjCZqnOfctDGbpwCo6KvwKA4ToyaINSZG8mmaO6hA3CVRzhGBycaB?= =?iso-8859-1?q?j5dU3qid5m09+JWFzpbCKZ9ZY4UVFxqqiHclrfsqSR+L/IveYvfSB8UMOPA2?= =?iso-8859-1?q?0S5mmXpATVM/rwURH1kdn83tbI7lI7iXEcin04jTjcCmmPkZ4yvDdQ4IvsoB?= =?iso-8859-1?q?uum0vX6+PW27n7J849ViFmK6a3kJfvGbVmVbst99+eu4gXlLOGQatD7cZF38?= =?iso-8859-1?q?53vr7hQbSiroBdUyBrGCGRen8S7ViJAEGyEvR28lw+6cdHAcpasi4H423cA/?= =?iso-8859-1?q?zs9BT0B9u959uGjUnpXu87pXfw7ZmKwctUMCoJ4W1xd2mR1y4dy16OJw=3D?= =?iso-8859-1?q?=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?hPvLNoPC6Mhau0gw9ohOgIR?= =?iso-8859-1?q?+ejyMZBj0OHoPkGiKslyJRW79CkRvBjbwhmYKgQKBIfHgLr5TFZqAgvu/jeb?= =?iso-8859-1?q?qw9s0omnFXEBnoNjlV83kIXAD6GF7MRiK+KDJEDc3GjUM4yp7wnyLjhg63IP?= =?iso-8859-1?q?CWFuSaPmVTiAE+kfFOmQaUAr5q1fimyDqI7Oc3Cs6670tUKD3lPzxIZ7fLtv?= =?iso-8859-1?q?iCX+HZFTLSENW511hvHH/B5zu/eVyDaty0QoQPvDLR1j9XCL92eNszglUR+n?= =?iso-8859-1?q?/ek3F4Yzl349y+AiKmWWAYN3LzVDkXSHHGp7wFFg2dHPS+qbiSaoTX6fc/ZD?= =?iso-8859-1?q?X3g2wf8K/ozYit8KjKG4CjuUgkYSHAJyTLQr1tijUazjlYtZccZi3hhrvc+z?= =?iso-8859-1?q?Fctv/LkMTutxHigQ2r25ZXqr5RGmMoNTX9kJJYVfI7u2iqzPO22dzJS9l+r0?= =?iso-8859-1?q?I8XqA9D6yl3xXu63LiYU1kXeMGOsKio9oxShH6lnuKYPNVEAfiEnLlSn5e9N?= =?iso-8859-1?q?6CBdwemdjQvytrAbnbQwzwG6fCiRuSOsLXRCNSnnDthC6Fm9C/X95fB/y3sX?= =?iso-8859-1?q?cDP2SdnFDlpgXP6flCDuCgHAf+wPoSHtcS1k/19OFz01LRREepFCNCAlpFEO?= =?iso-8859-1?q?ZinFqmcPNwe6pzsBFn2FtMJE5LqV0LVtPFX1y6dAbfMjQFnHS+2mI22F+paA?= =?iso-8859-1?q?k3e/Rhm+7r7DeytBqWoVcXO1OTXNJ8hyib3WAQEqMaG7SjmamS8DLDy5xM6v?= =?iso-8859-1?q?By22X/4vgQInTEaaGMHsyeDKzWKrIlmblFryfQerYUsJTbRCwb5bEkrBJadA?= =?iso-8859-1?q?LIajeA6OM0fNyaRncKQNv8qNq+sdLNoQzikveqWMrTbJUo3013452MT8Z8sz?= =?iso-8859-1?q?O+Vtgq2AVVm48e2TPeJuv+axN8oxV5T5cd0hAH3LTsEJaNsAVvOscTtdo06G?= =?iso-8859-1?q?DscjHOxOrVmwJIBS7ge36AL3x+ziBKkVE7opsnwpuw+GEt+Q4ZkdtnM/q+OK?= =?iso-8859-1?q?T371wyUhdUTAgJqxLeM2lFkyKUrAuqo4mp5NcQnZLxE/JET1vMQd/klV53Zg?= =?iso-8859-1?q?SQF6c5TY9a2I1fJ77/95jzmc7c89o8VWd6//RiQ3OfAkK7UAtP1OV/R4hO4J?= =?iso-8859-1?q?E7Lhl3YKp2KfeLIqBtUMzneZslRlGmnggQor6MVk0u9WbCjdAgTRxYCVdMXK?= =?iso-8859-1?q?gt3sopg/49fH1nooBvSo5sgs8jJeovrBzjJ/7JRA/7ltFpejowVyUdU7lxbP?= =?iso-8859-1?q?OVINO2srl1tB5OcxFv4fZ4A0RnTm7XSfA6tI=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-1ed92.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PRAP195MB1601.EURP195.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 74f9862f-0b18-41fe-839f-08dcdd35c2bc X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Sep 2024 07:43:34.9813 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P195MB1089 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 ; Wed, 25 Sep 2024 07:43:45 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/16599 This test covers the handling of unclosed functions. It tests that both whitespace and tabs generate the correct exception if added before a closing bracket. Additionally that a residue blocks generates a error is tested as well. [YOCTO #15470] [1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=15470 Signed-off-by: Savvas Etairidis --- lib/bb/tests/parse.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) -- 2.34.1 diff --git a/lib/bb/tests/parse.py b/lib/bb/tests/parse.py index 410679d5a..148355944 100644 --- a/lib/bb/tests/parse.py +++ b/lib/bb/tests/parse.py @@ -348,3 +348,45 @@ EXPORT_FUNCTIONS do_compile do_compilepython self.assertIn("else", d.getVar("do_compilepython")) check_function_flags(d) + export_function_unclosed_tab = """ +do_compile () { + bb.note("Something") +\t} +""" + export_function_unclosed_space = """ +do_compile () { + bb.note("Something") + } +""" + export_function_residue = """ +do_compile () { + bb.note("Something") +} + +include \\ +""" + + def test_unclosed_functions(self): + def test_helper(content, expected_error): + with tempfile.TemporaryDirectory() as tempdir: + recipename = tempdir + "/recipe_unclosed.bb" + with open(recipename, "w") as f: + f.write(content) + f.flush() + os.chdir(tempdir) + with self.assertRaises(bb.parse.ParseError) as error: + bb.parse.handle(recipename, bb.data.createCopy(self.d)) + self.assertIn(expected_error, str(error.exception)) + + with tempfile.TemporaryDirectory() as tempdir: + test_helper(self.export_function_unclosed_tab, "Unparsed lines from unclosed function") + test_helper(self.export_function_unclosed_space, "Unparsed lines from unclosed function") + test_helper(self.export_function_residue, "Unparsed lines") + + recipename_closed = tempdir + "/recipe_closed.bb" + with open(recipename_closed, "w") as in_file: + lines = self.export_function_unclosed_tab.split("\n") + lines[3] = "}" + in_file.write("\n".join(lines)) + in_file.flush() + bb.parse.handle(recipename_closed, bb.data.createCopy(self.d))