Skip to content

Build the ZoneX regression test harness #3

Closed

Description

@fdesbiens

Stand up the ZoneX regression suite, following the layout the other Eclipse ThreadX repositories use so that contributors moving between them find the same commands.

Blocked by #2, which decides what the suite runs on.

Scope

  • test/ holding the CMake project(s) for the suite, with a run.sh entry point per target, as in test/tx/cmake/run.sh.
  • scripts/build_*.sh and scripts/test_*.sh pairs, one per test target, each a thin wrapper over the matching run.sh.
  • scripts/*.ps1 equivalents for Windows, if the host target decided in Decide the host target for the ZoneX regression suite #2 has a Windows story. ThreadX does this through scripts/tx_windows_common.ps1 plus per-target build_*.ps1 / test_*.ps1, driving MSVC through the Visual Studio Build Tools only — no dependency on Visual Studio itself.
  • scripts/install.sh installing the toolchain and test dependencies on Ubuntu. Worth copying the retry and timeout handling from the ThreadX version rather than writing it fresh; that code exists because unbounded apt-get update calls cost whole CI runs.
  • Coverage reporting via gcovr, pinned exactly as ThreadX pins it.

Definition of done

The suite builds and passes locally on Linux, and on Windows if applicable, and the "Building and testing" section of CONTRIBUTING.md is rewritten to replace the current placeholder — documenting each script and which target it covers.

Activity

  1. fdesbiens commented on Sep 1, 2026

    @fdesbiens
    ContributorAuthor

    Scoped by the A3 Phase-0 plan, step 1 T8 (~/plans/A3-step1.md). Targets are host (manifest validator and the rest of the architecture-independent logic), fvp and s32z280 — not the win32/win64/POSIX simulators ThreadX uses. #2 is closed: the target decision was already made in the plan.

    The rewrite of CONTRIBUTING.md's "Building and testing" section that this issue's definition of done requires is step 8 T8.

  2. fdesbiens commented on Sep 2, 2026

    @fdesbiens
    ContributorAuthor

    Status update — the harness landed with the ZoneX repository foundation change. Leaving this open until it is proven on a pull request; see "What is left" below.

    What now exists

    • test/ holds a run.sh entry point per target: test/host/run.sh (build | test | coverage), test/fvp/run.sh and test/s32z280/run.sh.
    • scripts/ holds the matching thin wrappers — build_host.sh / test_host.sh, build_fvp.sh / test_fvp.sh, build_s32z280.sh / test_s32z280.sh — so a contributor moving between Eclipse ThreadX repositories finds the same shape.
    • scripts/install.sh installs the build and test dependencies on Ubuntu, with the retry-and-timeout handling copied from ThreadX's rather than written fresh. That code exists because unbounded apt-get update calls cost whole CI runs there, once for over two hours.
    • Coverage through gcovr, pinned exactly at 8.6 — the same version ThreadX pins, so the two repositories' numbers are comparable. It is moved by hand; no Dependabot ecosystem parses a shell script.
    • CMakePresets.json offers the same builds directly: default, ci-strict (warnings as errors), coverage, fvp, fvp-strict, s32z280.
    • The host suite runs today: one suite, test_zx_api, covering what the foundation change actually delivers — the capability macros, zx_addr_t, and the 64-byte MPU granule constant. It grows substantially once the partition manifest and its validator arrive.

    Two decisions this issue raised, now recorded

    • No PowerShell script set, and none planned. Phase 0 targets the Armv8-R AEM FVP and the S32Z280-594EVB, cross-compiled with the Arm toolchains, and the host suite is built with GCC. Nothing in that chain has a Windows path anybody would exercise, and an untested build_host.ps1 would be a promise the project cannot keep. Reversible cheaply — .gitattributes already pins *.ps1 to CRLF and all the logic lives in the run.sh entry points. Recorded as docs/decisions.md D13, and CONTRIBUTING.md's sentence implying Windows support is qualified rather than left standing.
    • The host target question from Decide the host target for the ZoneX regression suite #2 is settled — see the comment there. Two suites, deliberately: host-compiled unit tests for the architecture-independent logic, FVP and silicon for everything that is only true on the hardware.

    What is left before this closes

    The suite builds and passes locally on Linux, and CONTRIBUTING.md's "Building and testing" section now describes what exists instead of what was planned. What it has not done is run on a pull request — ZoneX has had none yet. This stays open until a pull request shows the wrappers green in CI.

  3. fdesbiens commented on Sep 9, 2026

    @fdesbiens
    ContributorAuthor

    Fixed by #5. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions