ci: adopt shared tccbin conformance test suite#70
Open
quaesitor-scientiam wants to merge 1 commit into
Open
Conversation
… static libgc.a, XFAIL) TCC on macOS arm64 cannot yet link the Clang-built static libgc.a (see README.md), so this mirrors the dynamic libgc.dylib + rpath path V itself already uses on this platform (vlib/builtin/builtin_d_gcboehm.c.v) instead of skipping GC-dependent tests. hello.c and gc_alloc.c (both GC-dependent) run against libgc.dylib as the blocking lane; crash.c (no GC) runs unconditionally. A separate libgc.a lane is kept as a temporary, explicit XFAIL (continue-on-error) until static linking is supported, rather than silently dropped. Mirrors the thirdparty-windows-amd64 reference adopter (vlang#67) of vlang/v#27924's shared tccbin_tests suite.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wires this branch into the shared cross-platform conformance suite
(
thirdparty/tccbin_testsin vlang/v) already running onthirdparty-windows-amd64's CI and proposed forthirdparty-linux-amd64(#69) — same
shared/hello.c,gc_alloc.c,crash.ctests.TCC on macOS arm64 cannot yet link the Clang-built static
libgc.a(documented in this branch's README.md), so rather than skipping the
GC-dependent shared tests here, this mirrors the dynamic
libgc.dylib+ rpath approach V's own builder already uses on thisexact platform (
vlib/builtin/builtin_d_gcboehm.c.v):hello.candgc_alloc.c(both GC-dependent) run againstlibgc.dylibas the blocking lane.crash.c(no GC) runs unconditionally.libgc.ais kept as a temporary,explicit XFAIL (
continue-on-error: true) rather than silentlydropped — it runs for visibility (so a regression that makes it fail
differently is still noticed) but never blocks CI. Remove
continue-on-errorand fold it back into a single blocking laneonce static linking is supported.
Also rebuilds
tcc.exefrom source via this branch's own documentedbuild.shrecipe (reusing the already-committedlibgc.a/libgc.dylib,not rebuilding those) as a build-reproducibility check, uploading the
result as an artifact.
One non-obvious thing worth calling out for reviewers, the same gotcha
found on the Linux side (#69): the bundled
tcc.exeresolves its own runtime library path relative to the process's
working directory at invocation time, not via
-Bor argv0 - matchinghow V's own builder
os.chdir()s to the V root before invokingbundled tcc. Every tcc invocation in this workflow runs with
working-directory: workand refers to the compiler as the relativepath
thirdparty/tcc/tcc.exefor that reason.Verified with a real
macos-latest(Apple Silicon) Actions run on thefork: all steps green, including the blocking dynamic-
libgc.dyliblane; the static-
libgc.aXFAIL lane fails as expected and isabsorbed by
continue-on-errorwithout failing the job.https://github.com/quaesitor-scientiam/tccbin/actions/runs/30053212222
TODO:
thirdparty/tccbin_testsisn't in vlang/v yet (open PRvlang/v#27924), so this points at the fork branch it's proposed on.
Once/if that merges, this should switch to
repository: vlang/vat areal commit.