From patchwork Tue Aug 27 09:48:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 13779180 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E315AC5472C for ; Tue, 27 Aug 2024 09:51:22 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sispT-0001Vp-L0; Tue, 27 Aug 2024 05:49:35 -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 1sispR-0001T1-Mu for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:33 -0400 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sispC-00087m-W2 for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:33 -0400 Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-a86883231b4so687250666b.3 for ; Tue, 27 Aug 2024 02:49:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1724752156; x=1725356956; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=a4X6TRFYMmaxtsv96yS5TGFNVDmKt5lBez+VKj4/4Nk=; b=k+uaLie99cXGnV/lUbmORjQ/6/M+zgI5aDYWKKYbsthFJvuOkkQw4w4Y4ZbiEEnowB 9SLBWDrtTCfKt6QG8kTwn0E5sPBxUtEpLGAMWDqqD48vsNWiL/o/xshvf9MEcmQpJaJF x3uNnY2f2vSXCw3MUYNbx5p9Cbo5ui/mNR+MOoY3J/Lta8obONa2jd8XN6YthFaQ4x/L SoYozlJ8bUNg3Bb96X1CbR8IiGqVPLzFw83+4dKpU0mvYvONpCHeJa5WaibJy+NHRCCY xogqwavN/vFwNydlSbPDoEoJ5V0gtKApwe0cUqI+rHiKAYK/SDpCm6kxDf07Eheuqa5o OcUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724752156; x=1725356956; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a4X6TRFYMmaxtsv96yS5TGFNVDmKt5lBez+VKj4/4Nk=; b=iwRQ0UoXgw+ZVf+77xfOerYeDu082XUtB2rLgaLn2K0gjilgDVFXJhqDlvRkI7xeAb sZGm9Kf7sb6JLmWebHvHxssoNZfDKMGxSU/LuFygb8ZZ0SGXlMZ+71ULz2PboOFVYpUw aDohndiH5kV7g77EgmyBLWOyJXG8CWxOQ1ucqFVItneY6JjqW/DFjsuTxhXAQjeksw0i Zqwi8930nzsLDe8QEKAZduu6/6RCP/txN0ys0GsKmXvy1jRhTKXKwdgCm4TU/IimW2OU L/27VB6S3LBcM1I/pWxKz8UltZ4s7KCOucf1aLWR6R3X92wkJnpiKY34DD0PiDDfDO5Y hCZw== X-Gm-Message-State: AOJu0Yz6ps03ER3KuMATN1SL9Gs7qzosDvLxPRdm5Xf4G+fAN+M18B8a gCMEsOaaMPABs0h17iLSmP+m6PSVMIPNTdN5YXSA2hzIQdi7cNdudCJlqGNC2SdByihposSLLa4 F X-Google-Smtp-Source: AGHT+IESsw6D14F1WGKIiWF6josWD6FsvXN6lAXq8B80nnD8ByruTHfnziwp9tSc6h0Ojh8lEg5UqQ== X-Received: by 2002:a17:906:c14a:b0:a86:a41c:28b with SMTP id a640c23a62f3a-a86a52b1d91mr1002686966b.22.1724752155687; Tue, 27 Aug 2024 02:49:15 -0700 (PDT) Received: from m1x-phil.lan ([176.187.206.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a86e582c41bsm88182066b.98.2024.08.27.02.49.14 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 27 Aug 2024 02:49:15 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Huacai Chen , Beraldo Leal , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Thomas Huth , Cleber Rosa , Jiaxun Yang , Aurelien Jarno Subject: [PATCH v4 1/7] tests/functional: Convert mips64el Fuloong2e avocado test (1/2) Date: Tue, 27 Aug 2024 11:48:59 +0200 Message-ID: <20240827094905.80648-2-philmd@linaro.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240827094905.80648-1-philmd@linaro.org> References: <20240827094905.80648-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62f; envelope-from=philmd@linaro.org; helo=mail-ej1-x62f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Straight forward conversion. Update the SHA1 hashes to SHA256 hashes since SHA1 should not be used anymore nowadays. Since the asset is expected locally and the test is guarded with RESCUE_YL_PATH, keep it under the 'quick' category. $ RESCUE_YL_PATH=/path/to/rescue-yl QEMU_TEST_ALLOW_UNTRUSTED_CODE=1 \ make check-functional-mips64el 1/4 qemu:func-quick+func-mips64el / func-mips64el-empty_cpu_model OK 0.12s 1 subtests passed 2/4 qemu:func-quick+func-mips64el / func-mips64el-version OK 0.13s 1 subtests passed 3/4 qemu:func-quick+func-mips64el / func-mips64el-info_usernet OK 0.15s 1 subtests passed 4/4 qemu:func-quick+func-mips64el / func-mips64el-mips64el_fuloong2e OK 0.19s 1 subtests passed Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Thomas Huth --- MAINTAINERS | 2 +- tests/functional/meson.build | 4 +++ .../test_mips64el_fuloong2e.py} | 33 ++++++++++--------- 3 files changed, 23 insertions(+), 16 deletions(-) rename tests/{avocado/machine_mips_fuloong2e.py => functional/test_mips64el_fuloong2e.py} (58%) mode change 100644 => 100755 diff --git a/MAINTAINERS b/MAINTAINERS index 25e71ac14c..77fbb5d42e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1384,7 +1384,7 @@ S: Odd Fixes F: hw/mips/fuloong2e.c F: hw/pci-host/bonito.c F: include/hw/pci-host/bonito.h -F: tests/avocado/machine_mips_fuloong2e.py +F: tests/functional/test_mips64el_fuloong2e.py Loongson-3 virtual platforms M: Huacai Chen diff --git a/tests/functional/meson.build b/tests/functional/meson.build index 12e08e365b..8d28313a65 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -51,6 +51,10 @@ tests_microblazeel_thorough = [ 'microblazeel_s3adsp1800' ] +tests_mips64el_quick = [ + 'mips64el_fuloong2e', +] + tests_mips64el_thorough = [ 'mips64el_loongson3v', ] diff --git a/tests/avocado/machine_mips_fuloong2e.py b/tests/functional/test_mips64el_fuloong2e.py old mode 100644 new mode 100755 similarity index 58% rename from tests/avocado/machine_mips_fuloong2e.py rename to tests/functional/test_mips64el_fuloong2e.py index 89291f47b2..7688a32713 --- a/tests/avocado/machine_mips_fuloong2e.py +++ b/tests/functional/test_mips64el_fuloong2e.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 +# # Functional tests for the Lemote Fuloong-2E machine. # # Copyright (c) 2019 Philippe Mathieu-Daudé @@ -8,35 +10,36 @@ # SPDX-License-Identifier: GPL-2.0-or-later import os +import subprocess -from avocado import skipUnless -from avocado_qemu import QemuSystemTest -from avocado_qemu import wait_for_console_pattern +from qemu_test import QemuSystemTest +from qemu_test import wait_for_console_pattern +from unittest import skipUnless class MipsFuloong2e(QemuSystemTest): timeout = 60 - @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') + @skipUnless(os.getenv('QEMU_TEST_ALLOW_UNTRUSTED_CODE'), 'untrusted code') @skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not available') - def test_linux_kernel_isa_serial(self): - """ - :avocado: tags=arch:mips64el - :avocado: tags=machine:fuloong2e - :avocado: tags=endian:little - :avocado: tags=device:bonito64 - :avocado: tags=device:via686b - """ + def test_linux_kernel_2_6_27_isa_serial(self): # Recovery system for the Yeeloong laptop # (enough to test the fuloong2e southbridge, accessing its ISA bus) # http://dev.lemote.com/files/resource/download/rescue/rescue-yl - kernel_hash = 'ec4d1bd89a8439c41033ca63db60160cc6d6f09a' - kernel_path = self.fetch_asset('file://' + os.getenv('RESCUE_YL_PATH'), - asset_hash=kernel_hash) + sha = 'ab588d3316777c62cc81baa20ac92e98b01955c244dff3794b711bc34e26e51d' + kernel_path = os.getenv('RESCUE_YL_PATH') + output = subprocess.check_output(['sha256sum', kernel_path]) + checksum = output.split()[0] + assert checksum.decode("utf-8") == sha + self.set_machine('fuloong2e') self.vm.set_console() self.vm.add_args('-kernel', kernel_path) self.vm.launch() wait_for_console_pattern(self, 'Linux version 2.6.27.7lemote') cpu_revision = 'CPU revision is: 00006302 (ICT Loongson-2)' wait_for_console_pattern(self, cpu_revision) + + +if __name__ == '__main__': + QemuSystemTest.main() From patchwork Tue Aug 27 09:49:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 13779179 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8D431C52D6F for ; Tue, 27 Aug 2024 09:50:43 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sispM-0001Gj-Gm; Tue, 27 Aug 2024 05:49:28 -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 1sispK-0001FJ-Mn for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:26 -0400 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sispI-00087v-3u for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:25 -0400 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-a86910caf9cso854597166b.1 for ; Tue, 27 Aug 2024 02:49:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1724752162; x=1725356962; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eFVbp5mH2R87j2GJDUCRNTEHqK0ZCmXXo1MP+SE9nGs=; b=aBVs+6d0UAym84WJaZLvgTnxyGmR4OuuPhyg+bEGzBuhraoalsTYByFWThoaMuE9Nb 211+uFYgQ+b+Kk8XsaRcsRB3zUMDivvrL+obx3j+yW3+CA3nptDK8GXGZTj4fhGrL9fZ KDtlIsf6dBcxTBhzo6BlVsWv3Jp5Cwb2DNIiInS+tnoC5f2Xp2O3LeStBX4HW4r6p8/j dHacG/XIfJlfmKi4Tvy7o1yYvMG54Xv52bJ0lepwqEMjLCxo6l7y0NkLcNzsTsjPJ4gX gKDXd978KFZBdxGcAZgvVHl2G154Bwr1serHsiX61b5ycEa4O8dnV9eg582ZLApdrLmX TUwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724752162; x=1725356962; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eFVbp5mH2R87j2GJDUCRNTEHqK0ZCmXXo1MP+SE9nGs=; b=qM+ktqwUNWgFHIxjLfnHtZFWMn4ZCLr9Cm9s6hCF5xQvLtL3jjdeg3RvyxlX4ABlyo wqoYxUQYFEj5aupEldIDMZVu0RzvhcyrzkSTy2gyVTNDYL9kQ76B+y5D7XP6y3Cq1T96 9I4DT2pPth3/XUjbOskusGDTLZdct8M/zjnMcNJ4IkgyvrhEFXiqCV3x8d/FNcvSJOqe +6HJYGGKBNXejVMDxDhTVnHbit3sEqgNKXT3ruRq7gQ7nQcRbDeu1lMK7MwBdzlJ3WZG 8cywjHb01IQRczgxfZPkIHDfsfhb36dqIas7ns+KJXnQY4gYkcKJFMD/OWst1RvM+VGz tcdA== X-Gm-Message-State: AOJu0YyUSqMCOBLMRtCHsUoTT2ZJOC/aH6MGrO0PvL4H8AdHpdl19Owd Kb3V2V/+BCQROQQ+qDxj5k4LPicr/l4jz2bwEGeNvRTIBlMtRcI5lTRZrrEYMxZ9fw6AJsNofEl R X-Google-Smtp-Source: AGHT+IF72v309h2z/Jlkq6Oj7JT6OTlLDngI0RzQ0rAP1VkG0KWxG7MSKOv3iBzYiq0artzeeiKvsg== X-Received: by 2002:a17:907:97cf:b0:a7a:acae:340b with SMTP id a640c23a62f3a-a86e2a25c77mr229289666b.31.1724752161934; Tue, 27 Aug 2024 02:49:21 -0700 (PDT) Received: from m1x-phil.lan ([176.187.206.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a86e588b60csm86934866b.161.2024.08.27.02.49.20 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 27 Aug 2024 02:49:21 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Huacai Chen , Beraldo Leal , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Thomas Huth , Cleber Rosa , Jiaxun Yang , Aurelien Jarno Subject: [PATCH v4 2/7] tests/functional: Convert mips64el Fuloong2e avocado test (2/2) Date: Tue, 27 Aug 2024 11:49:00 +0200 Message-ID: <20240827094905.80648-3-philmd@linaro.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240827094905.80648-1-philmd@linaro.org> References: <20240827094905.80648-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::636; envelope-from=philmd@linaro.org; helo=mail-ej1-x636.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Straight forward conversion. Update the SHA1 hashes to SHA256 hashes since SHA1 should not be used anymore nowadays. Add extract_from_deb() method in qemu_test.utils package. Signed-off-by: Philippe Mathieu-Daudé --- tests/avocado/boot_linux_console.py | 21 ------------------ tests/functional/qemu_test/utils.py | 20 +++++++++++++++++ tests/functional/test_mips64el_fuloong2e.py | 24 ++++++++++++++++++++- 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py index 18c69d6acc..01fd126c53 100644 --- a/tests/avocado/boot_linux_console.py +++ b/tests/avocado/boot_linux_console.py @@ -170,27 +170,6 @@ def test_mips64el_malta(self): console_pattern = 'Kernel command line: %s' % kernel_command_line self.wait_for_console_pattern(console_pattern) - def test_mips64el_fuloong2e(self): - """ - :avocado: tags=arch:mips64el - :avocado: tags=machine:fuloong2e - :avocado: tags=endian:little - """ - deb_url = ('http://archive.debian.org/debian/pool/main/l/linux/' - 'linux-image-3.16.0-6-loongson-2e_3.16.56-1+deb8u1_mipsel.deb') - deb_hash = 'd04d446045deecf7b755ef576551de0c4184dd44' - deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) - kernel_path = self.extract_from_deb(deb_path, - '/boot/vmlinux-3.16.0-6-loongson-2e') - - self.vm.set_console() - kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' - self.vm.add_args('-kernel', kernel_path, - '-append', kernel_command_line) - self.vm.launch() - console_pattern = 'Kernel command line: %s' % kernel_command_line - self.wait_for_console_pattern(console_pattern) - def test_mips_malta_cpio(self): """ :avocado: tags=arch:mips diff --git a/tests/functional/qemu_test/utils.py b/tests/functional/qemu_test/utils.py index 99eae5fc45..481a6b8e7c 100644 --- a/tests/functional/qemu_test/utils.py +++ b/tests/functional/qemu_test/utils.py @@ -14,6 +14,8 @@ import shutil import tarfile +from . import run_cmd + def archive_extract(archive, dest_dir, member=None): with tarfile.open(archive) as tf: if hasattr(tarfile, 'data_filter'): @@ -24,6 +26,24 @@ def archive_extract(archive, dest_dir, member=None): else: tf.extractall(path=dest_dir) +def extract_from_deb(deb_path, output_path, file_path): + """ + Extracts a file from a deb package into the test workdir + + :param deb_path: path to the deb archive + :param file_path: path within the deb archive of the file to be extracted + :returns: full path of the extracted file + """ + cwd = os.getcwd() + os.chdir(output_path) + (stdout, stderr, ret) = run_cmd(['ar', 't', deb_path]) + tarball_name = stdout.split()[2] + run_cmd(['ar', 'x', deb_path, tarball_name]) + file_path = file_path if file_path.startswith('.') else '.' + file_path + archive_extract(tarball_name, output_path, file_path) + os.chdir(cwd) + return os.path.join(output_path, file_path) + def gzip_uncompress(gz_path, output_path): if os.path.exists(output_path): return diff --git a/tests/functional/test_mips64el_fuloong2e.py b/tests/functional/test_mips64el_fuloong2e.py index 7688a32713..05f0577021 100755 --- a/tests/functional/test_mips64el_fuloong2e.py +++ b/tests/functional/test_mips64el_fuloong2e.py @@ -12,14 +12,36 @@ import os import subprocess -from qemu_test import QemuSystemTest +from qemu_test import QemuSystemTest, Asset from qemu_test import wait_for_console_pattern +from qemu_test.linux_kernel import linux_kernel_wait_for_pattern +from qemu_test.linux_kernel import KERNEL_COMMON_COMMAND_LINE +from qemu_test.utils import extract_from_deb from unittest import skipUnless class MipsFuloong2e(QemuSystemTest): timeout = 60 + ASSET_KERNEL = Asset( + ('http://archive.debian.org/debian/pool/main/l/linux/' + 'linux-image-3.16.0-6-loongson-2e_3.16.56-1+deb8u1_mipsel.deb'), + '2a70f15b397f4ced632b0c15cb22660394190644146d804d60a4796eefbe1f50') + + def test_linux_kernel_3_16(self): + deb_path = self.ASSET_KERNEL.fetch() + kernel_path = extract_from_deb(deb_path, self.workdir, + '/boot/vmlinux-3.16.0-6-loongson-2e') + + self.set_machine('fuloong2e') + self.vm.set_console() + kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' + self.vm.add_args('-kernel', kernel_path, + '-append', kernel_command_line) + self.vm.launch() + console_pattern = 'Kernel command line: %s' % kernel_command_line + linux_kernel_wait_for_pattern(self, console_pattern) + @skipUnless(os.getenv('QEMU_TEST_ALLOW_UNTRUSTED_CODE'), 'untrusted code') @skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not available') def test_linux_kernel_2_6_27_isa_serial(self): From patchwork Tue Aug 27 09:49:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 13779181 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DB721C52D6F for ; Tue, 27 Aug 2024 09:51:22 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sispT-0001TY-2u; Tue, 27 Aug 2024 05:49:35 -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 1sispQ-0001SY-Q4 for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:32 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sispO-00089m-DK for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:32 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-a86a37208b2so466434266b.0 for ; Tue, 27 Aug 2024 02:49:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1724752168; x=1725356968; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ld9LWP58d7ahMlzIkedRlsqTQK3wS2q25nmh4L82PQg=; b=UuyQCY0RCZCCKh9CBjTE7D8xYxllp1bbiJf7zDMK39/xct646EReT/Ui7kSExgzdFv QmqG7o2lo/TuqtSEJ733voPJJiImon3YaohGiPzrB+6eujTVR8UtknuEuUiQRvkTQs0n W3TC90dFk+vgzJHTGSMOSBx6HXBQDyBBNd7ZhOdLO8ZaVoh9hjuLUArz3kJNGWqVes7Q LjhAOmtKoxE4yaYH4G6iA7ujqxM6yah0R0qvvzcjhGJlT+jBF6Rqxuw8uvebImqJ8rwX TizZhCV7rR525I9WYJnupWlSHDhxK0i8l9fAK5IX5l+J77fdSR4MN2hiNzyysUBkJHyk GulQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724752168; x=1725356968; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ld9LWP58d7ahMlzIkedRlsqTQK3wS2q25nmh4L82PQg=; b=ZBfzuFTWZclc0aMg+NKyGtGtZnoFVTXayHFxBKFftwjLw3znv8FbAkifxElhB7IgF1 or96pFMelYyJMFV6PcnuEBe2GFkExuczJeKXvDmnS0ACtpHEFO9egpbXaMawUEs0RnU3 dEZt0aFc58TnWSzlAtNEa6fsz2V07q459qL/xrqO6+xlSalRQsJ9R3+CqyGOtSzUgSOE 5wMPqAnZ2jT/yVhhpHHejPLazzVBrrx0qUsU8nPUo8rwqNj1g38SQQU4QwIu+VbvtMd3 9bosp/WYfOGvPJuFpXHJQfzEephrcYvVCk/oCVOjUGGHnqkeYdWiKS5Z2ddfLkc2z+HT 6tOw== X-Gm-Message-State: AOJu0YwX5rJVyPLwpfsun0lvWC/h6qA5LicUF1HQiCfVAHYL+bo/Ua78 KJ++KueRu0fbZUJ10vLyagz8gkKyaiOKQUUAdWo5LBjHmyz0GRliBIVO7WLoGqK53791AIslBGE K X-Google-Smtp-Source: AGHT+IE0FWaf04ZzyH3i6VB7YXnIakHC0nPHDyZeSY9jcZS7mL5CE35bCuYcYJh78iH5BMGjiuhDkQ== X-Received: by 2002:a17:907:1c0a:b0:a86:a90f:3025 with SMTP id a640c23a62f3a-a86a90f3de8mr951840766b.59.1724752168260; Tue, 27 Aug 2024 02:49:28 -0700 (PDT) Received: from m1x-phil.lan ([176.187.206.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a86e582d43dsm87574266b.115.2024.08.27.02.49.26 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 27 Aug 2024 02:49:27 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Huacai Chen , Beraldo Leal , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Thomas Huth , Cleber Rosa , Jiaxun Yang , Aurelien Jarno Subject: [PATCH v4 3/7] tests/functional: Convert mips64el I6400 Malta avocado tests Date: Tue, 27 Aug 2024 11:49:01 +0200 Message-ID: <20240827094905.80648-4-philmd@linaro.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240827094905.80648-1-philmd@linaro.org> References: <20240827094905.80648-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62a; envelope-from=philmd@linaro.org; helo=mail-ej1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Straight forward conversion. Update the SHA1 hashes to SHA256 hashes since SHA1 should not be used anymore nowadays. Reviewed-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daudé --- MAINTAINERS | 1 + tests/avocado/machine_mips_malta.py | 108 ----------------------- tests/functional/meson.build | 1 + tests/functional/test_mips64el_malta.py | 110 ++++++++++++++++++++++++ 4 files changed, 112 insertions(+), 108 deletions(-) create mode 100755 tests/functional/test_mips64el_malta.py diff --git a/MAINTAINERS b/MAINTAINERS index 77fbb5d42e..3a91017979 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1369,6 +1369,7 @@ F: hw/pci-host/gt64120.c F: include/hw/southbridge/piix.h F: tests/avocado/linux_ssh_mips_malta.py F: tests/avocado/machine_mips_malta.py +F: tests/functional/test_mips64el_malta.py Mipssim R: Aleksandar Rikalo diff --git a/tests/avocado/machine_mips_malta.py b/tests/avocado/machine_mips_malta.py index 07a80633b5..05c64e18c4 100644 --- a/tests/avocado/machine_mips_malta.py +++ b/tests/avocado/machine_mips_malta.py @@ -8,121 +8,13 @@ # SPDX-License-Identifier: GPL-2.0-or-later import os -import gzip -import logging -from avocado import skipUnless -from avocado import skipUnless from avocado.utils import archive from avocado_qemu import QemuSystemTest -from avocado_qemu import exec_command_and_wait_for_pattern from avocado_qemu import interrupt_interactive_console_until_pattern from avocado_qemu import wait_for_console_pattern -NUMPY_AVAILABLE = True -try: - import numpy as np -except ImportError: - NUMPY_AVAILABLE = False - -CV2_AVAILABLE = True -try: - import cv2 -except ImportError: - CV2_AVAILABLE = False - - -@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed') -@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed') -class MaltaMachineFramebuffer(QemuSystemTest): - - timeout = 30 - - KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' - - def do_test_i6400_framebuffer_logo(self, cpu_cores_count): - """ - Boot Linux kernel and check Tux logo is displayed on the framebuffer. - """ - screendump_path = os.path.join(self.workdir, 'screendump.pbm') - - kernel_url = ('https://github.com/philmd/qemu-testing-blob/raw/' - 'a5966ca4b5/mips/malta/mips64el/' - 'vmlinux-4.7.0-rc1.I6400.gz') - kernel_hash = '096f50c377ec5072e6a366943324622c312045f6' - kernel_path_gz = self.fetch_asset(kernel_url, asset_hash=kernel_hash) - kernel_path = self.workdir + "vmlinux" - archive.gzip_uncompress(kernel_path_gz, kernel_path) - - tuxlogo_url = ('https://github.com/torvalds/linux/raw/v2.6.12/' - 'drivers/video/logo/logo_linux_vga16.ppm') - tuxlogo_hash = '3991c2ddbd1ddaecda7601f8aafbcf5b02dc86af' - tuxlogo_path = self.fetch_asset(tuxlogo_url, asset_hash=tuxlogo_hash) - - self.vm.set_console() - kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + - 'clocksource=GIC console=tty0 console=ttyS0') - self.vm.add_args('-kernel', kernel_path, - '-smp', '%u' % cpu_cores_count, - '-vga', 'std', - '-append', kernel_command_line) - self.vm.launch() - framebuffer_ready = 'Console: switching to colour frame buffer device' - wait_for_console_pattern(self, framebuffer_ready, - failure_message='Kernel panic - not syncing') - self.vm.cmd('human-monitor-command', command_line='stop') - self.vm.cmd('human-monitor-command', - command_line='screendump %s' % screendump_path) - logger = logging.getLogger('framebuffer') - - match_threshold = 0.95 - screendump_bgr = cv2.imread(screendump_path, cv2.IMREAD_COLOR) - tuxlogo_bgr = cv2.imread(tuxlogo_path, cv2.IMREAD_COLOR) - result = cv2.matchTemplate(screendump_bgr, tuxlogo_bgr, - cv2.TM_CCOEFF_NORMED) - loc = np.where(result >= match_threshold) - tuxlogo_count = 0 - h, w = tuxlogo_bgr.shape[:2] - debug_png = os.getenv('AVOCADO_CV2_SCREENDUMP_PNG_PATH') - for tuxlogo_count, pt in enumerate(zip(*loc[::-1]), start=1): - logger.debug('found Tux at position (x, y) = %s', pt) - cv2.rectangle(screendump_bgr, pt, - (pt[0] + w, pt[1] + h), (0, 0, 255), 2) - if debug_png: - cv2.imwrite(debug_png, screendump_bgr) - self.assertGreaterEqual(tuxlogo_count, cpu_cores_count) - - def test_mips_malta_i6400_framebuffer_logo_1core(self): - """ - :avocado: tags=arch:mips64el - :avocado: tags=machine:malta - :avocado: tags=cpu:I6400 - """ - self.do_test_i6400_framebuffer_logo(1) - - @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab') - def test_mips_malta_i6400_framebuffer_logo_7cores(self): - """ - :avocado: tags=arch:mips64el - :avocado: tags=machine:malta - :avocado: tags=cpu:I6400 - :avocado: tags=mips:smp - :avocado: tags=flaky - """ - self.do_test_i6400_framebuffer_logo(7) - - @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab') - def test_mips_malta_i6400_framebuffer_logo_8cores(self): - """ - :avocado: tags=arch:mips64el - :avocado: tags=machine:malta - :avocado: tags=cpu:I6400 - :avocado: tags=mips:smp - :avocado: tags=flaky - """ - self.do_test_i6400_framebuffer_logo(8) - class MaltaMachine(QemuSystemTest): def do_test_yamon(self): diff --git a/tests/functional/meson.build b/tests/functional/meson.build index 8d28313a65..a82dbd43bb 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -57,6 +57,7 @@ tests_mips64el_quick = [ tests_mips64el_thorough = [ 'mips64el_loongson3v', + 'mips64el_malta', ] tests_ppc_quick = [ diff --git a/tests/functional/test_mips64el_malta.py b/tests/functional/test_mips64el_malta.py new file mode 100755 index 0000000000..9c1da8f401 --- /dev/null +++ b/tests/functional/test_mips64el_malta.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python3 +# +# Functional tests for the little-endian 64-bit MIPS Malta board +# +# Copyright (c) Philippe Mathieu-Daudé +# +# This work is licensed under the terms of the GNU GPL, version 2 or later. +# See the COPYING file in the top-level directory. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +import os +import logging + +from qemu_test import QemuSystemTest, Asset +from qemu_test import exec_command_and_wait_for_pattern +from qemu_test.linux_kernel import linux_kernel_wait_for_pattern +from qemu_test.linux_kernel import KERNEL_COMMON_COMMAND_LINE +from qemu_test.utils import gzip_uncompress +from unittest import skipUnless + +NUMPY_AVAILABLE = True +try: + import numpy as np +except ImportError: + NUMPY_AVAILABLE = False + +CV2_AVAILABLE = True +try: + import cv2 +except ImportError: + CV2_AVAILABLE = False + + +@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed') +@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed') +class MaltaMachineFramebuffer(QemuSystemTest): + + timeout = 30 + + ASSET_KERNEL_4_7_0 = Asset( + ('https://github.com/philmd/qemu-testing-blob/raw/a5966ca4b5/' + 'mips/malta/mips64el/vmlinux-4.7.0-rc1.I6400.gz'), + '1f64efc59968a3c328672e6b10213fe574bb2308d9d2ed44e75e40be59e9fbc2') + + ASSET_TUXLOGO = Asset( + ('https://github.com/torvalds/linux/raw/v2.6.12/' + 'drivers/video/logo/logo_linux_vga16.ppm'), + 'b762f0d91ec018887ad1b334543c2fdf9be9fdfc87672b409211efaa3ea0ef79') + + def do_test_i6400_framebuffer_logo(self, cpu_cores_count): + """ + Boot Linux kernel and check Tux logo is displayed on the framebuffer. + """ + screendump_path = os.path.join(self.workdir, 'screendump.pbm') + + kernel_path_gz = self.ASSET_KERNEL_4_7_0.fetch() + kernel_path = self.workdir + "vmlinux" + gzip_uncompress(kernel_path_gz, kernel_path) + + tuxlogo_path = self.ASSET_TUXLOGO.fetch() + + self.set_machine('malta') + self.vm.set_console() + kernel_command_line = (KERNEL_COMMON_COMMAND_LINE + + 'clocksource=GIC console=tty0 console=ttyS0') + self.vm.add_args('-kernel', kernel_path, + '-cpu', 'I6400', + '-smp', '%u' % cpu_cores_count, + '-vga', 'std', + '-append', kernel_command_line) + self.vm.launch() + framebuffer_ready = 'Console: switching to colour frame buffer device' + linux_kernel_wait_for_pattern(self, framebuffer_ready) + self.vm.cmd('human-monitor-command', command_line='stop') + self.vm.cmd('human-monitor-command', + command_line='screendump %s' % screendump_path) + logger = logging.getLogger('framebuffer') + + match_threshold = 0.95 + screendump_bgr = cv2.imread(screendump_path, cv2.IMREAD_COLOR) + tuxlogo_bgr = cv2.imread(tuxlogo_path, cv2.IMREAD_COLOR) + result = cv2.matchTemplate(screendump_bgr, tuxlogo_bgr, + cv2.TM_CCOEFF_NORMED) + loc = np.where(result >= match_threshold) + tuxlogo_count = 0 + h, w = tuxlogo_bgr.shape[:2] + debug_png = os.getenv('AVOCADO_CV2_SCREENDUMP_PNG_PATH') + for tuxlogo_count, pt in enumerate(zip(*loc[::-1]), start=1): + logger.debug('found Tux at position (x, y) = %s', pt) + cv2.rectangle(screendump_bgr, pt, + (pt[0] + w, pt[1] + h), (0, 0, 255), 2) + if debug_png: + cv2.imwrite(debug_png, screendump_bgr) + self.assertGreaterEqual(tuxlogo_count, cpu_cores_count) + + def test_mips_malta_i6400_framebuffer_logo_1core(self): + self.do_test_i6400_framebuffer_logo(1) + + @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab') + def test_mips_malta_i6400_framebuffer_logo_7cores(self): + self.do_test_i6400_framebuffer_logo(7) + + @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab') + def test_mips_malta_i6400_framebuffer_logo_8cores(self): + self.do_test_i6400_framebuffer_logo(8) + + +if __name__ == '__main__': + QemuSystemTest.main() From patchwork Tue Aug 27 09:49:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 13779175 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B3ABDC5472C for ; Tue, 27 Aug 2024 09:50:03 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sispX-0001jc-4F; Tue, 27 Aug 2024 05:49:39 -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 1sispW-0001hL-Fy for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:38 -0400 Received: from mail-ed1-x52a.google.com ([2a00:1450:4864:20::52a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sispU-0008AF-E5 for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:38 -0400 Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-5becfd14353so5804797a12.1 for ; Tue, 27 Aug 2024 02:49:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1724752175; x=1725356975; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VRGHvqpcK+QeXaBj9ekCJV8Z1lhQaz2hnnSe4o3mJWI=; b=WSXkiN19o+hws1KAQOKcdg7QNq7WYbvzR7F8N3MvUQ3kjsrjU8bZjU7uwcSW6q7M4k lTtNbtAFeBMgPuUunfq/RJOxvol0xzrWdi9GaO2nMXcmPiw63foKHQaNqNqhw1FGYWL0 K9UDUWvnBqX7LIqPEM3mS6OJMTLHdcgBkmWaK15Ljzd+W+Ytf7RrcQl8HDmATP42PH2b sB1lyNyx/UX534XH4dqEh8SNN9JpmicBVuZLf5nRDkGKUch9Bk59Ho0DdnbIhwv1AAbF mFLtsjdIzt4k0ct//of5U5jN5YduDzQpfyZHxXJ/73gGOLK49joztIHdt8eWQdCYR++C 5OUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724752175; x=1725356975; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VRGHvqpcK+QeXaBj9ekCJV8Z1lhQaz2hnnSe4o3mJWI=; b=n8dU3vLtcTnIrVY1HIZV/y60k55iQYtU/9YrDQJbeRjYioXT1TX+j1UM5rqUo5mU6d CJMpyv6ZdUx0PftxDngu169rTuNBVKh9QQ7rVn3PHCAQTDvjuGYdOXj61EgrujDXndyn eM2ej4VMvmdkOJpxJ3JDqN8ihTYRCdpm8si4EAh4KntE8vY3qLj29oOuNULPDSUxIviS KCP72sW0Wmjt0ZVuw6kMeLsE9mHwg6j1WL1JwLccbfUtqtqx6YgdUvuBx38VK6sEPxBU o/hQmMYc7zedcgjTsJtPNe43MAFwKGaFTCr1NnLDnHnrPDE29gPsoVjuHhQDRu5ZdRb+ kKwQ== X-Gm-Message-State: AOJu0Yx4XALW0VYP8BCizgNLu/2OrHshqqGo/bqAISJd4svsP6XI3/Qz YuA/yMMDPF615gHV16qxR2686/lV7RvMV9zQ182WslVCEeEbbL580F+pt9YTYhKrCTzZRf3J3dC o X-Google-Smtp-Source: AGHT+IGL1xoDCBi7MCK86DaiOaQzYEjsaYfqP0R5275QUcwXYN0nL0IEusIyHIDMqiGsZlWLRf+U0Q== X-Received: by 2002:a17:907:e2a0:b0:a86:82e2:8c64 with SMTP id a640c23a62f3a-a86a52de303mr887757666b.35.1724752174516; Tue, 27 Aug 2024 02:49:34 -0700 (PDT) Received: from m1x-phil.lan ([176.187.206.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a86e588b034sm87480366b.185.2024.08.27.02.49.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 27 Aug 2024 02:49:34 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Huacai Chen , Beraldo Leal , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Thomas Huth , Cleber Rosa , Jiaxun Yang , Aurelien Jarno Subject: [PATCH v4 4/7] tests/functional: Convert mips64el 5KEc Malta avocado tests Date: Tue, 27 Aug 2024 11:49:02 +0200 Message-ID: <20240827094905.80648-5-philmd@linaro.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240827094905.80648-1-philmd@linaro.org> References: <20240827094905.80648-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52a; envelope-from=philmd@linaro.org; helo=mail-ed1-x52a.google.com X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_BTC_ID=0.5, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Straight forward conversion. Update the SHA1 hashes to SHA256 hashes since SHA1 should not be used anymore nowadays. Signed-off-by: Philippe Mathieu-Daudé --- tests/avocado/boot_linux_console.py | 74 ------------------------ tests/functional/test_mips64el_malta.py | 77 +++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 74 deletions(-) diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py index 01fd126c53..10457743d1 100644 --- a/tests/avocado/boot_linux_console.py +++ b/tests/avocado/boot_linux_console.py @@ -138,38 +138,6 @@ def test_mips_malta(self): console_pattern = 'Kernel command line: %s' % kernel_command_line self.wait_for_console_pattern(console_pattern) - def test_mips64el_malta(self): - """ - This test requires the ar tool to extract "data.tar.gz" from - the Debian package. - - The kernel can be rebuilt using this Debian kernel source [1] and - following the instructions on [2]. - - [1] http://snapshot.debian.org/package/linux-2.6/2.6.32-48/ - #linux-source-2.6.32_2.6.32-48 - [2] https://kernel-team.pages.debian.net/kernel-handbook/ - ch-common-tasks.html#s-common-official - - :avocado: tags=arch:mips64el - :avocado: tags=machine:malta - """ - deb_url = ('http://snapshot.debian.org/archive/debian/' - '20130217T032700Z/pool/main/l/linux-2.6/' - 'linux-image-2.6.32-5-5kc-malta_2.6.32-48_mipsel.deb') - deb_hash = '1aaec92083bf22fda31e0d27fa8d9a388e5fc3d5' - deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) - kernel_path = self.extract_from_deb(deb_path, - '/boot/vmlinux-2.6.32-5-5kc-malta') - - self.vm.set_console() - kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' - self.vm.add_args('-kernel', kernel_path, - '-append', kernel_command_line) - self.vm.launch() - console_pattern = 'Kernel command line: %s' % kernel_command_line - self.wait_for_console_pattern(console_pattern) - def test_mips_malta_cpio(self): """ :avocado: tags=arch:mips @@ -211,48 +179,6 @@ def test_mips_malta_cpio(self): # Wait for VM to shut down gracefully self.vm.wait() - @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') - def test_mips64el_malta_5KEc_cpio(self): - """ - :avocado: tags=arch:mips64el - :avocado: tags=machine:malta - :avocado: tags=endian:little - :avocado: tags=cpu:5KEc - """ - kernel_url = ('https://github.com/philmd/qemu-testing-blob/' - 'raw/9ad2df38/mips/malta/mips64el/' - 'vmlinux-3.19.3.mtoman.20150408') - kernel_hash = '00d1d268fb9f7d8beda1de6bebcc46e884d71754' - kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) - initrd_url = ('https://github.com/groeck/linux-build-test/' - 'raw/8584a59e/rootfs/' - 'mipsel64/rootfs.mipsel64r1.cpio.gz') - initrd_hash = '1dbb8a396e916847325284dbe2151167' - initrd_path_gz = self.fetch_asset(initrd_url, algorithm='md5', - asset_hash=initrd_hash) - initrd_path = self.workdir + "rootfs.cpio" - archive.gzip_uncompress(initrd_path_gz, initrd_path) - - self.vm.set_console() - kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE - + 'console=ttyS0 console=tty ' - + 'rdinit=/sbin/init noreboot') - self.vm.add_args('-kernel', kernel_path, - '-initrd', initrd_path, - '-append', kernel_command_line, - '-no-reboot') - self.vm.launch() - wait_for_console_pattern(self, 'Boot successful.') - - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', - 'MIPS 5KE') - exec_command_and_wait_for_pattern(self, 'uname -a', - '3.19.3.mtoman.20150408') - exec_command_and_wait_for_pattern(self, 'reboot', - 'reboot: Restarting system') - # Wait for VM to shut down gracefully - self.vm.wait() - def do_test_mips_malta32el_nanomips(self, kernel_path_xz): kernel_path = self.workdir + "kernel" with lzma.open(kernel_path_xz, 'rb') as f_in: diff --git a/tests/functional/test_mips64el_malta.py b/tests/functional/test_mips64el_malta.py index 9c1da8f401..9f33146c89 100755 --- a/tests/functional/test_mips64el_malta.py +++ b/tests/functional/test_mips64el_malta.py @@ -16,6 +16,7 @@ from qemu_test import exec_command_and_wait_for_pattern from qemu_test.linux_kernel import linux_kernel_wait_for_pattern from qemu_test.linux_kernel import KERNEL_COMMON_COMMAND_LINE +from qemu_test.utils import extract_from_deb from qemu_test.utils import gzip_uncompress from unittest import skipUnless @@ -32,6 +33,82 @@ CV2_AVAILABLE = False +class MaltaMachineConsole(QemuSystemTest): + + ASSET_KERNEL_2_63_2 = Asset( + ('http://snapshot.debian.org/archive/debian/' + '20130217T032700Z/pool/main/l/linux-2.6/' + 'linux-image-2.6.32-5-5kc-malta_2.6.32-48_mipsel.deb'), + '35eb476f03be589824b0310358f1c447d85e645b88cbcd2ac02b97ef560f9f8d') + + def test_mips64el_malta(self): + """ + This test requires the ar tool to extract "data.tar.gz" from + the Debian package. + + The kernel can be rebuilt using this Debian kernel source [1] and + following the instructions on [2]. + + [1] http://snapshot.debian.org/package/linux-2.6/2.6.32-48/ + #linux-source-2.6.32_2.6.32-48 + [2] https://kernel-team.pages.debian.net/kernel-handbook/ + ch-common-tasks.html#s-common-official + """ + deb_path = self.ASSET_KERNEL_2_63_2.fetch() + kernel_path = extract_from_deb(deb_path, self.workdir, + '/boot/vmlinux-2.6.32-5-5kc-malta') + + self.set_machine('malta') + self.vm.set_console() + kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' + self.vm.add_args('-kernel', kernel_path, + '-append', kernel_command_line) + self.vm.launch() + console_pattern = 'Kernel command line: %s' % kernel_command_line + linux_kernel_wait_for_pattern(self, console_pattern) + + ASSET_KERNEL_3_19_3 = Asset( + ('https://github.com/philmd/qemu-testing-blob/' + 'raw/9ad2df38/mips/malta/mips64el/' + 'vmlinux-3.19.3.mtoman.20150408'), + '8d3beb003bc66051ead98e7172139017fcf9ce2172576541c57e86418dfa5ab8') + + ASSET_CPIO_R1 = Asset( + ('https://github.com/groeck/linux-build-test/' + 'raw/8584a59e/rootfs/mipsel64/' + 'rootfs.mipsel64r1.cpio.gz'), + '75ba10cd35fb44e32948eeb26974f061b703c81c4ba2fab1ebcacf1d1bec3b61') + + @skipUnless(os.getenv('QEMU_TEST_ALLOW_UNTRUSTED_CODE'), 'untrusted code') + def test_mips64el_malta_5KEc_cpio(self): + kernel_path = self.ASSET_KERNEL_3_19_3.fetch() + initrd_path_gz = self.ASSET_CPIO_R1.fetch() + initrd_path = os.path.join(self.workdir, 'rootfs.cpio') + gzip_uncompress(initrd_path_gz, initrd_path) + + self.set_machine('malta') + self.vm.set_console() + kernel_command_line = (KERNEL_COMMON_COMMAND_LINE + + 'console=ttyS0 console=tty ' + + 'rdinit=/sbin/init noreboot') + self.vm.add_args('-cpu', '5KEc', + '-kernel', kernel_path, + '-initrd', initrd_path, + '-append', kernel_command_line, + '-no-reboot') + self.vm.launch() + linux_kernel_wait_for_pattern(self, 'Boot successful.') + + exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', + 'MIPS 5KE') + exec_command_and_wait_for_pattern(self, 'uname -a', + '3.19.3.mtoman.20150408') + exec_command_and_wait_for_pattern(self, 'reboot', + 'reboot: Restarting system') + # Wait for VM to shut down gracefully + self.vm.wait() + + @skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed') @skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed') class MaltaMachineFramebuffer(QemuSystemTest): From patchwork Tue Aug 27 09:49:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 13779176 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E4C21C5320E for ; Tue, 27 Aug 2024 09:50:07 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sispe-00022B-SK; Tue, 27 Aug 2024 05:49:46 -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 1sispd-0001zQ-8W for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:45 -0400 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sispb-0008Ad-6o for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:45 -0400 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-53345604960so5706727e87.3 for ; Tue, 27 Aug 2024 02:49:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1724752181; x=1725356981; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/SRm13bKO9QDQJ19FR2MtATnHDWXRSONTJTrN3dMHxs=; b=D6aR4jxTXQ4C3Nl3wIfh5wBKket3/xJtdmyJiE2kNzopG9EqGucCJvxTGI/55EHmZm XxgDFNN4661wZKAtksbR8wIHPlWuQqUofath8LbzpuAzlGwzAGp84HiCzHk+WU4iUaT4 imHJB7ZFT4sS23AlaDRT8LqO44O+EykR7dOswuvHFVUbi9SkJI5UMtx/LFz+z79t7ISa H7ZUj3HoaB/QMLaRd3250JvCnjm0ylfvEtwEQtFCVqvnB6zZc7Q1u8jf9p1xx78E7KHl 8IjNpJgcUb8n76SPfzaplrjE41iztdzqhkrUiBXe7Fz+IMDZ5Btg0WlutgcwoVEwd5j4 XBqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724752181; x=1725356981; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/SRm13bKO9QDQJ19FR2MtATnHDWXRSONTJTrN3dMHxs=; b=O2K/qp3sX8kPuuzlZVgQVTka6TBNqyOa7Mva70cgEdCqhfUMZ2FL62Ojv/fWgLBak0 /23w7d6n8QywKct6HqeXZo0FdD3CVnZDZTbWJ3/TXcyVmD8Pp9+gMO0QnHisuxjkv3Qq 8K98zU6BSROmE4fdyfEifmUOTQAxhG9vHfOP82clbtojCCympw//4tMDsHKmmuOiJWtZ GJWVXApwf8s2YXIdDtMDhFel+pvqblT5p8GJLeBDyNJTcQXTRAIcS55jjGp7ebxiCtui QQEAmKWZjUgUZpsFMP34jqtT2+/eONT1j8UxgT8zw3dMAYNtc0+fPoeUOiU91ZxKOD6f KPtg== X-Gm-Message-State: AOJu0Yy/kqO7B7OEMxCCVF4WdEMkRasCW+OUkfDBCdbIu0ZOKCU/N37J QVskfrzbor+xnXXR4kcijKm3Q3LGDqdcdb1Ksz4Ozi+cT7Iaw+3jBbokjepsHb5YV8Ue77lGKJB R X-Google-Smtp-Source: AGHT+IEN1lB5JpS5AZaRs3y0y//AS28KhjXKf0+OciCZnUr8zZrO0i20WEPblgen6GQYRGMbncXFFA== X-Received: by 2002:a05:6512:23a9:b0:530:ad8b:de0a with SMTP id 2adb3069b0e04-534387557d1mr8274778e87.9.1724752180964; Tue, 27 Aug 2024 02:49:40 -0700 (PDT) Received: from m1x-phil.lan ([176.187.206.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a86e594d9eesm87951866b.189.2024.08.27.02.49.39 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 27 Aug 2024 02:49:40 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Huacai Chen , Beraldo Leal , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Thomas Huth , Cleber Rosa , Jiaxun Yang , Aurelien Jarno Subject: [PATCH v4 5/7] tests/functional: Convert mips32el Malta YAMON avocado test Date: Tue, 27 Aug 2024 11:49:03 +0200 Message-ID: <20240827094905.80648-6-philmd@linaro.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240827094905.80648-1-philmd@linaro.org> References: <20240827094905.80648-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::135; envelope-from=philmd@linaro.org; helo=mail-lf1-x135.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Straight forward conversion using the Python standard zipfile module instead of avocado.utils package. Update the SHA1 hashes to SHA256 hashes since SHA1 should not be used anymore nowadays. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Thomas Huth --- MAINTAINERS | 2 +- tests/avocado/machine_mips_malta.py | 54 ------------------------- tests/functional/meson.build | 4 ++ tests/functional/test_mips64el_malta.py | 3 ++ tests/functional/test_mipsel_malta.py | 47 +++++++++++++++++++++ 5 files changed, 55 insertions(+), 55 deletions(-) delete mode 100644 tests/avocado/machine_mips_malta.py create mode 100755 tests/functional/test_mipsel_malta.py diff --git a/MAINTAINERS b/MAINTAINERS index 3a91017979..4b480135f6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1368,7 +1368,7 @@ F: hw/mips/malta.c F: hw/pci-host/gt64120.c F: include/hw/southbridge/piix.h F: tests/avocado/linux_ssh_mips_malta.py -F: tests/avocado/machine_mips_malta.py +F: tests/functional/test_mipsel_malta.py F: tests/functional/test_mips64el_malta.py Mipssim diff --git a/tests/avocado/machine_mips_malta.py b/tests/avocado/machine_mips_malta.py deleted file mode 100644 index 05c64e18c4..0000000000 --- a/tests/avocado/machine_mips_malta.py +++ /dev/null @@ -1,54 +0,0 @@ -# Functional tests for the MIPS Malta board -# -# Copyright (c) Philippe Mathieu-Daudé -# -# This work is licensed under the terms of the GNU GPL, version 2 or later. -# See the COPYING file in the top-level directory. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -import os - -from avocado.utils import archive -from avocado_qemu import QemuSystemTest -from avocado_qemu import interrupt_interactive_console_until_pattern -from avocado_qemu import wait_for_console_pattern - - -class MaltaMachine(QemuSystemTest): - - def do_test_yamon(self): - rom_url = ('https://s3-eu-west-1.amazonaws.com/' - 'downloads-mips/mips-downloads/' - 'YAMON/yamon-bin-02.22.zip') - rom_hash = '8da7ecddbc5312704b8b324341ee238189bde480' - zip_path = self.fetch_asset(rom_url, asset_hash=rom_hash) - - archive.extract(zip_path, self.workdir) - yamon_path = os.path.join(self.workdir, 'yamon-02.22.bin') - - self.vm.set_console() - self.vm.add_args('-bios', yamon_path) - self.vm.launch() - - prompt = 'YAMON>' - pattern = 'YAMON ROM Monitor' - interrupt_interactive_console_until_pattern(self, pattern, prompt) - wait_for_console_pattern(self, prompt) - self.vm.shutdown() - - def test_mipsel_malta_yamon(self): - """ - :avocado: tags=arch:mipsel - :avocado: tags=machine:malta - :avocado: tags=endian:little - """ - self.do_test_yamon() - - def test_mips64el_malta_yamon(self): - """ - :avocado: tags=arch:mips64el - :avocado: tags=machine:malta - :avocado: tags=endian:little - """ - self.do_test_yamon() diff --git a/tests/functional/meson.build b/tests/functional/meson.build index a82dbd43bb..f8e482a87c 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -51,6 +51,10 @@ tests_microblazeel_thorough = [ 'microblazeel_s3adsp1800' ] +tests_mipsel_thorough = [ + 'mipsel_malta', +] + tests_mips64el_quick = [ 'mips64el_fuloong2e', ] diff --git a/tests/functional/test_mips64el_malta.py b/tests/functional/test_mips64el_malta.py index 9f33146c89..2c781d0c8d 100755 --- a/tests/functional/test_mips64el_malta.py +++ b/tests/functional/test_mips64el_malta.py @@ -183,5 +183,8 @@ def test_mips_malta_i6400_framebuffer_logo_8cores(self): self.do_test_i6400_framebuffer_logo(8) +from test_mipsel_malta import MaltaMachineYAMON + + if __name__ == '__main__': QemuSystemTest.main() diff --git a/tests/functional/test_mipsel_malta.py b/tests/functional/test_mipsel_malta.py new file mode 100755 index 0000000000..f31f96b012 --- /dev/null +++ b/tests/functional/test_mipsel_malta.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# +# Functional tests for the little-endian 32-bit MIPS Malta board +# +# Copyright (c) Philippe Mathieu-Daudé +# +# This work is licensed under the terms of the GNU GPL, version 2 or later. +# See the COPYING file in the top-level directory. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +import os + +from qemu_test import QemuSystemTest, Asset +from qemu_test import interrupt_interactive_console_until_pattern +from qemu_test import wait_for_console_pattern +from zipfile import ZipFile + + +class MaltaMachineYAMON(QemuSystemTest): + + ASSET_YAMON_ROM = Asset( + ('https://s3-eu-west-1.amazonaws.com/downloads-mips/mips-downloads/' + 'YAMON/yamon-bin-02.22.zip'), + 'eef86f0eed0ef554f041dcd47b87eebea0e6f9f1184ed31f7e9e8b4a803860ab') + + def test_mipsel_malta_yamon(self): + yamon_bin = 'yamon-02.22.bin' + zip_path = self.ASSET_YAMON_ROM.fetch() + with ZipFile(zip_path, 'r') as zf: + zf.extract(yamon_bin, path=self.workdir) + yamon_path = os.path.join(self.workdir, yamon_bin) + + self.set_machine('malta') + self.vm.set_console() + self.vm.add_args('-bios', yamon_path) + self.vm.launch() + + prompt = 'YAMON>' + pattern = 'YAMON ROM Monitor' + interrupt_interactive_console_until_pattern(self, pattern, prompt) + wait_for_console_pattern(self, prompt) + self.vm.shutdown() + + +if __name__ == '__main__': + QemuSystemTest.main() From patchwork Tue Aug 27 09:49:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 13779178 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1F6FDC5320E for ; Tue, 27 Aug 2024 09:50:24 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sispl-0002Ep-Mb; Tue, 27 Aug 2024 05:49: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 1sispk-0002EK-MX for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:52 -0400 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sispi-0008Ay-Ju for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:52 -0400 Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-2ef27bfd15bso53447481fa.2 for ; Tue, 27 Aug 2024 02:49:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1724752187; x=1725356987; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=V5I9NlqjJ3uPggyv85VAD/1WgHDypHVBIY5yjNhqIwY=; b=WxX0Ehaeb9RmkeloS+4SyztdxQUm2G80OOg/Wz0+z0y6sn8jkvSovETT6qlfyNna3n 1DM3e9xdmiQTtcbDcATgsTv9Huox5OBfSaoYBU1H9jGhTdcmCfMqN2pP8mf2JXOounqg OkjLTcaxJunexR/lxkCizrvAcN39TkXZnrXvEYLrjRaBa77uyWfHOc0C7Grph7uoFFTA GJO3KTJ1ov+B4cprSSD8DGtFEndHdKrK9V+NsYD0OWEU9PU5iGQOZ5YFISIe9FK5bhTi 701OD9+jC3Rcsfgg6e76oiNccJwFVk+hQ4o1HTI5wxJNiwOYiLFss0aOTOX6AkfLdNIz g7fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724752187; x=1725356987; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V5I9NlqjJ3uPggyv85VAD/1WgHDypHVBIY5yjNhqIwY=; b=BprwqMCcug4E9pm8CphxB4bJza/xzMHOoeGhRbtmbPKTtboBvvnulCQdk6xZxE8TOX BsiElnTZQtJc+0QY8Zd3b+KTkvToNqIG+/myLUDCcsNSwImQiSBmI3E+GbeMl0ZZ4QSA 9DOwAV/INFtcl++8UKDMnQXTM+3hZJD+a5GYr27qps0sbVAjbaYzJS+HqlLiP4JpLLKT l4TaWQAeZFGO9/fx5RyzXw9wS+vMGuz1MwrQ2CNeufEtoau/QkcRgc2jGKwgahJ8MGi7 FPI/D9N48SMgqRqG5MmQ1h3khyYL/4q5JP3JVBH9qC7WRxh8NZTnaOCmgo7w/K3mmW1r 2U4w== X-Gm-Message-State: AOJu0Yxg80RpI+d5hnzX2fYJxGCxUbSUzbtD7v+mw4VywxX0sdi6kmth TWSiNX5MExD4RG54UcRz5TN+Z7u7tSuyVkzpWOmQf7n5DlWwPBC25MKRH1HSTqnXBXmcTO3WL0x C X-Google-Smtp-Source: AGHT+IGnPIEahluQIEA/0zZjwfWOoLX0lTIuVlI9BHOeJYGmeFteq3aBNOEYc1Gg+iWG6lZh6PBxNw== X-Received: by 2002:a2e:be88:0:b0:2ef:2c86:4d43 with SMTP id 38308e7fff4ca-2f514a12d6dmr17256731fa.3.1724752187379; Tue, 27 Aug 2024 02:49:47 -0700 (PDT) Received: from m1x-phil.lan ([176.187.206.45]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5c0bb481f44sm835994a12.91.2024.08.27.02.49.45 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 27 Aug 2024 02:49:47 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Huacai Chen , Beraldo Leal , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Thomas Huth , Cleber Rosa , Jiaxun Yang , Aurelien Jarno Subject: [PATCH v4 6/7] tests/functional: Convert nanomips Malta avocado tests Date: Tue, 27 Aug 2024 11:49:04 +0200 Message-ID: <20240827094905.80648-7-philmd@linaro.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240827094905.80648-1-philmd@linaro.org> References: <20240827094905.80648-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::234; envelope-from=philmd@linaro.org; helo=mail-lj1-x234.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Straight forward conversion. Update the SHA1 hashes to SHA256 hashes since SHA1 should not be used anymore nowadays. $ QEMU_TEST_ALLOW_UNTRUSTED_CODE=1 \ make check-functional-mipsel ... ▶ 4/4 test_mipsel_malta.MaltaMachineConsole.test_mips_malta32el_nanomips_16k_up OK ▶ 4/4 test_mipsel_malta.MaltaMachineConsole.test_mips_malta32el_nanomips_4k OK ▶ 4/4 test_mipsel_malta.MaltaMachineConsole.test_mips_malta32el_nanomips_64k_dbg OK ▶ 4/4 test_mipsel_malta.MaltaMachineYAMON.test_mipsel_malta_yamon OK 4/4 qemu:func-thorough+func-mipsel-thorough+thorough / func-mipsel-mipsel_malta OK 9.95s 4 subtests passed Signed-off-by: Philippe Mathieu-Daudé --- tests/avocado/boot_linux_console.py | 59 --------------------------- tests/functional/test_mipsel_malta.py | 51 +++++++++++++++++++++++ 2 files changed, 51 insertions(+), 59 deletions(-) diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py index 10457743d1..0756e49ded 100644 --- a/tests/avocado/boot_linux_console.py +++ b/tests/avocado/boot_linux_console.py @@ -179,65 +179,6 @@ def test_mips_malta_cpio(self): # Wait for VM to shut down gracefully self.vm.wait() - def do_test_mips_malta32el_nanomips(self, kernel_path_xz): - kernel_path = self.workdir + "kernel" - with lzma.open(kernel_path_xz, 'rb') as f_in: - with open(kernel_path, 'wb') as f_out: - shutil.copyfileobj(f_in, f_out) - - self.vm.set_console() - kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE - + 'mem=256m@@0x0 ' - + 'console=ttyS0') - self.vm.add_args('-no-reboot', - '-kernel', kernel_path, - '-append', kernel_command_line) - self.vm.launch() - console_pattern = 'Kernel command line: %s' % kernel_command_line - self.wait_for_console_pattern(console_pattern) - - def test_mips_malta32el_nanomips_4k(self): - """ - :avocado: tags=arch:mipsel - :avocado: tags=machine:malta - :avocado: tags=endian:little - :avocado: tags=cpu:I7200 - """ - kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/' - 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' - 'generic_nano32r6el_page4k.xz') - kernel_hash = '477456aafd2a0f1ddc9482727f20fe9575565dd6' - kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash) - self.do_test_mips_malta32el_nanomips(kernel_path_xz) - - def test_mips_malta32el_nanomips_16k_up(self): - """ - :avocado: tags=arch:mipsel - :avocado: tags=machine:malta - :avocado: tags=endian:little - :avocado: tags=cpu:I7200 - """ - kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/' - 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' - 'generic_nano32r6el_page16k_up.xz') - kernel_hash = 'e882868f944c71c816e832e2303b7874d044a7bc' - kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash) - self.do_test_mips_malta32el_nanomips(kernel_path_xz) - - def test_mips_malta32el_nanomips_64k_dbg(self): - """ - :avocado: tags=arch:mipsel - :avocado: tags=machine:malta - :avocado: tags=endian:little - :avocado: tags=cpu:I7200 - """ - kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/' - 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' - 'generic_nano32r6el_page64k_dbg.xz') - kernel_hash = '18d1c68f2e23429e266ca39ba5349ccd0aeb7180' - kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash) - self.do_test_mips_malta32el_nanomips(kernel_path_xz) - def test_aarch64_xlnx_versal_virt(self): """ :avocado: tags=arch:aarch64 diff --git a/tests/functional/test_mipsel_malta.py b/tests/functional/test_mipsel_malta.py index f31f96b012..6f6e38a4a5 100755 --- a/tests/functional/test_mipsel_malta.py +++ b/tests/functional/test_mipsel_malta.py @@ -14,9 +14,60 @@ from qemu_test import QemuSystemTest, Asset from qemu_test import interrupt_interactive_console_until_pattern from qemu_test import wait_for_console_pattern +from qemu_test.linux_kernel import linux_kernel_wait_for_pattern +from qemu_test.linux_kernel import KERNEL_COMMON_COMMAND_LINE +from qemu_test.utils import lzma_uncompress from zipfile import ZipFile +class MaltaMachineConsole(QemuSystemTest): + + ASSET_KERNEL_4K = Asset( + ('http://mipsdistros.mips.com/LinuxDistro/nanomips/' + 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' + 'generic_nano32r6el_page4k.xz'), + '019e034094ac6cf3aa77df5e130fb023ce4dbc804b04bfcc560c6403e1ae6bdb') + ASSET_KERNEL_16K = Asset( + ('http://mipsdistros.mips.com/LinuxDistro/nanomips/' + 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' + 'generic_nano32r6el_page16k_up.xz'), + '3a54a10b3108c16a448dca9ea3db378733a27423befc2a45a5bdf990bd85e12c') + ASSET_KERNEL_64K = Asset( + ('http://mipsdistros.mips.com/LinuxDistro/nanomips/' + 'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/' + 'generic_nano32r6el_page64k_dbg.xz'), + 'ce21ff4b07a981ecb8a39db2876616f5a2473eb2ab459c6f67465b9914b0c6b6') + + def do_test_mips_malta32el_nanomips(self, kernel_path_xz): + kernel_path = os.path.join(self.workdir, 'kernel') + lzma_uncompress(kernel_path_xz, kernel_path) + + self.set_machine('malta') + self.vm.set_console() + kernel_command_line = (KERNEL_COMMON_COMMAND_LINE + + 'mem=256m@@0x0 ' + + 'console=ttyS0') + self.vm.add_args('-cpu', 'I7200', + '-no-reboot', + '-kernel', kernel_path, + '-append', kernel_command_line) + self.vm.launch() + console_pattern = 'Kernel command line: %s' % kernel_command_line + linux_kernel_wait_for_pattern(self, console_pattern) + + def test_mips_malta32el_nanomips_4k(self): + kernel_path_xz = self.ASSET_KERNEL_4K.fetch() + self.do_test_mips_malta32el_nanomips(kernel_path_xz) + + def test_mips_malta32el_nanomips_16k_up(self): + kernel_path_xz = self.ASSET_KERNEL_16K.fetch() + self.do_test_mips_malta32el_nanomips(kernel_path_xz) + + def test_mips_malta32el_nanomips_64k_dbg(self): + kernel_path_xz = self.ASSET_KERNEL_16K.fetch() + self.do_test_mips_malta32el_nanomips(kernel_path_xz) + + class MaltaMachineYAMON(QemuSystemTest): ASSET_YAMON_ROM = Asset( From patchwork Tue Aug 27 09:49:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 13779177 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CF2C2C52D6F for ; Tue, 27 Aug 2024 09:50:23 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sisps-0002PE-Q1; Tue, 27 Aug 2024 05:50:00 -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 1sispq-0002Oi-47 for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:58 -0400 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sispo-0008Bn-1G for qemu-devel@nongnu.org; Tue, 27 Aug 2024 05:49:57 -0400 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-5334c018913so5052937e87.0 for ; Tue, 27 Aug 2024 02:49:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1724752194; x=1725356994; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mK1gcEL6ki/5i9onc4ehh9ftnC10AvXevSPtX+HlMCQ=; b=AmMgfw8fFUiNWfrf95mC+TQcQoKi4HQYtWHbQKlSTWmhnC7VGNnAT9Fay+W4RGbJxw WfBla2OJWrCaCGMgzAHwE0pjdKVsMNyGWNP3PDpNZy/WkWq8nFRQsCPeoVPI33SZYA75 qll3cv67uj98FHYrag0yLsInehjKJDvSsaFiUbd3kNvm7id+pD2qb72/IIfaOX3BL525 UfRzPe03va4+ZW1tQFIYdRnnmBv7thbOjucftvWTdZQEHQLqCwniBTkTXOofdkRgdu1L WDLlQXl59AueuObqUhPTaGRVJChE65n5V409dUnhNQm+ty/d5HJyOjdhvmVZtEukGYMA Ximw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724752194; x=1725356994; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mK1gcEL6ki/5i9onc4ehh9ftnC10AvXevSPtX+HlMCQ=; b=VMu88k6P3TqGlzk157VmabzQEFMMpTTuhmOY7e7t44C0kcs9L4MOfSn0d9JlnpvGfW Y3ddDM7ClgI08ix5FyHpDEgV9lHlhJevFrE3J+kxxbTnU840vbSo4UZa00sTLdwBJPLh ShrKvWvV9KbPOLw41HxJlLdIuxWRLVOKd/ITngcaAPl7fu2Okbf4wwP+aaOwk3Z5BtAT Ad9BbOAGnHAhkgcq65NJQVhW1BMygsKJmi8MFYoaOnqQ6ZSuuJZQ73raKJ+cpIWEckGL key2PL2yip6u+GVAwGKp7DS8qhTlTv4IMUVAPhRpYgGK7OxzMhkyOYvyHkLvsVC3Zfnw +Mlg== X-Gm-Message-State: AOJu0Yx/2gZz0S6DxTt6/H7BP+hbtC5ZsuJnFd2ExjEOnEJWwaY46jW2 CNVLQX1BvWSYSZtXupJMsBhtKtUhNdc7QPxY475qyQ/od9EbcNN3p11zp3kYl1UuRr4VAeafpiJ R X-Google-Smtp-Source: AGHT+IEx7V/nVsSi+MYnhw6yqVZVybTIVsJk8zn7G69wM4w1kyFi9aNwgEvv2Ww2W4rxZ0SdLsIZ3g== X-Received: by 2002:a05:6512:ea2:b0:52e:9ebe:7325 with SMTP id 2adb3069b0e04-5343883b0ffmr8068059e87.31.1724752193761; Tue, 27 Aug 2024 02:49:53 -0700 (PDT) Received: from m1x-phil.lan ([176.187.206.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a86e548620asm89128166b.8.2024.08.27.02.49.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 27 Aug 2024 02:49:53 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Huacai Chen , Beraldo Leal , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Thomas Huth , Cleber Rosa , Jiaxun Yang , Aurelien Jarno Subject: [PATCH v4 7/7] tests/functional: Convert mips32eb 4Kc Malta avocado tests Date: Tue, 27 Aug 2024 11:49:05 +0200 Message-ID: <20240827094905.80648-8-philmd@linaro.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240827094905.80648-1-philmd@linaro.org> References: <20240827094905.80648-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::12c; envelope-from=philmd@linaro.org; helo=mail-lf1-x12c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Straight forward conversion. Update the SHA1 hashes to SHA256 hashes since SHA1 should not be used anymore nowadays. Signed-off-by: Philippe Mathieu-Daudé --- MAINTAINERS | 1 + tests/avocado/boot_linux_console.py | 63 ---------------------- tests/functional/meson.build | 4 ++ tests/functional/test_mips_malta.py | 84 +++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 63 deletions(-) create mode 100755 tests/functional/test_mips_malta.py diff --git a/MAINTAINERS b/MAINTAINERS index 4b480135f6..e2e62afcdc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1368,6 +1368,7 @@ F: hw/mips/malta.c F: hw/pci-host/gt64120.c F: include/hw/southbridge/piix.h F: tests/avocado/linux_ssh_mips_malta.py +F: tests/functional/test_mips_malta.py F: tests/functional/test_mipsel_malta.py F: tests/functional/test_mips64el_malta.py diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py index 0756e49ded..370beb795a 100644 --- a/tests/avocado/boot_linux_console.py +++ b/tests/avocado/boot_linux_console.py @@ -116,69 +116,6 @@ def test_x86_64_pc(self): console_pattern = 'Kernel command line: %s' % kernel_command_line self.wait_for_console_pattern(console_pattern) - def test_mips_malta(self): - """ - :avocado: tags=arch:mips - :avocado: tags=machine:malta - :avocado: tags=endian:big - """ - deb_url = ('http://snapshot.debian.org/archive/debian/' - '20130217T032700Z/pool/main/l/linux-2.6/' - 'linux-image-2.6.32-5-4kc-malta_2.6.32-48_mips.deb') - deb_hash = 'a8cfc28ad8f45f54811fc6cf74fc43ffcfe0ba04' - deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) - kernel_path = self.extract_from_deb(deb_path, - '/boot/vmlinux-2.6.32-5-4kc-malta') - - self.vm.set_console() - kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' - self.vm.add_args('-kernel', kernel_path, - '-append', kernel_command_line) - self.vm.launch() - console_pattern = 'Kernel command line: %s' % kernel_command_line - self.wait_for_console_pattern(console_pattern) - - def test_mips_malta_cpio(self): - """ - :avocado: tags=arch:mips - :avocado: tags=machine:malta - :avocado: tags=endian:big - """ - deb_url = ('http://snapshot.debian.org/archive/debian/' - '20160601T041800Z/pool/main/l/linux/' - 'linux-image-4.5.0-2-4kc-malta_4.5.5-1_mips.deb') - deb_hash = 'a3c84f3e88b54e06107d65a410d1d1e8e0f340f8' - deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) - kernel_path = self.extract_from_deb(deb_path, - '/boot/vmlinux-4.5.0-2-4kc-malta') - initrd_url = ('https://github.com/groeck/linux-build-test/raw/' - '8584a59ed9e5eb5ee7ca91f6d74bbb06619205b8/rootfs/' - 'mips/rootfs.cpio.gz') - initrd_hash = 'bf806e17009360a866bf537f6de66590de349a99' - initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash) - initrd_path = self.workdir + "rootfs.cpio" - archive.gzip_uncompress(initrd_path_gz, initrd_path) - - self.vm.set_console() - kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE - + 'console=ttyS0 console=tty ' - + 'rdinit=/sbin/init noreboot') - self.vm.add_args('-kernel', kernel_path, - '-initrd', initrd_path, - '-append', kernel_command_line, - '-no-reboot') - self.vm.launch() - self.wait_for_console_pattern('Boot successful.') - - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', - 'BogoMIPS') - exec_command_and_wait_for_pattern(self, 'uname -a', - 'Debian') - exec_command_and_wait_for_pattern(self, 'reboot', - 'reboot: Restarting system') - # Wait for VM to shut down gracefully - self.vm.wait() - def test_aarch64_xlnx_versal_virt(self): """ :avocado: tags=arch:aarch64 diff --git a/tests/functional/meson.build b/tests/functional/meson.build index f8e482a87c..175e88bb87 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -51,6 +51,10 @@ tests_microblazeel_thorough = [ 'microblazeel_s3adsp1800' ] +tests_mips_thorough = [ + 'mips_malta', +] + tests_mipsel_thorough = [ 'mipsel_malta', ] diff --git a/tests/functional/test_mips_malta.py b/tests/functional/test_mips_malta.py new file mode 100755 index 0000000000..2f26dd5884 --- /dev/null +++ b/tests/functional/test_mips_malta.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python3 +# +# Functional tests for the little-endian 32-bit MIPS Malta board +# +# Copyright (c) Philippe Mathieu-Daudé +# +# SPDX-License-Identifier: GPL-2.0-or-later + +import os + +from qemu_test import QemuSystemTest, Asset +from qemu_test import exec_command_and_wait_for_pattern +from qemu_test.linux_kernel import linux_kernel_wait_for_pattern +from qemu_test.linux_kernel import KERNEL_COMMON_COMMAND_LINE +from qemu_test.utils import extract_from_deb +from qemu_test.utils import gzip_uncompress + + +class MaltaMachineConsole(QemuSystemTest): + + ASSET_KERNEL_2_63_2 = Asset( + ('http://snapshot.debian.org/archive/debian/' + '20130217T032700Z/pool/main/l/linux-2.6/' + 'linux-image-2.6.32-5-4kc-malta_2.6.32-48_mips.deb'), + '16ca524148afb0626f483163e5edf352bc1ab0e4fc7b9f9d473252762f2c7a43') + + def test_mips_malta(self): + deb_path = self.ASSET_KERNEL_2_63_2.fetch() + kernel_path = extract_from_deb(deb_path, self.workdir, + '/boot/vmlinux-2.6.32-5-4kc-malta') + + self.set_machine('malta') + self.vm.set_console() + kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' + self.vm.add_args('-kernel', kernel_path, + '-append', kernel_command_line) + self.vm.launch() + console_pattern = 'Kernel command line: %s' % kernel_command_line + linux_kernel_wait_for_pattern(self, console_pattern) + + ASSET_KERNEL_4_5_0 = Asset( + ('http://snapshot.debian.org/archive/debian/' + '20160601T041800Z/pool/main/l/linux/' + 'linux-image-4.5.0-2-4kc-malta_4.5.5-1_mips.deb'), + '526b17d5889840888b76fc2c36a0ebde182c9b1410a3a1e68203c3b160eb2027') + + ASSET_INITRD = Asset( + ('https://github.com/groeck/linux-build-test/raw/' + '8584a59ed9e5eb5ee7ca91f6d74bbb06619205b8/rootfs/' + 'mips/rootfs.cpio.gz'), + 'dcfe3a7fe3200da3a00d176b95caaa086495eb158f2bff64afc67d7e1eb2cddc') + + def test_mips_malta_cpio(self): + deb_path = self.ASSET_KERNEL_4_5_0.fetch() + kernel_path = extract_from_deb(deb_path, self.workdir, + '/boot/vmlinux-4.5.0-2-4kc-malta') + initrd_path_gz = self.ASSET_INITRD.fetch() + initrd_path = os.path.join(self.workdir, 'rootfs.cpio') + gzip_uncompress(initrd_path_gz, initrd_path) + + self.set_machine('malta') + self.vm.set_console() + kernel_command_line = (KERNEL_COMMON_COMMAND_LINE + + 'console=ttyS0 console=tty ' + + 'rdinit=/sbin/init noreboot') + self.vm.add_args('-kernel', kernel_path, + '-initrd', initrd_path, + '-append', kernel_command_line, + '-no-reboot') + self.vm.launch() + linux_kernel_wait_for_pattern(self, 'Boot successful.') + + exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', + 'BogoMIPS') + exec_command_and_wait_for_pattern(self, 'uname -a', + 'Debian') + exec_command_and_wait_for_pattern(self, 'reboot', + 'reboot: Restarting system') + # Wait for VM to shut down gracefully + self.vm.wait() + + +if __name__ == '__main__': + QemuSystemTest.main()