| From 84ea519aecbecad6970fab452295c118041e52d7 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> |
| Date: Mon, 3 Feb 2025 10:36:04 +0000 |
| Subject: [PATCH] tests/functional: skip mem addr test on 32-bit hosts |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| The test_mem_addr_space is validating handling of QEMU with various |
| memory address settings. All of the test cases are setting 'maxmem' |
| to a value that exceeds the 32-bit address space, so these must all |
| be skipped on 32-bit hosts. |
| |
| Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> |
| |
| tests/functional/test_mem_addr_space.py | 22 ++++++++++++++++++++++ |
| 1 file changed, 22 insertions(+) |
| |
| diff --git a/tests/functional/test_mem_addr_space.py b/tests/functional/test_mem_addr_space.py |
| index bb0cf062ca..ac76fa9c48 100755 |
| |
| |
| @@ -11,8 +11,15 @@ |
| # SPDX-License-Identifier: GPL-2.0-or-later |
| |
| from qemu_test import QemuSystemTest |
| +from unittest import skipUnless |
| +import sys |
| import time |
| |
| +def skipIf32BitTarget(): |
| + enoughBits = sys.maxsize > 2**32 |
| + return skipUnless(enoughBits, |
| + 'Test requires a host with 64-bit address space') |
| + |
| class MemAddrCheck(QemuSystemTest): |
| # after launch, in order to generate the logs from QEMU we need to |
| # wait for some time. Launching and then immediately shutting down |
| @@ -22,6 +29,7 @@ class MemAddrCheck(QemuSystemTest): |
| |
| # first, lets test some 32-bit processors. |
| # for all 32-bit cases, pci64_hole_size is 0. |
| + @skipIf32BitTarget() |
| def test_phybits_low_pse36(self): |
| """ |
| With pse36 feature ON, a processor has 36 bits of addressing. So it can |
| @@ -49,6 +57,7 @@ def test_phybits_low_pse36(self): |
| self.assertEqual(self.vm.exitcode(), 1, "QEMU exit code should be 1") |
| self.assertRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_low_pae(self): |
| """ |
| With pae feature ON, a processor has 36 bits of addressing. So it can |
| @@ -66,6 +75,7 @@ def test_phybits_low_pae(self): |
| self.assertEqual(self.vm.exitcode(), 1, "QEMU exit code should be 1") |
| self.assertRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_ok_pentium_pse36(self): |
| """ |
| Setting maxmem to 59.5G and making sure that QEMU can start with the |
| @@ -82,6 +92,7 @@ def test_phybits_ok_pentium_pse36(self): |
| self.vm.shutdown() |
| self.assertNotRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_ok_pentium_pae(self): |
| """ |
| Test is same as above but now with pae cpu feature turned on. |
| @@ -99,6 +110,7 @@ def test_phybits_ok_pentium_pae(self): |
| self.vm.shutdown() |
| self.assertNotRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_ok_pentium2(self): |
| """ |
| Pentium2 has 36 bits of addressing, so its same as pentium |
| @@ -115,6 +127,7 @@ def test_phybits_ok_pentium2(self): |
| self.vm.shutdown() |
| self.assertNotRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_low_nonpse36(self): |
| """ |
| Pentium processor has 32 bits of addressing without pse36 or pae |
| @@ -135,6 +148,7 @@ def test_phybits_low_nonpse36(self): |
| self.assertRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| # now lets test some 64-bit CPU cases. |
| + @skipIf32BitTarget() |
| def test_phybits_low_tcg_q35_70_amd(self): |
| """ |
| For q35 7.1 machines and above, there is a HT window that starts at |
| @@ -161,6 +175,7 @@ def test_phybits_low_tcg_q35_70_amd(self): |
| self.assertEqual(self.vm.exitcode(), 1, "QEMU exit code should be 1") |
| self.assertRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_low_tcg_q35_71_amd(self): |
| """ |
| AMD_HT_START is defined to be at 1012 GiB. So for q35 machines |
| @@ -181,6 +196,7 @@ def test_phybits_low_tcg_q35_71_amd(self): |
| self.assertEqual(self.vm.exitcode(), 1, "QEMU exit code should be 1") |
| self.assertRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_ok_tcg_q35_70_amd(self): |
| """ |
| Same as q35-7.0 AMD case except that here we check that QEMU can |
| @@ -197,6 +213,7 @@ def test_phybits_ok_tcg_q35_70_amd(self): |
| self.vm.shutdown() |
| self.assertNotRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_ok_tcg_q35_71_amd(self): |
| """ |
| Same as q35-7.1 AMD case except that here we check that QEMU can |
| @@ -213,6 +230,7 @@ def test_phybits_ok_tcg_q35_71_amd(self): |
| self.vm.shutdown() |
| self.assertNotRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_ok_tcg_q35_71_intel(self): |
| """ |
| Same parameters as test_phybits_low_tcg_q35_71_amd() but use |
| @@ -231,6 +249,7 @@ def test_phybits_ok_tcg_q35_71_intel(self): |
| self.vm.shutdown() |
| self.assertNotRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_low_tcg_q35_71_amd_41bits(self): |
| """ |
| AMD processor with 41 bits. Max cpu hw address = 2 TiB. |
| @@ -255,6 +274,7 @@ def test_phybits_low_tcg_q35_71_amd_41bits(self): |
| self.assertEqual(self.vm.exitcode(), 1, "QEMU exit code should be 1") |
| self.assertRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_ok_tcg_q35_71_amd_41bits(self): |
| """ |
| AMD processor with 41 bits. Max cpu hw address = 2 TiB. |
| @@ -273,6 +293,7 @@ def test_phybits_ok_tcg_q35_71_amd_41bits(self): |
| self.vm.shutdown() |
| self.assertNotRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_low_tcg_q35_intel_cxl(self): |
| """ |
| cxl memory window starts after memory device range. Here, we use 1 GiB |
| @@ -293,6 +314,7 @@ def test_phybits_low_tcg_q35_intel_cxl(self): |
| self.assertEqual(self.vm.exitcode(), 1, "QEMU exit code should be 1") |
| self.assertRegex(self.vm.get_log(), r'phys-bits too low') |
| |
| + @skipIf32BitTarget() |
| def test_phybits_ok_tcg_q35_intel_cxl(self): |
| """ |
| Same as above but here we do not reserve any cxl memory window. Hence, |
| -- |
| 2.47.1 |
| |