Move the arch_tests_uart and systests_standalone assets from v0.2.14,
and arch_tests_semihosting from v0.2.9, to v0.3.1.

The changes add test bugfixes and additional coverage:

 - test_guest_mode now covers direct-to-guest events.
 - test_pagecross_tlbmissx checks ELR on a page-straddling fetch.
 - pend_wake_wait asserts the thread enable mask and no longer takes
   k0lock in its ISR, which caused hangs.
 - lock_verify skipped for now: before v0.2.22 it had bugs exposed by mttcg,
   and v0.3.1 still has invalid assertions about SWI delivery.
 - test_l2vic covers VID write, interrupt delivery and ciad-l2vic acks.
 - test_int_steering didn't iterate enough when waiting and would fail on
   a heavily loaded system.
 - The systests package is built with SDK 6.7.0.0.
 - swi_touch_memory is introduced to cover semihosting buffer
   alignment/paging.

Signed-off-by: Brian Cain <[email protected]>
---
 tests/functional/hexagon/meson.build        |  1 +
 tests/functional/hexagon/test_arch_tests.py | 10 ++++++----
 tests/functional/hexagon/test_systests.py   | 14 +++++++++++---
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/tests/functional/hexagon/meson.build 
b/tests/functional/hexagon/meson.build
index 0fd90e491a2..f17584d751a 100644
--- a/tests/functional/hexagon/meson.build
+++ b/tests/functional/hexagon/meson.build
@@ -8,6 +8,7 @@ tests_hexagon_system_thorough = [
 ]
 
 test_hexagon_timeouts = {
+  'arch_tests': 180,
   'qcom_dsp_firmware': 240,
   'systests': 180,
 }
diff --git a/tests/functional/hexagon/test_arch_tests.py 
b/tests/functional/hexagon/test_arch_tests.py
index 28bf2f02d39..a437e4d4aac 100755
--- a/tests/functional/hexagon/test_arch_tests.py
+++ b/tests/functional/hexagon/test_arch_tests.py
@@ -21,13 +21,15 @@ class ArchTestsUart(QemuSystemTest):
 
     ASSET_TARBALL = Asset(
         "https://github.com/qualcomm/qemu-hexagon-testing/releases/";
-        "download/v0.2.14/arch_tests_uart.tar.gz",
-        "ce93cb90b9d757c1946dfe8fe6abcec8292b08a66546ac51b2dd48650b05fa91",
+        "download/v0.3.1/arch_tests_uart.tar.gz",
+        "1baba59ad29c24a3d38043cc9f6846fd"
+        "fd3f88e8b67501c13722916c6c744c3c",
     )
     ASSET_SEMIHOSTING_TARBALL = Asset(
         "https://github.com/qualcomm/qemu-hexagon-testing/releases/";
-        "download/v0.2.9/arch_tests_semihosting.tar.gz",
-        "f0ce731dc8dc2b861792b8bd60808cb714fd1922c0dc793af65090c0ba525bb0",
+        "download/v0.3.1/arch_tests_semihosting.tar.gz",
+        "37b460146e7a2a6898ba6454dfea7e1c"
+        "64053b31e8e3acf7c97e7e82209b6bda",
     )
 
     def run_uart_test(self, test_name: str,
diff --git a/tests/functional/hexagon/test_systests.py 
b/tests/functional/hexagon/test_systests.py
index 1c1d5440bb6..fb1d2454fd1 100755
--- a/tests/functional/hexagon/test_systests.py
+++ b/tests/functional/hexagon/test_systests.py
@@ -13,7 +13,7 @@
 
 _TARBALL_BIN_PATH = (
     "systests_standalone_package",
-    "StandaloneSysTests_6.4.0.2_v68",
+    "StandaloneSysTests_6.7.0.0_v68",
     "bin",
 )
 
@@ -21,8 +21,10 @@ class SysTestsStandaloneTests(QemuSystemTest):
     SYSTEST_TIMEOUT_SEC = 30
 
     ASSET_TARBALL = Asset(
-        
"https://github.com/qualcomm/qemu-hexagon-testing/releases/download/v0.2.14/systests_standalone.tar.gz";,
-        "f0c535d746384126954757b6ce54452c5fe82624618c79862495eec24718a6ff",
+        "https://github.com/qualcomm/qemu-hexagon-testing/releases/";
+        "download/v0.3.1/systests_standalone.tar.gz",
+        "40163fa94d67a63e5ef645fc83682e4e"
+        "b56e1d79a9068614055e74f35d4cf70d",
     )
 
     def setUp(self):
@@ -90,6 +92,10 @@ def test_access(self):
     def test_semihost(self):
         self.run_console_pattern("semihost", "PASS", "-append", "arg1", "arg2")
 
+    def test_swi_touch_memory(self):
+        """A semihosting read restarts after a fault on its second page."""
+        self.run_exit_zero("swi_touch_memory")
+
     def test_dtg_interrupt(self):
         self.run_exit_zero("dtg_interrupt")
 
@@ -108,6 +114,8 @@ def test_hvx_multi(self):
     def test_standalone_vec(self):
         self.run_exit_zero("standalone_vec")
 
+    @unittest.skip("lock_verify has timing defects before v0.2.22 "
+                   "and in v0.3.1")
     def test_lock_verify(self):
         self.run_exit_zero("lock_verify")
 
-- 
2.34.1

Reply via email to