Skip to content

Ship test/shipyard-ship-cycle-2 - #115

Merged
danielraffel merged 5 commits into
develop/shipyard-validationfrom
test/shipyard-ship-cycle-2
Apr 11, 2026
Merged

Ship test/shipyard-ship-cycle-2#115
danielraffel merged 5 commits into
develop/shipyard-validationfrom
test/shipyard-ship-cycle-2

Conversation

@danielraffel

Copy link
Copy Markdown
Collaborator

Automated by Shipyard

A prior smoke run cached PULP_BUILD_TESTS=OFF in CMakeCache.txt.
CMake reuses cached values when not explicitly passed, so the
default validation silently skipped test targets — ctest reported
"No tests were found!!!" with rc=0. Adding explicit -D flags
ensures tests are always built regardless of prior cache state.
CMAKE_SYSTEM_PROCESSOR reports the HOST arch (ARM64) not the TARGET
arch on Windows. When cross-compiling with -A x64 on an ARM64 host,
this caused Pulp to download ARM64 wgpu binaries and try to link
them into an x64 build — producing LNK2019 + LNK4272 errors on
every wgpu symbol.

Fix: use CMAKE_GENERATOR_PLATFORM (set by -A flag) when available,
falling back to CMAKE_SYSTEM_PROCESSOR for non-VS generators.

Also forces PULP_BUILD_TESTS=ON in the default Shipyard validation
configure command to prevent smoke-run cache poisoning.
@danielraffel
danielraffel force-pushed the test/shipyard-ship-cycle-2 branch from c88103c to 3732086 Compare April 11, 2026 12:51
Three root causes:

1. POSIX-only subprocess paths (3 tests):
   - exec("echo", ...) — echo is a cmd.exe builtin, not a standalone exe
   - run_process("/bin/echo", ...) — /bin/echo doesn't exist on Windows
   - run_process("/bin/sh", ...) — /bin/sh doesn't exist on Windows
   Fix: add #ifdef _WIN32 alternatives using cmd.exe /c.

2. Unicode em-dash in test names (5 tests):
   - CTest on Windows passes test name filters via cmd.exe, which
     mangles UTF-8 em-dash (U+2014) to garbled "G\x{c3}\x{a9}"
   - Catch2 then can't match the filter → "No test cases matched"
     → reports "No tests ran" which CTest counts as failure
   Fix: replace em-dash — with ASCII -- in test case names.

3. Toolbar SEGFAULT (1 test):
   - Toolbar constructor likely crashes in headless Yoga layout on
     Windows (null parent context)
   - Already tagged [!mayfail] but SEGFAULT kills the executable
     before Catch2 processes the tag
   Fix: add to --exclude-regex in shipyard config alongside
   AudioWorkgroup. Proper fix needs Windows debugging.
@danielraffel
danielraffel merged commit 6aeae8c into develop/shipyard-validation Apr 11, 2026
7 checks passed
@danielraffel
danielraffel deleted the test/shipyard-ship-cycle-2 branch April 11, 2026 14:00
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.

1 participant