mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 13:00:15 +02:00
build on clang/musl fails with: ``` FEX/unittests/APITests/Allocator.cpp:17:5: error: use of undeclared identifier 'close' FEX/unittests/APITests/Allocator.cpp:23:5: error: use of undeclared identifier 'lseek'; did you mean 'fseek'? FEX/unittests/APITests/Allocator.cpp:23:11: error: cannot initialize a parameter of type 'FILE *' (aka 'struct _IO_FILE *') with an lvalue of type 'int' FEX/unittests/APITests/Allocator.cpp:24:5: error: use of undeclared identifier 'write'; did you mean '_IO_cookie_io_functions_t::write'? FEX/unittests/APITests/Allocator.cpp:24:5: error: invalid use of non-static data member 'write' ``` include header to provide defintions fix: #5476 Signed-off-by: Pepper Gray <hello@peppergray.xyz>
FEX Unit tests
FEX has its own test suite for x86-64 emulation, and we also use gcc's target tests, posixtest, and gvisor's tests. We use a combination of CMake/CTest and python runner scripts.
We also regularly run and pass qemu's and valgrind's tests for validation, but those aren't in CI right now.
x86/64 testing
- A lot of handwritten assembly unit tests in 32Bit_ASM and ASM folders, run via our TestHarnessHelper
- A few handwritten IR tests in IR, run via our IRLoader
- gcc-target-tests-32 and gcc-target-tests-64, run via FEX. The tests binaries are in External/fex-gcc-target-tests-bins
Syscall testing
- 64-bit posixtest from http://posixtest.sourceforge.net/, run via FEX. The tests binaries are in External/fex-posixtest-bins
- 64-bit gvisor tests from https://github.com/google/gvisor, run via FEX. The tests binaries are in External/fex-gvisor-tests-bins