PUC Rio Lua | ||
---|---|---|
LuaJIT |
is a set of fuzzing tests for C implementations of Lua runtime (PUC Rio Lua and LuaJIT).
git clone --jobs $(nproc) --recursive https://github.com/ligurio/lua-c-api-tests
CC=clang CXX=clang++ cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DUSE_LUA=ON [-DUSE_LUAJIT=ON]
cmake --build build --parallel
CMake options:
USE_LUA
enables building PUC Rio Lua.USE_LUAJIT
enables building LuaJIT.LUA_VERSION
could be a Git branch, tag or commit. By defaultLUA_VERSION
ismaster
for PUC Rio Lua andv2.1
for LuaJIT.ENABLE_LUAJIT_RANDOM_RA
enables randomness in a register allocation. Option is LuaJIT-specific.ENABLE_ASAN
enables AddressSanitizer.ENABLE_UBSAN
enables UndefinedBehaviorSanitizer.ENABLE_COV
enables coverage instrumentation.ENABLE_LUA_ASSERT
enables all assertions inside Lua source code.ENABLE_LUA_APICHECK
enables consistency checks on the C API.OSS_FUZZ
enables support of OSS Fuzz.ENABLE_BUILD_PROTOBUF
enables building Protobuf library, otherwise system library is used.ENABLE_INTERNAL_TESTS
enables internal tests.
cmake --build build --target test
cd build && RUNS=100000 ctest -R luaL_gsub_test --verbose
<snipped>
1: Done 100000 runs in 5 second(s)
- Lua 5.4 Reference Manual: 4 – The Application Program Interface
- Lua 5.3 Reference Manual: 4 – The Application Program Interface
- Lua 5.2 Reference Manual: 4 – The Application Program Interface
- Lua 5.1 Reference Manual: 3 – The Application Program Interface
Copyright (C) 2022-2024 Sergey Bronnikov, released under the ISC license. See a full Copyright Notice in the LICENSE file.