From nobody Sun Nov 24 05:34:41 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1725999484; cv=none; d=zohomail.com; s=zohoarc; b=Sysy1sgJ70OIT9qMw5iVKdBQiinDb+EP6ZfKeB27ETZhmPo1xo9u5Ak5TefON6KdeVsJRY+5RfHLfb7cqGgkUXJa8Pd8RZZk5EcyeZn7vPG1Wvt5QXJJw5OYJOSqNOaJfciWu9lEfQHfHIXa1XdkM2ZotwoUAN40Ypze6PfnqHg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1725999484; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=s3gvbQ5RxB3TbCIBAE7+fXLRQemet9i7gqFpJdp4eCQ=; b=crsq0k9OXx8aEB956nQaxtpPKI5Xkj1BCcFNphWn2VQWs300lrJga34+PKcWVKpQtB2rzuNv79Azuxk3eFU2BUBy89HOw4CdAYjSySx9+IQYceRNi+Q7MO3O69bCqM8MQ07DZc/BbQ2DMtatrX/K/2siyrSdXJ0rtwnJEn8Ogok= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1725999484152209.72043672593009; Tue, 10 Sep 2024 13:18:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1so7JB-0007A2-04; Tue, 10 Sep 2024 16:17:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1so7J9-00079L-P2 for qemu-devel@nongnu.org; Tue, 10 Sep 2024 16:17:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1so7J8-0004NU-8l for qemu-devel@nongnu.org; Tue, 10 Sep 2024 16:17:51 -0400 Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-279-Qi7JjdTQOMCxBnGIgQgNsA-1; Tue, 10 Sep 2024 16:17:48 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C2D2B19560A2; Tue, 10 Sep 2024 20:17:46 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.193.120]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id BEC0619560AD; Tue, 10 Sep 2024 20:17:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1725999469; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=s3gvbQ5RxB3TbCIBAE7+fXLRQemet9i7gqFpJdp4eCQ=; b=Xo2MxySUpDxbgusGza5C5YrvZMwfBd0RimnGiFDbNRH6j/qplzU9Fk/s4mYRHV9FbJSr3K Z4U41rTgsA1V5uXaw5CPQ8m775D8A2U5TvxqZIh/v8VswxZJlQ+GAZjMFC7tZ5jJM1SsF2 wXYs2eQx3wu0YGuDe9V42N5A9GxIW2M= X-MC-Unique: Qi7JjdTQOMCxBnGIgQgNsA-1 From: Thomas Huth To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Peter Maydell Subject: [PATCH] tests/functional/qemu_test: Use Python hashlib instead of external programs Date: Tue, 10 Sep 2024 22:17:42 +0200 Message-ID: <20240910201742.239559-1-thuth@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.145, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1725999485346116600 Content-Type: text/plain; charset="utf-8" Some systems (like OpenBSD) do not have the sha256sum or sha512sum programs installed by default. Use the Python hashlib instead so we don't have to rely on the external programs. Reported-by: Peter Maydell Signed-off-by: Thomas Huth Reviewed-by: Brian Cain --- tests/functional/qemu_test/asset.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/functional/qemu_test/asset.py b/tests/functional/qemu_te= st/asset.py index d3be2aff82..3ec429217e 100644 --- a/tests/functional/qemu_test/asset.py +++ b/tests/functional/qemu_test/asset.py @@ -43,15 +43,21 @@ def _check(self, cache_file): if self.hash is None: return True if len(self.hash) =3D=3D 64: - sum_prog =3D 'sha256sum' + hl =3D hashlib.sha256() elif len(self.hash) =3D=3D 128: - sum_prog =3D 'sha512sum' + hl =3D hashlib.sha512() else: raise Exception("unknown hash type") =20 - checksum =3D subprocess.check_output( - [sum_prog, str(cache_file)]).split()[0] - return self.hash =3D=3D checksum.decode("utf-8") + # Calculate the hash of the file: + with open(cache_file, 'rb') as file: + while True: + chunk =3D file.read(1 << 20) + if not chunk: + break + hl.update(chunk) + + return hl.hexdigest() =20 def valid(self): return self.cache_file.exists() and self._check(self.cache_file) --=20 2.46.0