qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU


From: Wainer dos Santos Moschetta
Subject: Re: [PATCH] tests/acceptance: Test PMON with Loongson-3A1000 CPU
Date: Tue, 12 Jan 2021 11:05:19 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0

Hi,

On 1/11/21 11:07 PM, Jiaxun Yang wrote:
Test booting of PMON bootloader on loongson3-virt platform.

$ (venv) AVOCADO_ALLOW_UNTRUSTED_CODE=1 \
     avocado --show=app,console \
       run -t machine:loongson3-virt tests/acceptance
Fetching asset from 
tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console
JOB ID     : 8e202b3727847c9104d0d3d6546ed225d35f6706
JOB LOG    : 
/home/flygoat/avocado/job-results/job-2021-01-12T10.02-8e202b3/job.log
  (1/1) 
tests/acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console:
  console: PMON2000 MIPS Initializing. Standby...
console: 00000000Jump to 9fc
<snip>
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
  MAINTAINERS                                 |  1 +
  tests/acceptance/machine_mips_loongson3v.py | 39 +++++++++++++++++++++
  2 files changed, 40 insertions(+)
  create mode 100644 tests/acceptance/machine_mips_loongson3v.py

Allow me to use this new test as an example to start a discussion about the organization of the acceptance files.

The mips64le tests currently are:

$ ./venv/bin/avocado list -t arch:mips64el acceptance/

INSTRUMENTED acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_malta INSTRUMENTED acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_fuloong2e INSTRUMENTED acceptance/boot_linux_console.py:BootLinuxConsole.test_mips64el_malta_5KEc_cpio INSTRUMENTED acceptance/linux_ssh_mips_malta.py:LinuxSSH.test_mips_malta64el_kernel3_2_0 INSTRUMENTED acceptance/machine_mips_loongson3v.py:MipsLoongson3v.test_pmon_serial_console INSTRUMENTED acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core INSTRUMENTED acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores INSTRUMENTED acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores INSTRUMENTED acceptance/replay_kernel.py:ReplayKernelNormal.test_mips64el_malta INSTRUMENTED acceptance/replay_kernel.py:ReplayKernelSlow.test_mips64el_malta_5KEc_cpio

Most of them are simple "boot linux (or firmware) and check the console" tests. The replay_kernel.py contain tests for a given feature and happen to be testing on mips64el as well. So on tests/acceptance directory we've got boot tests spread across files and mixed with "generic" feature tests.

I think we should find a home for those boot tests. Maybe throw them all in a sub-directory called "boot_tests", or in arch-oriented directories (boot_tests/mips64el, boot_tests/x86_64, ...) which would make easier to reference them in the MAINTAINERS file.

Any thought?


diff --git a/MAINTAINERS b/MAINTAINERS
index 4be087b88e..f38882f997 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1164,6 +1164,7 @@ F: hw/intc/loongson_liointc.c
  F: hw/mips/loongson3_bootp.c
  F: hw/mips/loongson3_bootp.h
  F: hw/mips/loongson3_virt.c
+F: tests/acceptance/machine_mips_loongson3v.py
Boston
  M: Paul Burton <paulburton@kernel.org>
diff --git a/tests/acceptance/machine_mips_loongson3v.py 
b/tests/acceptance/machine_mips_loongson3v.py
new file mode 100644
index 0000000000..17a85de69f
--- /dev/null
+++ b/tests/acceptance/machine_mips_loongson3v.py
@@ -0,0 +1,39 @@
+# Functional tests for the Generic Loongson-3 Platform.
+#
+# Copyright (c) 2020 Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# 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 time

Unused time import

Thanks!

- Wainer

+
+from avocado import skipUnless
+from avocado_qemu import Test
+from avocado_qemu import wait_for_console_pattern
+
+class MipsLoongson3v(Test):
+    @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
+    def test_pmon_serial_console(self):
+        """
+        :avocado: tags=arch:mips64el
+        :avocado: tags=endian:little
+        :avocado: tags=machine:loongson3-virt
+        :avocado: tags=cpu:Loongson-3A1000
+        :avocado: tags=device:liointc
+        :avocado: tags=device:goldfish_rtc
+        """
+
+        pmon_hash = '7c8b45dd81ccfc55ff28f5aa267a41c3'
+        pmon_path = 
self.fetch_asset('https://github.com/loongson-community/pmon/'
+                                    
'releases/download/20210112/pmon-3avirt.bin',
+                                     asset_hash=pmon_hash, algorithm='md5'
+
+        self.vm.set_console()
+        self.vm.add_args('-bios', pmon_path)
+        self.vm.launch()
+        wait_for_console_pattern(self, 'PMON2000 MIPS Initializing. 
Standby...')
+        wait_for_console_pattern(self, 'Copy PMON to execute location done.')
+        wait_for_console_pattern(self, 'CPU GODSON3 BogoMIPS:')




reply via email to

[Prev in Thread] Current Thread [Next in Thread]