Skip to content

Adding QNX Unit Testing Infrastructure and Python Dependency Integration#5

Closed
saksham-chawla wants to merge 1 commit intocodex/replay-pr-200-basefrom
codex/replay-pr-200-head
Closed

Adding QNX Unit Testing Infrastructure and Python Dependency Integration#5
saksham-chawla wants to merge 1 commit intocodex/replay-pr-200-basefrom
codex/replay-pr-200-head

Conversation

@saksham-chawla
Copy link
Collaborator

@saksham-chawla saksham-chawla commented Mar 18, 2026

This PR introduces QNX unit testing support and updates Python dependencies to enable test result processing and Bazel integration.


Adding QNX Unit Testing Infrastructure and Python Dependency Integration

This pull request introduces comprehensive QNX unit testing support by integrating a new infrastructure into the Bazel build system. It enables C++ unit tests to run on QNX 8.0 within a QEMU virtual machine environment. The changes include new Bazel rules for building QNX bootable images and orchestrating QEMU execution, along with Python scripts for processing test results and coverage data from shared filesystems.

The PR also updates Python dependencies to support the new test result processing capabilities, ensuring that the Bazel integration for QNX testing is robust and capable of handling test outputs and coverage reports.

Architecture Diagram:

flowchart TD
    subgraph Host_Environment
        Bazel["Bazel Build System"] -- "defines `cc_test_qnx` macro" --> QNXTestMacro["cc_test_qnx.bzl (+195 lines)"]
        QNXTestMacro -- "generates" --> QNX_IFS["QNX Bootable Image"]
        QNXTestMacro -- "orchestrates" --> QEMULauncher["run_qemu.sh (+52 lines)"]
        QEMULauncher -- "invokes" --> ResultProcessor["process_test_results.py (+30 lines)"]
        ResultProcessor -- "uses Python libs" --> PythonDeps["pyfatfs, fs"]
    end

    subgraph QEMU_VM
        QEMULauncher -- "starts VM with" --> QEMU["QEMU Virtual Machine"]
        QEMU -- "boots" --> QNX_IFS
        QEMU -- "mounts shared disk 0" --> FAT32_Results[/"FAT32 Test Results"/]
        QEMU -- "mounts shared disk 1" --> QNX6_Persistent[/"QNX6 Persistent Storage"/]
    end

    subgraph QNX_Guest_OS
        QNX_IFS -- "executes" --> StartupScript["startup.sh (+60 lines)"]
        StartupScript -- "configures" --> PersistencyScript["configure_persistency.sh (+165 lines)"]
        StartupScript -- "runs" --> TestBinary["C++ Test Binary"]
        TestBinary -- "writes XML" --> FAT32_Results
        TestBinary -- "writes coverage" --> QNX6_Persistent
    end

    FAT32_Results -- "read by" --> ResultProcessor
    QNX6_Persistent -- "read by" --> ResultProcessor
Loading

This summary was automatically generated by @propel-code-bot

saksham-chawla pushed a commit that referenced this pull request Mar 18, 2026
…_implementation_Feedback_Review

Generic skeleton implementation feedback review [Resolve merge conflicts with main]
@saksham-chawla saksham-chawla marked this pull request as draft March 18, 2026 09:49
@saksham-chawla saksham-chawla marked this pull request as ready for review March 18, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants