Skip to content

tests: link and compile on macOS and Windows, and with static plug-ins - #2332

Closed
jcelerier wants to merge 6 commits into
masterfrom
fix/test-portability
Closed

jcelerier wants to merge 6 commits into
masterfrom
fix/test-portability

Conversation

@jcelerier

Copy link
Copy Markdown
Member

Test build failures left after #2330, found building the full suite with every CI add-on on Linux (SDK, static), macOS (SDK) and Windows (CLANG64 SDK, unity).

Changes

  • ForkProbe.hpp: resolve __llvm_profile_write_file with dlsym on Apple, as ObjectGallery.cpp does. Mach-O has no weak undefined externals, so seven tests failed to link on macOS outside coverage builds.
  • bitfocus_module_driver is a GUI test: it boots score_test/App.hpp, which with static plug-ins references every plug-in (undefined score_plugin_protocols constructor).
  • CanvasPaintingTest: near renamed to colorsClose (<windef.h> defines near); ci/tests: fix CLANG64 static linking, the AppImage FUSE dependency, Windows add-on command lines, and the OSC type tags test #2330 fixed the other tests.
  • Regex_UI_Test: its Switch uuid constant no longer clashes with Switch_UI_Test's when test_unit_avnd_dynamic_ports is unity-built.

Verification

On top of #2330 and the add-on PRs below, at the same commits on the three platforms:

  • Linux SDK static build: 0 failed targets (was 3: bitfocus, the two lavfi tests).
  • macOS SDK build: 0 failed targets (was 12).
  • Windows: all 755 test objects compile (was 13 failures); the previously failing tests link.

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_01JeL19ofVgPe9u9q7J1V9ex

jcelerier and others added 4 commits October 10, 2026 00:01
Mach-O has no weak undefined externals: the static link of every test that
includes ForkProbe.hpp failed with an undefined ___llvm_profile_write_file
outside coverage builds. Resolve it with dlsym on Apple, as ObjectGallery.cpp
already does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JeL19ofVgPe9u9q7J1V9ex
It boots score_test/App.hpp, which with static plug-ins references every
plug-in (undefined score_plugin_protocols::score_plugin_protocols() at link
time). score_add_test only links the plug-in list for GUI/APP targets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JeL19ofVgPe9u9q7J1V9ex
… defines

Same fix as the other tests in #2330: on Windows <windef.h> defines near
as an empty macro, so 'bool near(...)' does not compile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JeL19ofVgPe9u9q7J1V9ex
…Test in unity builds

test_unit_avnd_dynamic_ports compiles both files into one target; a unity
build merges their anonymous namespaces, where both defined switch_uuid.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JeL19ofVgPe9u9q7J1V9ex
@coveralls

coveralls commented Oct 10, 2026 •

Copy link
Copy Markdown

Coverage Status

Coverage is 47.868% — fix/test-portability into master. No base build found for master.

jcelerier and others added 2 commits October 10, 2026 20:06
…thout DYLD_LIBRARY_PATH

The local device warns that the OSC port is taken whenever the port it got
differs from the one asked, which is always the case for the port 0 the tests
ask for. The parentless warning box survives ~QApplication, and under xcb the
next application of the same test process repaints it through the dead
connection: 8 integration tests segfaulted in their second app instance.

ossia-score exits at startup when DYLD_LIBRARY_PATH is set (#1711), so every
macOS integration test that spawns it failed. Use DYLD_FALLBACK_LIBRARY_PATH
for the SDK library dir instead, keeping dyld's default fallback after it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JeL19ofVgPe9u9q7J1V9ex
…e box

score::interactiveSession(), moved from the package manager to
score/widgets/MessageBox so both use it: false in tests
(SCORE_SANITIZE_SKIP_CHECKS), without a GUI, when a script drives the
session, and on the offscreen and minimal platforms. The warning is always
logged; the box is only shown when someone is there to close it. Unchanged
for a user at a real display.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JeL19ofVgPe9u9q7J1V9ex
@jcelerier

Copy link
Copy Markdown
Member Author

Folded into #2326 (gfx/shading-tiers @ 54da0b2): the six commits are now on top of that branch, so there is one PR to review.

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