On Tue, 27 May 2025, Niklas Haas wrote:
From: Niklas Haas <g...@haasn.dev>
Because of the lack of an external ABI on low-level kernels, we cannot
directly test internal functions. Instead, we construct a minimal op chain
consisting of a read, the op to be tested, and a write.
The bigger complication arises from the fact that the backend may generate
arbitrary internal state that needs to be passed back to the implementation,
which means we cannot directly call `func_ref` on the generated chain. To get
around this, always compile the op chain twice - once using the backend to be
tested, and once using the reference C backend.
The actual entry point may also just be a shared wrapper, so we need to
be very careful to run checkasm_check_func() on a pseudo-pointer that will
actually be unique for each combination of backend and active CPU flags.
---
tests/checkasm/Makefile | 8 +-
tests/checkasm/checkasm.c | 1 +
tests/checkasm/checkasm.h | 1 +
tests/checkasm/sw_ops.c | 776 ++++++++++++++++++++++++++++++++++++++
4 files changed, 785 insertions(+), 1 deletion(-)
create mode 100644 tests/checkasm/sw_ops.c
When adding a new checkasm test group like this, add it to
tests/fate/checkasm.mak too, otherwise it is missed by "make fate" and
"make fate-checkasm", which run all the individual test groups separately.
// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".