Repository navigation
tests: skip complex calls without libffi support - #504
Conversation
Some libffi backends, including PowerPC and RISC-V, do not expose the predefined complex types. Skip the complex call cases on these backends, as the implementation deliberately rejects such calls. Use the public symbol lookup to detect the missing descriptor before compiling the fixtures, preserving all assertions on supported targets. Signed-off-by: Yuen Su <zypulsecore@gmail.com>
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
|
This shouldn't affect buildability though, or are you running the tests or the build on PPC ? |
Correct, this PR only affects test execution. I cross-compiled ucode and the C test fixtures on x86_64 using the OpenWrt SDK, then ran the PPC ucode binary under qemu-ppc. |
|
Got it, let's wait for the CI to become green, then I'll merge it. |
|
Merged, thanks! |
The fix merged in #503 correctly rejects unsupported complex ABI calls, but the new positive call tests still fail on libffi's PowerPC and RISC-V backends.
Probe
ffi_type_complex_doublethrough the existing publicffi.C.dlsym()API and use the existing exit-77 skip path when it is absent. Supported targets retain every original assertion.Validation: 109 native FFI cases pass with no skips; three real SDK/QEMU targets each skip the three complex cases and pass 15 scalar/aggregate/closure and complex-rejection checks.
Only the existing test file changes. AI assistance was used.