From patchwork Fri Jun 5 04:58:25 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anders Heimer X-Patchwork-Id: 89335 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 52D8BCD6E79 for ; Fri, 5 Jun 2026 04:58:39 +0000 (UTC) Received: from DUZPR83CU001.outbound.protection.outlook.com (DUZPR83CU001.outbound.protection.outlook.com [52.101.66.29]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.1519.1780635511989931224 for ; Thu, 04 Jun 2026 21:58:33 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@est.tech header.s=selector1 header.b=vla7C12T; spf=pass (domain: est.tech, ip: 52.101.66.29, mailfrom: anders.heimer@est.tech) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E1d1Ye00zafQENalYe6TzJJjlaZDKbpt+wmEZa9BTc5J7xcAUKj3YkwAkyV/WuDc9XuIy6v+eSxKVab0lAE5ZBc5VvZZFZEyW91EllBGs4WWMuxztn+KvFMJqwkjV0v1+aY2+MDmK34jRM1YIvb0wmCeERkYyOXcguGfMZM/RLgofTiMyDlygN+aaW7fW9/bj+5bUQJ6rVpWkhy3qNrudXoJweP0GC2V9r43PSQPe/2kxpcYShU9Qh/NeYtSBHJYDQ2a/lLct+Vrfb8lRdoSTIBXZpHu8Iw526NS8esCc/dt0podpMpoE60bcMLLqbgX6ERPkvQF3NvSYZs+OQ/cyg== 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=AcTlonNUyQeLyskhT67sW1FTcHMexp+HnXRHYqJ2liw=; b=vsxfr8LvVp88Lq5B8IqpJ1LRvQ7bWdXqJ9qHqCxjDpHHfnIyygmuCKHLCxaRrMFpwDHpOq6MBW/ciEt8fu6xUbtWIcsE69Z9ohHWsNqXOewgoWLIMGnmSpMpUfJBEugyFbuQowEd9kycKOUe7F8kHUsysFLqxX5JmY6hpXWeR+QZuO+2K1wW5KRAwCCVB8cc08RVF7xUziBzAChr/1rm0xMrQRKJvo86moM4RcLJ7T1LVDKYeMSrEpgWq88EqwNumUls0OInV2PkEVgzlqeGMrVF1FqJoX6myogAfMI6rJAYP1psxlGPoBRX/dz/6kiFHjCjDK/QE/a9fAIZqYeyBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=est.tech; dmarc=pass action=none header.from=est.tech; dkim=pass header.d=est.tech; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=est.tech; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AcTlonNUyQeLyskhT67sW1FTcHMexp+HnXRHYqJ2liw=; b=vla7C12TaROsk30Rxri4I2Ed5F7BXX5s8tiWOUhl5MNhryTClwoOKpjO5kkLJ7sz1x2VRuWagDl1P03xhUiztM3QtOyscsTeHwAnIl6Vz0jAxRR622y0RLwP+r//P3XumCTEmoBO08IIyewqAL9QU0L7ML7xIhCphVt6y0y14bgfCD6H8RCHluFvgkzLPPE1SG6S+dcgpLBb1rlV2B7vioDJuH7JlEdEwpQzYVgyAKATErG9AvaF/GlFxhEjHL/7uDV0wbp+2LkAVZoNyw12w0QjlxDfnKTpz40zz1xvxWajGV0JQqe1Lvphc2Utm1ke2YPJKnCeubZRhR9azmr2BA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=est.tech; Received: from DB9P189MB1641.EURP189.PROD.OUTLOOK.COM (2603:10a6:10:2ac::9) by AM0P189MB0785.EURP189.PROD.OUTLOOK.COM (2603:10a6:208:19f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.8; Fri, 5 Jun 2026 04:58:29 +0000 Received: from DB9P189MB1641.EURP189.PROD.OUTLOOK.COM ([fe80::90da:b700:f102:5c82]) by DB9P189MB1641.EURP189.PROD.OUTLOOK.COM ([fe80::90da:b700:f102:5c82%6]) with mapi id 15.21.0092.007; Fri, 5 Jun 2026 04:58:29 +0000 From: Anders Heimer To: bitbake-devel@lists.openembedded.org Subject: [PATCH 1/2] hashserv/tests: use valid 64-character unihashes Date: Fri, 5 Jun 2026 06:58:25 +0200 Message-ID: <20260605045826.2052909-2-anders.heimer@est.tech> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260605045826.2052909-1-anders.heimer@est.tech> References: <20260605045826.2052909-1-anders.heimer@est.tech> X-ClientProxiedBy: DU7PR01CA0042.eurprd01.prod.exchangelabs.com (2603:10a6:10:50e::26) To DB9P189MB1641.EURP189.PROD.OUTLOOK.COM (2603:10a6:10:2ac::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9P189MB1641:EE_|AM0P189MB0785:EE_ X-MS-Office365-Filtering-Correlation-Id: 695ec6ed-c2ad-4247-4e56-08dec2bf157a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|18002099003|3023799007|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: jLN1YP5+1zL5ySFWpgmUJdPfXsfqZB0Npkcj0gjZrCnMmmQ3u64lOCnl4pTpfhQzNb3hAbAnXTa/9Y8mC/j7IgSoTFPKTedfQPv+D/xepr3MMCYJtr/bpNTg0OtGIXu+oFt8otggSBH3vqvsBrT2/QFHoFQHSj4kavsHaQmdFsTwocTOEOJVtoNPIwFHX1wik8TV2X2T2McC6jkYgYF77VLMhPGM5+hkAYYBQey2CHQZo4aYYE2UraZVwBkmr0ac6OcO/fBRgLVVZwUOvESL+0fGNDHe26aE+/JiJCc1pq9rQDywysADrDl1s/VrrHOIaxpE8e2NsUllCjkr4sZ5ruX1qTgFdx1pnAf4HHOJmMkOwFk+yRPTAcNSlytzwZTPylCIu4lvLhJ6zQXpDxe6lUTVN6G4g2DPPU22t6KR9vqNbej74qWoeyV5PLtIe8igvbSwrvNuI+/oyw6M5vByYn3ADSW7ZjTkT+pN/U1CMAKnqn8Obn9qiCrke4RbiCmV//d5F4MMldD1TQjSgjchO26BdbMnKoX/+5liOipNh/8hV3Z7d6k0SdWo68a5fs/k2AEMnsEmeze5xGdqGjqGxmqH9ASFKXi/qmkqYnrBPreVUkCKIEvpUXLnNNWRqlk5N8TrElOYFqFcVIlxb6QTHO5ZzxwnQE27JfgK+zxUKG+dP+CLrxPtbnZkx1ZyzJxD X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9P189MB1641.EURP189.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(18002099003)(3023799007)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: I84tJDX5oe8iYlwgguuDfa6NnXMS9O+DxgqQBfIM8yHrnwDS5FLYs/kx91wfyAYV5GMlCwx1aqGmp7tJliEXLUZ+8C1UpnJ+Txcwp3p6GWKUmouQLC0X423p17Thl2RqM3ykFAgBHozR1zvnecrbjjM1Ph+tyRos255WJcykXu7ouO/7PzlGibU48GWTzewsH9Az6Xfaypgu1+tRqQNz9J8DyVKBaJJyTd2TaFtNk34GBQQb+ZtZMOY2QueRfzcA/GWLwbLcDoQdAGg+bKPg0gjq6d3ARns0Al8eh9V/XVn3AwkG1RMW6Rghtq80zmvoWCaAzsTLbkMTl05Gj9Cpwuz9eSkdfiWSkCb6W+03trnHU5xkrDDscZJPfIqSEPO2zux77Q0tBS0KziWpfea/fpUHvMYeJHg3PDXD2DRBWvm8aW8W3CzdY6SEgPu08UzTJmvqd/FGzzsRN5Ed1+jngHTx9sdWLpiH2ulNXRnsosd4b+0BrgMU7Z5nmHVq/VPQQp+S5hSBW1cZc9kf72eLhL0DpJbDABBlJY5qEIp76yue/YqncdtaPZ6j8Pf1AEtsd+xRkM/mxkZXRc4Dp2r+pQOINrmjWCBC3ZoZBmg3QoAs/5XlwamPAIqzk36yWUnamvCXGm1ZttTTUcOZFqCOUGDpoTclIhtcKUfU4xC7AFqiJblkyw3TGDkAU/sRAxLgVLFI9lH0E8iWW4EHpxsgidIBXBY6xnXrQsJyEKQG5ape5yZA7M+NNC7sAH8T9T3GjLhHIoIXMFZ5YChpL7BWPD9UYNw9XjDcHQIWI2K2n6LOZXZYyyJhAXIGJsiyqqQ1JGquojwe6sg+WrPkx81ZZS6c8stiN/E9+Lt97z2lkGiYualdDUhKnHOenL0JzAPQWHKU9ER6fQqbfiO1zTSGy8Kuqe/wio1le6aLq71bXLgijMEVlphAzd0j0BVRdchh3buOsuZbaWUzmNT+fBDdTaiSX9V+hN6aFiq08pPHujZ4LsjuUA2Y23Bx7z4q69rulvz5Y8jFV1RoonwmTaBSacMhJ/6v9a6WIhHs+LTY5gMgy2ZrglynTktS/4EFtm273tt4sk9goZsDo0QMZZ5KHXm3TypUAKXiUivbLpyB/Kb7eRYrvD8MahyjPcTb0r1eB0K5FWoIT5mVGqzj1vp9vuNdysF54+YOMBJvGZ0nrT9qZvEKU/HmGRP8EaDYGypJ42DU9YjVZzLhxCvRlle2gUD3H/2S9kUhU7CaRjdR+nYpKVhj5G1zvVHX6w6Y/n6Cf1CxJlGCD1buejP1BqLbbN0sH/EMI132HjG5HlIIXuoegPhr21r/EDrM+WLHwi6nE6QG9tBrmetw0sbD+kGyqqonfNiqaui3piPYMBJ7pL+MPYLcJdgCGLZNQmwvjYDZWyu6EmsL0DaZuDFjvofubGprAFqFviW7rRiICUir1JsJMNpMsW3j2cGqzH3/TlSsLYKRMKb+ikCtIKrge1EB0+KaUk+RAo4LQ4H2ObzqngFrRZo6/8kew241FG3blidtGXCgMrHYx+3vvTSdUkUA7uwclBVfyjiOXV15SkzukmyIfKvDEBsK2Q+ctsi1Ipj8eZXWaE2chfS7TOJqNjb0vvpuQo98JIzu7gKAMkKKLO6escFAX6MO7d0ClE6amR5+8Dpf0Ud4pNSZXInjaYng1cwLV6Bf/EI/xhIbTukm0SZAFTzi+tSyxsk+llML7ifGgbvJN+tSDOjgtKtCNZwEUA== X-OriginatorOrg: est.tech X-MS-Exchange-CrossTenant-Network-Message-Id: 695ec6ed-c2ad-4247-4e56-08dec2bf157a X-MS-Exchange-CrossTenant-AuthSource: DB9P189MB1641.EURP189.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2026 04:58:29.2830 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d2585e63-66b9-44b6-a76e-4f4b217d97fd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VFzVsYPBfNjqB8pTUZJaLHYl5kOKjsVjPpRXKsUTI2RMFaTFhe2T1j5aF1CU9Lko3d/qybsi2/PZXREeio8Axw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0P189MB0785 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 05 Jun 2026 04:58:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/19613 Signed-off-by: Anders Heimer --- lib/hashserv/tests.py | 164 ++++++++++++++++++++++++++++-------------- 1 file changed, 110 insertions(+), 54 deletions(-) diff --git a/lib/hashserv/tests.py b/lib/hashserv/tests.py index 124d8aa00..83ce0c5ca 100644 --- a/lib/hashserv/tests.py +++ b/lib/hashserv/tests.py @@ -28,6 +28,7 @@ from pathlib import Path THIS_DIR = Path(__file__).parent BIN_DIR = THIS_DIR.parent.parent / "bin" + def server_prefunc(server, idx): logging.basicConfig(level=logging.DEBUG, filename='bbhashserv-%d.log' % idx, filemode='w', format='%(levelname)s %(filename)s:%(lineno)d %(message)s') @@ -124,7 +125,7 @@ class HashEquivalenceTestSetup(object): # Simple test that hashes can be created taskhash = '35788efcb8dfb0a02659d81cf2bfd695fb30faf9' outhash = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f' - unihash = 'f46d3fbb439bd9b921095da657a4de906510d2cd' + unihash = 'a69ec97f5af2e21e1a1f9cc8896965515d5559425666f734e245a3d40cee33d9' self.assertClientGetHash(client, taskhash, None) @@ -178,7 +179,7 @@ class HashEquivalenceCommonTests(object): # assigned the same unihash taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4' outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8' - unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646' + unihash = '46edb5140d2613049332d0bf3745d9fafec9c559dac8cc61813739a28007fcdf' result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') @@ -186,7 +187,7 @@ class HashEquivalenceCommonTests(object): # Report a different task with the same outhash. The returned unihash # should match the first task taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4' - unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b' + unihash2 = 'bf6e81926066f770e960f9f777cd088c62bea9addb7745f3e77deaa81a645747' result = self.client.report_unihash(taskhash2, self.METHOD, outhash, unihash2) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') @@ -196,19 +197,19 @@ class HashEquivalenceCommonTests(object): # taskhash taskhash = '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a' outhash = 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e' - unihash = '218e57509998197d570e2c98512d0105985dffc9' + unihash = '5b521d8a12683086cc08bc2c6d94a7a2dcff17eba53b9911e145d51164689380' self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertClientGetHash(self.client, taskhash, unihash) outhash2 = '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d' - unihash2 = 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c' + unihash2 = 'a37541b54fd22440e292f617eb30ba07455e88fb0b9f0952eca229b6356290e3' self.client.report_unihash(taskhash, self.METHOD, outhash2, unihash2) self.assertClientGetHash(self.client, taskhash, unihash) outhash3 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4' - unihash3 = '9217a7d6398518e5dc002ed58f2cbbbc78696603' + unihash3 = '6842f1f2daccd96ddef15c9154d4e41ac8a2300d781ac9a9db7f8afeb8a96808' self.client.report_unihash(taskhash, self.METHOD, outhash3, unihash3) self.assertClientGetHash(self.client, taskhash, unihash) @@ -268,7 +269,7 @@ class HashEquivalenceCommonTests(object): # Simple test that hashes can be created taskhash = 'c665584ee6817aa99edfc77a44dd853828279370' outhash = '3c979c3db45c569f51ab7626a4651074be3a9d11a84b1db076f5b14f7d39db44' - unihash = '90e9bc1d1f094c51824adca7f8ea79a048d68824' + unihash = '06f89b8f329ba8124ff73c56d09ef921b42624747c421277bddaf5e23f136e57' self.assertClientGetHash(self.client, taskhash, None) @@ -361,7 +362,7 @@ class HashEquivalenceCommonTests(object): # Basic report taskhash = '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a' outhash = 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e' - unihash = '218e57509998197d570e2c98512d0105985dffc9' + unihash = '5b521d8a12683086cc08bc2c6d94a7a2dcff17eba53b9911e145d51164689380' self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) check_hash(taskhash, unihash, None) @@ -369,7 +370,7 @@ class HashEquivalenceCommonTests(object): # Duplicated taskhash with multiple output hashes and unihashes. # All servers should agree with the originally reported hash outhash2 = '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d' - unihash2 = 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c' + unihash2 = 'a37541b54fd22440e292f617eb30ba07455e88fb0b9f0952eca229b6356290e3' self.client.report_unihash(taskhash, self.METHOD, outhash2, unihash2) check_hash(taskhash, unihash, unihash) @@ -377,7 +378,7 @@ class HashEquivalenceCommonTests(object): # Report an equivalent task. The sideload will originally report # no unihash until backfilled taskhash3 = "044c2ec8aaf480685a00ff6ff49e6162e6ad34e1" - unihash3 = "def64766090d28f627e816454ed46894bb3aab36" + unihash3 = "aca636d800aef40e6ddcea4b2262cc4ea0d1180a6783e5b4653a20c7dd73458d" self.client.report_unihash(taskhash3, self.METHOD, outhash, unihash3) check_hash(taskhash3, unihash, None) @@ -386,7 +387,7 @@ class HashEquivalenceCommonTests(object): # propagating to the upstream server taskhash4 = "e3da00593d6a7fb435c7e2114976c59c5fd6d561" outhash4 = "1cf8713e645f491eb9c959d20b5cae1c47133a292626dda9b10709857cbe688a" - unihash4 = "3b5d3d83f07f259e9086fcb422c855286e18a57d" + unihash4 = "7aebef07d66a8c0f92d0c4f65ec8b1fbb850a3693c53827b8774b64fa9a8a9fe" down_client.report_unihash(taskhash4, self.METHOD, outhash4, unihash4) down_client.backfill_wait() @@ -398,18 +399,18 @@ class HashEquivalenceCommonTests(object): # match which was previously reported to the upstream server taskhash5 = '35788efcb8dfb0a02659d81cf2bfd695fb30faf9' outhash5 = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f' - unihash5 = 'f46d3fbb439bd9b921095da657a4de906510d2cd' + unihash5 = 'a69ec97f5af2e21e1a1f9cc8896965515d5559425666f734e245a3d40cee33d9' result = self.client.report_unihash(taskhash5, self.METHOD, outhash5, unihash5) taskhash6 = '35788efcb8dfb0a02659d81cf2bfd695fb30fafa' - unihash6 = 'f46d3fbb439bd9b921095da657a4de906510d2ce' + unihash6 = 'eabc7a98e0c12bbeb8394dbdf055eb81aac60e4a14cca5c1f069d36efc933b23' result = down_client.report_unihash(taskhash6, self.METHOD, outhash5, unihash6) self.assertEqual(result['unihash'], unihash5, 'Server failed to copy unihash from upstream') # Tests read through from server with taskhash7 = '9d81d76242cc7cfaf7bf74b94b9cd2e29324ed74' outhash7 = '8470d56547eea6236d7c81a644ce74670ca0bbda998e13c629ef6bb3f0d60b69' - unihash7 = '05d2a63c81e32f0a36542ca677e8ad852365c538' + unihash7 = '7521a98a0c645341bc51559b234ef37a097e8f3a01665e0303a317925ab7b4d5' self.client.report_unihash(taskhash7, self.METHOD, outhash7, unihash7) result = down_client.get_taskhash(self.METHOD, taskhash7, True) @@ -420,7 +421,7 @@ class HashEquivalenceCommonTests(object): taskhash8 = '86978a4c8c71b9b487330b0152aade10c1ee58aa' outhash8 = 'ca8c128e9d9e4a28ef24d0508aa20b5cf880604eacd8f65c0e366f7e0cc5fbcf' - unihash8 = 'd8bcf25369d40590ad7d08c84d538982f2023e01' + unihash8 = '83386d9385b0bf3ba25693127ddcaaadeaa1c4bf8cb0baecfb5314b9a20072a1' self.client.report_unihash(taskhash8, self.METHOD, outhash8, unihash8) result = down_client.get_outhash(self.METHOD, outhash8, taskhash8) @@ -431,7 +432,7 @@ class HashEquivalenceCommonTests(object): taskhash9 = 'ae6339531895ddf5b67e663e6a374ad8ec71d81c' outhash9 = 'afc78172c81880ae10a1fec994b5b4ee33d196a001a1b66212a15ebe573e00b5' - unihash9 = '6662e699d6e3d894b24408ff9a4031ef9b038ee8' + unihash9 = 'cc74784b2c0ad5b378a6b783c74c518d2c46b8b52fba29cb39a8430d742440d7' self.client.report_unihash(taskhash9, self.METHOD, outhash9, unihash9) result = down_client.get_taskhash(self.METHOD, taskhash9, False) @@ -454,7 +455,7 @@ class HashEquivalenceCommonTests(object): # Report a hash via the read-write server taskhash = '35788efcb8dfb0a02659d81cf2bfd695fb30faf9' outhash = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f' - unihash = 'f46d3fbb439bd9b921095da657a4de906510d2cd' + unihash = 'a69ec97f5af2e21e1a1f9cc8896965515d5559425666f734e245a3d40cee33d9' result = rw_client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') @@ -465,7 +466,7 @@ class HashEquivalenceCommonTests(object): # Ensure that reporting via the read-only server fails taskhash2 = 'c665584ee6817aa99edfc77a44dd853828279370' outhash2 = '3c979c3db45c569f51ab7626a4651074be3a9d11a84b1db076f5b14f7d39db44' - unihash2 = '90e9bc1d1f094c51824adca7f8ea79a048d68824' + unihash2 = '06f89b8f329ba8124ff73c56d09ef921b42624747c421277bddaf5e23f136e57' result = ro_client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2) self.assertEqual(result['unihash'], unihash2) @@ -554,15 +555,43 @@ class HashEquivalenceCommonTests(object): def test_get_unihash_batch(self): TEST_INPUT = ( # taskhash outhash unihash - ('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e','218e57509998197d570e2c98512d0105985dffc9'), + ( + '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', + 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e', + '5b521d8a12683086cc08bc2c6d94a7a2dcff17eba53b9911e145d51164689380', + ), # Duplicated taskhash with multiple output hashes and unihashes. - ('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c'), + ( + '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', + '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', + 'a37541b54fd22440e292f617eb30ba07455e88fb0b9f0952eca229b6356290e3', + ), # Equivalent hash - ("044c2ec8aaf480685a00ff6ff49e6162e6ad34e1", '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', "def64766090d28f627e816454ed46894bb3aab36"), - ("e3da00593d6a7fb435c7e2114976c59c5fd6d561", "1cf8713e645f491eb9c959d20b5cae1c47133a292626dda9b10709857cbe688a", "3b5d3d83f07f259e9086fcb422c855286e18a57d"), - ('35788efcb8dfb0a02659d81cf2bfd695fb30faf9', '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', 'f46d3fbb439bd9b921095da657a4de906510d2cd'), - ('35788efcb8dfb0a02659d81cf2bfd695fb30fafa', '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', 'f46d3fbb439bd9b921095da657a4de906510d2ce'), - ('9d81d76242cc7cfaf7bf74b94b9cd2e29324ed74', '8470d56547eea6236d7c81a644ce74670ca0bbda998e13c629ef6bb3f0d60b69', '05d2a63c81e32f0a36542ca677e8ad852365c538'), + ( + "044c2ec8aaf480685a00ff6ff49e6162e6ad34e1", + '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', + "aca636d800aef40e6ddcea4b2262cc4ea0d1180a6783e5b4653a20c7dd73458d", + ), + ( + "e3da00593d6a7fb435c7e2114976c59c5fd6d561", + "1cf8713e645f491eb9c959d20b5cae1c47133a292626dda9b10709857cbe688a", + "7aebef07d66a8c0f92d0c4f65ec8b1fbb850a3693c53827b8774b64fa9a8a9fe", + ), + ( + '35788efcb8dfb0a02659d81cf2bfd695fb30faf9', + '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', + 'a69ec97f5af2e21e1a1f9cc8896965515d5559425666f734e245a3d40cee33d9', + ), + ( + '35788efcb8dfb0a02659d81cf2bfd695fb30fafa', + '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', + 'eabc7a98e0c12bbeb8394dbdf055eb81aac60e4a14cca5c1f069d36efc933b23', + ), + ( + '9d81d76242cc7cfaf7bf74b94b9cd2e29324ed74', + '8470d56547eea6236d7c81a644ce74670ca0bbda998e13c629ef6bb3f0d60b69', + '7521a98a0c645341bc51559b234ef37a097e8f3a01665e0303a317925ab7b4d5', + ), ) EXTRA_QUERIES = ( "6b6be7a84ab179b4240c4302518dc3f6", @@ -578,28 +607,56 @@ class HashEquivalenceCommonTests(object): ) self.assertListEqual(result, [ - "218e57509998197d570e2c98512d0105985dffc9", - "218e57509998197d570e2c98512d0105985dffc9", - "218e57509998197d570e2c98512d0105985dffc9", - "3b5d3d83f07f259e9086fcb422c855286e18a57d", - "f46d3fbb439bd9b921095da657a4de906510d2cd", - "f46d3fbb439bd9b921095da657a4de906510d2cd", - "05d2a63c81e32f0a36542ca677e8ad852365c538", + "5b521d8a12683086cc08bc2c6d94a7a2dcff17eba53b9911e145d51164689380", + "5b521d8a12683086cc08bc2c6d94a7a2dcff17eba53b9911e145d51164689380", + "5b521d8a12683086cc08bc2c6d94a7a2dcff17eba53b9911e145d51164689380", + "7aebef07d66a8c0f92d0c4f65ec8b1fbb850a3693c53827b8774b64fa9a8a9fe", + "a69ec97f5af2e21e1a1f9cc8896965515d5559425666f734e245a3d40cee33d9", + "a69ec97f5af2e21e1a1f9cc8896965515d5559425666f734e245a3d40cee33d9", + "7521a98a0c645341bc51559b234ef37a097e8f3a01665e0303a317925ab7b4d5", None, ]) def test_unihash_exists_batch(self): TEST_INPUT = ( # taskhash outhash unihash - ('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e','218e57509998197d570e2c98512d0105985dffc9'), + ( + '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', + 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e', + '5b521d8a12683086cc08bc2c6d94a7a2dcff17eba53b9911e145d51164689380', + ), # Duplicated taskhash with multiple output hashes and unihashes. - ('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c'), + ( + '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', + '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', + 'a37541b54fd22440e292f617eb30ba07455e88fb0b9f0952eca229b6356290e3', + ), # Equivalent hash - ("044c2ec8aaf480685a00ff6ff49e6162e6ad34e1", '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', "def64766090d28f627e816454ed46894bb3aab36"), - ("e3da00593d6a7fb435c7e2114976c59c5fd6d561", "1cf8713e645f491eb9c959d20b5cae1c47133a292626dda9b10709857cbe688a", "3b5d3d83f07f259e9086fcb422c855286e18a57d"), - ('35788efcb8dfb0a02659d81cf2bfd695fb30faf9', '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', 'f46d3fbb439bd9b921095da657a4de906510d2cd'), - ('35788efcb8dfb0a02659d81cf2bfd695fb30fafa', '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', 'f46d3fbb439bd9b921095da657a4de906510d2ce'), - ('9d81d76242cc7cfaf7bf74b94b9cd2e29324ed74', '8470d56547eea6236d7c81a644ce74670ca0bbda998e13c629ef6bb3f0d60b69', '05d2a63c81e32f0a36542ca677e8ad852365c538'), + ( + "044c2ec8aaf480685a00ff6ff49e6162e6ad34e1", + '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d', + "aca636d800aef40e6ddcea4b2262cc4ea0d1180a6783e5b4653a20c7dd73458d", + ), + ( + "e3da00593d6a7fb435c7e2114976c59c5fd6d561", + "1cf8713e645f491eb9c959d20b5cae1c47133a292626dda9b10709857cbe688a", + "7aebef07d66a8c0f92d0c4f65ec8b1fbb850a3693c53827b8774b64fa9a8a9fe", + ), + ( + '35788efcb8dfb0a02659d81cf2bfd695fb30faf9', + '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', + 'a69ec97f5af2e21e1a1f9cc8896965515d5559425666f734e245a3d40cee33d9', + ), + ( + '35788efcb8dfb0a02659d81cf2bfd695fb30fafa', + '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f', + 'eabc7a98e0c12bbeb8394dbdf055eb81aac60e4a14cca5c1f069d36efc933b23', + ), + ( + '9d81d76242cc7cfaf7bf74b94b9cd2e29324ed74', + '8470d56547eea6236d7c81a644ce74670ca0bbda998e13c629ef6bb3f0d60b69', + '7521a98a0c645341bc51559b234ef37a097e8f3a01665e0303a317925ab7b4d5', + ), ) EXTRA_QUERIES = ( "6b6be7a84ab179b4240c4302518dc3f6", @@ -939,14 +996,14 @@ class HashEquivalenceCommonTests(object): def test_gc(self): taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4' outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8' - unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646' + unihash = '46edb5140d2613049332d0bf3745d9fafec9c559dac8cc61813739a28007fcdf' result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4' outhash2 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4' - unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b' + unihash2 = 'bf6e81926066f770e960f9f777cd088c62bea9addb7745f3e77deaa81a645747' result = self.client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2) self.assertClientGetHash(self.client, taskhash2, unihash2) @@ -972,21 +1029,21 @@ class HashEquivalenceCommonTests(object): def test_gc_stream(self): taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4' outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8' - unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646' + unihash = '46edb5140d2613049332d0bf3745d9fafec9c559dac8cc61813739a28007fcdf' result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4' outhash2 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4' - unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b' + unihash2 = 'bf6e81926066f770e960f9f777cd088c62bea9addb7745f3e77deaa81a645747' result = self.client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2) self.assertClientGetHash(self.client, taskhash2, unihash2) taskhash3 = 'a1117c1f5a7c9ab2f5a39cc6fe5e6152169d09c0' outhash3 = '7289c414905303700a1117c1f5a7c9ab2f5a39cc6fe5e6152169d09c04f9a53c' - unihash3 = '905303700a1117c1f5a7c9ab2f5a39cc6fe5e615' + unihash3 = 'f5966c8588a69948a89131d3aa63b914c5a63a8cb4820cb1c58694135ba77f0b' result = self.client.report_unihash(taskhash3, self.METHOD, outhash3, unihash3) self.assertClientGetHash(self.client, taskhash3, unihash3) @@ -1014,14 +1071,14 @@ class HashEquivalenceCommonTests(object): def test_gc_switch_mark(self): taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4' outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8' - unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646' + unihash = '46edb5140d2613049332d0bf3745d9fafec9c559dac8cc61813739a28007fcdf' result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4' outhash2 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4' - unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b' + unihash2 = 'bf6e81926066f770e960f9f777cd088c62bea9addb7745f3e77deaa81a645747' result = self.client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2) self.assertClientGetHash(self.client, taskhash2, unihash2) @@ -1059,14 +1116,14 @@ class HashEquivalenceCommonTests(object): def test_gc_switch_sweep_mark(self): taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4' outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8' - unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646' + unihash = '46edb5140d2613049332d0bf3745d9fafec9c559dac8cc61813739a28007fcdf' result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4' outhash2 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4' - unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b' + unihash2 = 'bf6e81926066f770e960f9f777cd088c62bea9addb7745f3e77deaa81a645747' result = self.client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2) self.assertClientGetHash(self.client, taskhash2, unihash2) @@ -1089,7 +1146,7 @@ class HashEquivalenceCommonTests(object): def test_gc_new_hashes(self): taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4' outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8' - unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646' + unihash = '46edb5140d2613049332d0bf3745d9fafec9c559dac8cc61813739a28007fcdf' result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') @@ -1106,7 +1163,7 @@ class HashEquivalenceCommonTests(object): taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4' outhash2 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4' - unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b' + unihash2 = 'bf6e81926066f770e960f9f777cd088c62bea9addb7745f3e77deaa81a645747' result = self.client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2) self.assertClientGetHash(self.client, taskhash2, unihash2) @@ -1405,14 +1462,14 @@ class TestHashEquivalenceClient(HashEquivalenceTestSetup, unittest.TestCase): def test_gc(self): taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4' outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8' - unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646' + unihash = '46edb5140d2613049332d0bf3745d9fafec9c559dac8cc61813739a28007fcdf' result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash) self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4' outhash2 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4' - unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b' + unihash2 = 'bf6e81926066f770e960f9f777cd088c62bea9addb7745f3e77deaa81a645747' result = self.client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2) self.assertClientGetHash(self.client, taskhash2, unihash2) @@ -1455,7 +1512,7 @@ class TestHashEquivalenceUnixServerLongPath(HashEquivalenceTestSetup, unittest.T # Simple test that hashes can be created taskhash = '35788efcb8dfb0a02659d81cf2bfd695fb30faf9' outhash = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f' - unihash = 'f46d3fbb439bd9b921095da657a4de906510d2cd' + unihash = 'a69ec97f5af2e21e1a1f9cc8896965515d5559425666f734e245a3d40cee33d9' self.assertClientGetHash(self.client, taskhash, None) @@ -1542,4 +1599,3 @@ class TestHashEquivalenceExternalServer(HashEquivalenceTestSetup, HashEquivalenc def test_auth_get_all_users(self): self.skipTest("Cannot test all users with external server") -