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

Reply via email to