On 10/13/2026 5:24 PM, Brian Cain wrote: > > On 10/13/2026 4:55 PM, Pierrick Bouvier wrote: >> On 10/9/2026 12:25 PM, Brian Cain wrote: >>> Add the lock_verify test case to verify the k0/tlblock behavior, add the >>> minivm tests to cover start() and more. >>> >>> Signed-off-by: Brian Cain <[email protected]> >>> --- >>> tests/functional/hexagon/meson.build | 1 + >>> tests/functional/hexagon/test_minivm.py | 43 +++++++++++++++++++++++ >>> tests/functional/hexagon/test_systests.py | 3 ++ >>> 3 files changed, 47 insertions(+) >>> create mode 100755 tests/functional/hexagon/test_minivm.py >>> >>> diff --git a/tests/functional/hexagon/meson.build b/tests/functional/ >>> hexagon/meson.build >>> index 44053e64676..e182bc98a06 100644 >>> --- a/tests/functional/hexagon/meson.build >>> +++ b/tests/functional/hexagon/meson.build >>> @@ -3,6 +3,7 @@ >>> tests_hexagon_system_thorough = [ >>> 'arch_tests', >>> 'systests', >>> + 'minivm', >>> ] >>> test_hexagon_timeouts = { >>> diff --git a/tests/functional/hexagon/test_minivm.py b/tests/ >>> functional/hexagon/test_minivm.py >>> new file mode 100755 >>> index 00000000000..a70edbcc987 >>> --- /dev/null >>> +++ b/tests/functional/hexagon/test_minivm.py >>> @@ -0,0 +1,43 @@ >>> +#!/usr/bin/env python3 >>> +# >>> +# Copyright(c) 2024-2025 Qualcomm Innovation Center, Inc. All Rights >>> Reserved. >>> +# >>> +# SPDX-License-Identifier: GPL-2.0-or-later >>> + >>> +from qemu_test import QemuSystemTest, Asset, skipBigDataTest >>> + >>> +class MiniVMTest(QemuSystemTest): >>> + ''' >>> + minivm is a Hexagon hypervisor that implements the Hexagon VM >>> + specification. These test cases boot minivm and then load test >>> cases >>> + to the address specified by MiniVMTest.GUEST_ENTRY and >>> + execute a minvm-guest program to exercise minivm virtualization >>> + features. >>> + ''' >>> + timeout = 180 >>> + GUEST_ENTRY = 0xc0000000 >>> + REPO = 'https://artifacts.codelinaro.org/artifactory' >>> + ASSET_TARBALL = \ >>> + Asset(f'{REPO}/codelinaro-toolchain-for-hexagon/' >>> + '19.1.5/hexagon_minivm_2024_Dec_15.tar.gz', >>> + >>> 'd7920b5ff14bed5a10b23ada7d4eb927ede08635281f25067e0d5711feee2c2a') >>> + >>> + @skipBigDataTest() >>> + def test_minivm(self): >>> + self.set_machine('sim') >>> + self.archive_extract(self.ASSET_TARBALL) >>> + rootfs_path = self.scratch_file('hexagon-unknown-linux-musl- >>> rootfs') >>> + kernel_path = f'{rootfs_path}/boot/minivm' >>> + >>> + for test_case in ('test_mmu', 'test_interrupts', >>> 'test_processors'): >>> + with self.subTest(test_case=test_case): >>> + vm = self.get_vm(name=test_case) >>> + vm.add_args('-kernel', kernel_path, '-device', >>> + f'loader,addr={hex(self.GUEST_ENTRY)},' >>> + f'file={rootfs_path}/boot/{test_case}') >>> + vm.launch() >>> + vm.wait() >>> + self.assertEqual(vm.exitcode(), 0) >>> + >> In case we decide to extend that with many other sub testcases, it could >> be useful to define real sub tests. Just a suggestion though, it's not >> necessary for the only 3 tests we have at the moment. > > OBTW confession time - the subTest() was merely hackery because the > tarball includes a large-ish filesystem. It was a sparse file before > archive+compression but effectively now it's dense. I just did this to > avoid the time spent extracting for each test. The extraction time > dominates the test duration. > > So maybe there's a better approach to consider w/o subTest()? >
After checking it's indeed a bit slow. Would that be possible to reduce test_mmu (culprit, 2.5GB) image size to something under 100MB? Beyond time, it would save disk space also. Regards, Pierrick
