On Mon, 13 Jul 2026 15:28:46 -0700 Pierrick Bouvier
<[email protected]> wrote:
>
> On 7/13/2026 1:07 PM, Matheus Tavares Bernardino wrote:
> > From: Brian Cain <[email protected]>
> >
> > Signed-off-by: Brian Cain <[email protected]>
> > Signed-off-by: Matheus Tavares Bernardino
> > <[email protected]>
> > ---
> > tests/functional/hexagon/meson.build | 9 ++
> > tests/functional/hexagon/test_systests.py | 133 ++++++++++++++++++++++
> > tests/functional/meson.build | 1 +
> > 3 files changed, 143 insertions(+)
> > create mode 100644 tests/functional/hexagon/meson.build
> > create mode 100644 tests/functional/hexagon/test_systests.py
> >
> > diff --git a/tests/functional/hexagon/meson.build
> > b/tests/functional/hexagon/meson.build
> > new file mode 100644
> > index 00000000000..6cd684b0df7
> > --- /dev/null
> > +++ b/tests/functional/hexagon/meson.build
> > @@ -0,0 +1,9 @@
> > +# SPDX-License-Identifier: GPL-2.0-or-later
> > +
> > +test_hexagon_timeouts = {
> > + 'systests': 180,
> > +}
> > +
> > +tests_hexagon_system_thorough = [
> > + 'systests',
> > +]
> > diff --git a/tests/functional/hexagon/test_systests.py
> > b/tests/functional/hexagon/test_systests.py
> > new file mode 100644
> > index 00000000000..b20b9fc56cc
> > --- /dev/null
> > +++ b/tests/functional/hexagon/test_systests.py
> > @@ -0,0 +1,133 @@
> > +#!/usr/bin/env python3
> > +#
> > +# Copyright(c) Qualcomm Innovation Center, Inc. All Rights Reserved.
> > +#
> > +# SPDX-License-Identifier: GPL-2.0-or-later
> > +
> > +import os
> > +import re
> > +import time
> > +import unittest
> > +
> > +from qemu_test import QemuSystemTest, Asset, wait_for_console_pattern
> > +
> > +
> > +_TARBALL_BIN_PATH = os.path.join(
> > + "systests_standalone_package",
> > + "StandaloneSysTests_6.4.0.2_v68",
> > + "bin",
> > +)
> > +
> > +
> > +class SysTestsStandaloneTests(QemuSystemTest):
> > + SYSTEST_TIMEOUT_SEC = 30
> > +
> > + ASSET_TARBALL = Asset(
> > +
> > "https://github.com/qualcomm/qemu-hexagon-testing/releases/download/v0.2.9/systests_standalone.tar.gz",
> > + "db961ea3fcc389b478b3d5c2f3bac60bec87e7f3d7efef5e58a9ae8ee78d0e40",
> > + )
> > +
> > + def setUp(self):
> > + super().setUp()
> > + self.archive_extract(self.ASSET_TARBALL)
> > + self.bin_dir = os.path.join(self.workdir, _TARBALL_BIN_PATH)
> > + self._orig_cwd = os.getcwd()
> > + os.chdir(self.workdir)
> > + self.addCleanup(os.chdir, self._orig_cwd)
> > +
> > + def tearDown(self):
> > + if hasattr(self, "_orig_cwd"):
> > + os.chdir(self._orig_cwd)
> > + super().tearDown()
> > +
> > + def binary(self, name):
> > + """Return the full path to binary *name* inside bin_dir."""
> > + return os.path.join(self.bin_dir, name)
> > +
> > + def run_exit_zero(self, binary_name, *extra_args, machine="V66G_1024"):
> > + """Launch *binary_name* and assert it exits with code 0.
> > +
> > + :param binary_name: name of the binary inside bin_dir.
> > + :param extra_args: optional pairs of (flag, value) strings passed
> > + to set_vm_arg(), e.g. ('-append', 'myarg').
> > + :param machine: QEMU machine type (default "V66G_1024").
> > + """
>
>
> We could check self.binary(binary_name) exists to provide a useful error
> message.
Ok, good idea. I'll add the following:
diff --git a/tests/functional/hexagon/test_systests.py
b/tests/functional/hexagon/test_systests.py
index b20b9fc56cc..692ec5ad2d5 100644
--- a/tests/functional/hexagon/test_systests.py
+++ b/tests/functional/hexagon/test_systests.py
@@ -42,7 +42,9 @@ def tearDown(self):
def binary(self, name):
"""Return the full path to binary *name* inside bin_dir."""
- return os.path.join(self.bin_dir, name)
+ path = os.path.join(self.bin_dir, name)
+ self.assertTrue(os.path.exists(path))
+ return path
def run_exit_zero(self, binary_name, *extra_args, machine="V66G_1024"):
"""Launch *binary_name* and assert it exits with code 0