From patchwork Tue Oct 8 09:01:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Agathe Porte X-Patchwork-Id: 1994138 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XN95b6Jdzz1xvB for ; Tue, 8 Oct 2024 20:02:43 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1sy671-0004Le-HS; Tue, 08 Oct 2024 09:02:35 +0000 Received: from smtp-relay-canonical-0.internal ([10.131.114.83] helo=smtp-relay-canonical-0.canonical.com) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1sy66y-0004Dx-RB for kernel-team@lists.ubuntu.com; Tue, 08 Oct 2024 09:02:32 +0000 Received: from localhost (82-65-169-98.subs.proxad.net [82.65.169.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 6057E3F1A8 for ; Tue, 8 Oct 2024 09:02:32 +0000 (UTC) From: Agathe Porte To: kernel-team@lists.ubuntu.com Subject: [unstable][PATCH linux-signed 9/9] UBUNTU: [Packaging] introduce test_generate_control.py Date: Tue, 8 Oct 2024 11:01:32 +0200 Message-ID: <20241008090221.25747-10-agathe.porte@canonical.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241008090221.25747-1-agathe.porte@canonical.com> References: <20241008090221.25747-1-agathe.porte@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" Use pytest to test the full output of the tool, as well as the output of some options. The tests now can be run with: $ python3 -m pytest Signed-off-by: Agathe Porte --- debian/scripts/generate_control.py | 6 +- ...ontrol.py.ref => test_generate_control.py} | 62 ++++++++++++++++++- 2 files changed, 64 insertions(+), 4 deletions(-) rename debian/scripts/{generate_control.py.ref => test_generate_control.py} (61%) diff --git a/debian/scripts/generate_control.py b/debian/scripts/generate_control.py index 8e64ff3..816f0b0 100755 --- a/debian/scripts/generate_control.py +++ b/debian/scripts/generate_control.py @@ -191,8 +191,7 @@ def gen_dbgsym_binpkgs(signing: Signing, args: Namespace): ) -def main(args: Namespace): - signing = Signing.load("debian/package.config") +def main(signing: Signing, args: Namespace): replace_placeholders(signing, args) gen_binpkgs(signing, args) @@ -219,5 +218,6 @@ if __name__ == "__main__": parser.add_argument("abi_version") args = parser.parse_args() + signing = Signing.load("debian/package.config") - main(args) + main(signing, args) diff --git a/debian/scripts/generate_control.py.ref b/debian/scripts/test_generate_control.py similarity index 61% rename from debian/scripts/generate_control.py.ref rename to debian/scripts/test_generate_control.py index b5f016b..b1bc409 100644 --- a/debian/scripts/generate_control.py.ref +++ b/debian/scripts/test_generate_control.py @@ -1,4 +1,60 @@ -Source: linux-signed +import sys +from argparse import Namespace + +import generate_control +from config import Signing + + +class SigningMock: + def __init__(self): + self.flavour_archs = {} + self.arch_flavour_data = {} + + def package_flavour_archs(self, key): + return self.flavour_archs.get(key, []) + + +def test_gen_depends_uci_none(capfd): + signing = SigningMock() + generate_control.gen_depends_uci(signing) + + out, err = capfd.readouterr() + assert out == "" + + +def test_gen_depends_uci_cvm(capfd): + signing = SigningMock() + signing.flavour_archs["cvm"] = (("", ["amd64"]), ("", ["arm64"])) + generate_control.gen_depends_uci(signing) + + out, err = capfd.readouterr() + assert out == " ubuntu-core-initramfs [amd64 arm64] ,\n" + + +def test_gen_depends_uci_cvm_uc(capfd): + signing = SigningMock() + signing.flavour_archs["cvm"] = (("", ["amd64"]),) + signing.flavour_archs["uc"] = (("", ["arm64"]),) + generate_control.gen_depends_uci(signing) + + out, err = capfd.readouterr() + assert out == " ubuntu-core-initramfs [amd64 arm64] ,\n" + + +def test_main(capfd): + args = Namespace() + args.series = "oracular" + args.source_name = "linux-signed" + args.generate_name = "linux-generate" + args.source_version = "6.11.0-8.8" + args.unsigned_name = "linux" + args.unsigned_version = "6.11.0-8.8" + args.abi_version = "6.11.0-8" + + sys.stdin = open("debian/control.stub") + generate_control.main(Signing.load("debian/package.config"), args) + + expected_output = """Source: linux-signed Section: kernel Priority: optional Maintainer: Canonical Kernel Team @@ -72,3 +128,7 @@ Architecture: arm64 Depends: linux-image-unsigned-6.11.0-8-generic-64k-dbgsym Description: Signed kernel image generic-64k A link to the debugging symbols for the generic-64k signed kernel. +""" + + out, err = capfd.readouterr() + assert out == expected_output