Commits
- Commit:
01fe63bdf5f8216db271df8a43dcf3d1a96ed3e6
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Via:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
tests/capi: enable tests
The commit 15388716f29d ("tests: disable lua_dump_test").
1. https://github.com/ligurio/lua-c-api-tests/issues/19
- Commit:
159a4883faa8e0c52dd2b4a13e0ddb32a2c62f6f
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cfl: add a compiler flag used by Centipede
- Commit:
9d3d543aa768da31e2df9e39f1b480eb566349b5
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
docs: add citation information for the project
CITATION.cff files are plain text files with human- and
machine-readable citation information for software (and datasets).
Code developers can include them in their repositories to let
others know how to correctly cite their software, see [1] and [2].
The patch adds a citation information for the project.
1. https://citation-file-format.github.io/
2. https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files
- Commit:
2ec5436e90f16c2a59636119dfa46556fcae4c1c
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
libluamut: initial version
The patch adds a shared library that implements a custom mutation
and crossover functions for LibFuzzer. These functions allows to
implement mutation and crossover logic with Lua programming
language and thus replace the default mutation and crossover
functions: `LLVMFuzzerCustomMutator` and
`LLVMFuzzerCustomCrossover`.
For implementing custom mutation function in Lua one need to
create a Lua script with function `LLVMFuzzerCustomMutator` and
set a path to the script in environment variable with name
`LIBFUZZER_LUA_SCRIPT`. When this environment variable is not set
default script name `libfuzzer_lua_script.lua` will be used.
The same with custom crossover function - one need create
a Lua script with defined Lua function `LLVMFuzzerCustomCrossover`
and set a path to the script in environment variable
`LIBFUZZER_LUA_SCRIPT`.
Pay attention that both functions uses its own Lua state
internally.
Note, `libluamut` is unused now and building is disabled by default.
Follows up #19
- Commit:
5ba54aa0b94bf4491a5e92872ff8e57458f38270
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests: fix compiler warning
```
[60/62] Building CXX object tests/capi/luaL_loadbuffer_proto/CMakeFiles/luaL_loadbuffer_proto_test.dir/luaL_loadbuffer_proto_test.cc.o
/home/runner/work/lua-c-api-tests/lua-c-api-tests/tests/capi/luaL_loadbuffer_proto/luaL_loadbuffer_proto_test.cc:308:30: warning: missing field 'B' initializer [-Wmissing-field-initializers]
struct str_Writer state = {0};
^
1 warning generated.
```
- Commit:
0bb1334c14466593d539da9fd6782ed09d7f511d
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
patches: fix PUC Rio Lua build
The commit 366c85564874 ("lua.c loads 'readline' dynamically") [1]
breaks a build. The proposed patches fixes that.
1. https://github.com/lua/lua/commit/366c85564874d560b3608349f752e9e490f9002d
- Commit:
4b22351c31db179a117ab4658745bc16ef4ec73f
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cmake: update UBSan integration in LuaJIT
The patch updates integration of Undefined Behaviour Sanitizer
with LuaJIT: some suppressions removed, some suppressions
added per file, not project-wide.
The patch is based on the patch made by Sergey Kaplun [1].
1. https://github.com/tarantool/luajit/commit/b9ff5ae8ea60516f630a380948bfd140c237385a
- Commit:
b9f120ef9bd9064c343e73cd65f9f43f4da37892
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cmake: enable UBSan by default in CMake presets
- Commit:
d14d2c18a938f5c89916ca705e9ba2dd1580bfa7
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cfl: set fuzz-time to 2h
- Commit:
0e1f4280aba1f2fecf96dddcea048175aef3f60a
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests/capi: speedup protobuf serialization
- clamp before cleaning string because cleaning is not cheap
(O(n), where max n is equal to kMaxStrLength)
- call cleaning for identifiers only, there is no sense to
cleaning string literals
- replace symbols disallowed by Lua grammar in indentifier's
names with '_'
The patch saves 16 sec on 145k samples (401 sec before the patch
and 385 sec after the patch). It is actually not so much, but it
is about 2.5 min per hour.
- Commit:
cd53055cc1a0c32a2e9b03387262cbdac411193c
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cfl: fix option name
Follows up #85
- Commit:
2940ed3c202344f3f0a1d4e07abb347792a30a6a
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cfl: change a version of gh action
GH Action with enabled options `report-timeouts` and `report-ooms`
[1][2] is not released yet. The patch changes a version to
`master` to allow using of aforementioned options.
Follows up #85
1. https://github.com/google/oss-fuzz/issues/11723
2. https://github.com/google/clusterfuzzlite/pull/138
- Commit:
c1c5fada66cfd8dbfece3db5648747b81693ea2b
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests/capi: fix assertions in a torture_test
- Commit:
3ca30dfea990fd3fead1051d8bcd2d1402688bfe
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests: update message on creating test
The patch changes a message that CMake outputs on creating
a CTest test, now message highlights that it is a Lua C API test.
It is needed to distinquish with Lua API tests.
The patch follows up commit e0216377d750 ("cmake: put C API tests
to a separate subdirectory").
- Commit:
c521787a2d3796aac84e7d0a5e6ffbc5444d29f6
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
ci: cleanup disk space in oss-fuzz workflow
Follows up commit c6485231cafd ("cfl: introduce an action for
setting up Linux runner").
- Commit:
2d7c9534406e68d5ca8e1140ad21004c122170b4
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cfl: do not report OOMs
`luaL_loadbuffer_proto_test` constantly reports OOM's. These fails
are false-positives and really annoying. An example of such fail
is below:
```
==98== ERROR: libFuzzer: out-of-memory (used: 3524Mb; limit: 2560Mb)
To change the out-of-memory limit use -rss_limit_mb=<N>
Live Heap Allocations: 4748197972 bytes in 42448 chunks; quarantined: 8388640 bytes in 2 chunks; 103000 other chunks; total chunks: 145450; showing top 95% (at most 8 unique contexts)
2521827184 byte(s) (53%) in 25 allocation(s)
#0 0x564a0a9b08c5 in realloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:85:3
#1 0x564a0ab9cd4f in lj_mem_realloc /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_gc.c:873:7
#2 0x564a0ab063d3 in lj_str_alloc /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_str.c:287:14
#3 0x564a0abacf26 in lj_buf_str /src/lua-c-api-tests/build/luajit-v2.1/source/src/./lj_buf.h:195:10
#4 0x564a0abacf26 in lj_meta_cat /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_meta.c:304:23
#5 0x564a0ab91e54 in lj_BC_CAT /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_vm.S:428
DEDUP_TOKEN: __interceptor_realloc--lj_mem_realloc--lj_str_alloc
2147483648 byte(s) (45%) in 1 allocation(s)
#0 0x564a0a9b08c5 in realloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:85:3
#1 0x564a0ab9cd4f in lj_mem_realloc /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_gc.c:873:7
#2 0x564a0aba01b5 in buf_grow /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_buf.c:34:17
#3 0x564a0aba0711 in lj_buf_more2 /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_buf.c:85:5
#4 0x564a0abad075 in lj_buf_more /src/lua-c-api-tests/build/luajit-v2.1/source/src/./lj_buf.h:109:12
#5 0x564a0abad075 in lj_meta_cat /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_meta.c:289:7
#6 0x564a0ab91e54 in lj_BC_CAT /src/lua-c-api-tests/build/luajit-v2.1/source/src/lj_vm.S:428
DEDUP_TOKEN: __interceptor_realloc--lj_mem_realloc--buf_grow
```
The patch disables reporting of OOMS in `cflite_batch.yml`
workflow by setting a flag `report-ooms` [1].
1. https://google.github.io/oss-fuzz/getting-started/continuous-integration/#optional-configuration
Fixes #85
Related to google/oss-fuzz#11723
- Commit:
10531e235d80d69c0c10721e2f63e50ee34a0b30
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Via:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
readme: update copyrights
- Commit:
413a3271a7361e5ca0706260ae435c969f81c56d
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
trophies: update
- Commit:
36e21aa9b924d6e3f3f9833c26773e7d5b1b3ce0
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Via:
- Sergey Bronnikov <sergeyb@tarantool.org>
- Date:
tests: remove a comment
Follows up #72
- Commit:
a1692c58a6c3e13eb1be37b6cd00e0816df8a4eb
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests: enable luaL_loadbuffer_proto on AArch64
Fixes #72
- Commit:
e5964c4085fcf116eb56d4bad1ca8168aab4be2e
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Revert "tests/luaL_loadbufferx_test: enable back for LuaJIT"
The issue described in #56 was not a false positive and
was fixed in scope of LJ#1168.
Follows up #56
This reverts commit d1e8b545fc115a91918c890603c4ec3e0b818861.
- Commit:
b19e7881b33343877530df6b4df095ef3d206e82
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
ci: bump version of actions/checkout
New version fixes a warning in a Github Action web UI:
> Node.js 16 actions are deprecated. Please update the following actions
> to use Node.js 20: actions/checkout@v3. For more information see:
> https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
- Commit:
6262fa4353fe2cc4cb1dac8b8bd221d93eab1058
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cfl: fix copying dict and options files
- Commit:
7350dad2170f21865dd4ce492748a790dcde1a01
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
cfl: use cfl branch in a corpus repository
- Commit:
24c6f0b9ebe4e0422cd1c0cc23c61c8121a615f5
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
test: fix dictionaries filenames
Files with dictionaries have been renamed.
See documentation in [1]:
> Put your dict file in $OUT. If the dict filename is the same
> as your target binary name (i.e. `%fuzz_target%.dict`),
> it will be automatically used.
The patch fixes paths to dictionaries in a build infrastructure
and in a build script for clusterfuzzlite.
1. https://google.github.io/oss-fuzz/getting-started/new-project-guide/#dictionaries