tarantool: support luzer-based testing#14656
Merged
jonathanmetzman merged 1 commit intogoogle:masterfrom Jan 22, 2026
Merged
Conversation
|
ligurio is integrating a new project: |
22 tasks
36fbd6d to
34cfaeb
Compare
34cfaeb to
4ef5233
Compare
Contributor
Author
|
@jonathanmetzman can we merge these changes with minimal support for luzer (luarocks in base images and fixing From 90b4b45f982540274aedd96bbdfc2ccc22ae4ba9 Mon Sep 17 00:00:00 2001
From: Sergey Bronnikov <estetus@gmail.com>
Date: Sun, 4 Jan 2026 14:43:34 +0300
Subject: [PATCH] base-images: minimal support luzer
The patch allows testing C/C++ projects via Lua C API.
---
infra/base-images/base-runner/Dockerfile | 1 +
infra/base-images/base-runner/bad_build_check | 3 +++
infra/base-images/base-runner/ubuntu-20-04.Dockerfile | 2 ++
infra/base-images/base-runner/ubuntu-24-04.Dockerfile | 2 ++
4 files changed, 8 insertions(+)
diff --git a/infra/base-images/base-runner/Dockerfile b/infra/base-images/base-runner/Dockerfile
index 5f5f455f11f1..9a4302ea7368 100644
--- a/infra/base-images/base-runner/Dockerfile
+++ b/infra/base-images/base-runner/Dockerfile
@@ -117,6 +117,7 @@ COPY --from=base-ruby /usr/local/bin/gem /usr/local/bin/gem
COPY --from=base-ruby /usr/local/lib/ruby /usr/local/lib/ruby
COPY --from=base-ruby /usr/local/include/ruby-3.3.0 /usr/local/include/ruby-3.3.0
+RUN apt-get update && apt-get install -y luarocks
# Do this last to make developing these files easier/faster due to caching.
COPY bad_build_check \
diff --git a/infra/base-images/base-runner/bad_build_check b/infra/base-images/base-runner/bad_build_check
index e3f4787e865e..137fe6576168 100755
--- a/infra/base-images/base-runner/bad_build_check
+++ b/infra/base-images/base-runner/bad_build_check
@@ -349,6 +349,9 @@ function check_mixed_sanitizers {
echo "UNSUPPORTED ARCHITECTURE"
exit 1
fi
+
+ egrep luarocks $FUZZER && return 0;
+
local ASAN_CALLS=$(objdump -dC $FUZZER | egrep "${CALL_INSN}__asan" -c)
local DFSAN_CALLS=$(objdump -dC $FUZZER | egrep "${CALL_INSN}__dfsan" -c)
local MSAN_CALLS=$(objdump -dC $FUZZER | egrep "${CALL_INSN}__msan" -c)
diff --git a/infra/base-images/base-runner/ubuntu-20-04.Dockerfile b/infra/base-images/base-runner/ubuntu-20-04.Dockerfile
index c421cb21a003..7207d8cb2c13 100644
--- a/infra/base-images/base-runner/ubuntu-20-04.Dockerfile
+++ b/infra/base-images/base-runner/ubuntu-20-04.Dockerfile
@@ -117,6 +117,8 @@ COPY --from=base-ruby /usr/local/bin/gem /usr/local/bin/gem
COPY --from=base-ruby /usr/local/lib/ruby /usr/local/lib/ruby
COPY --from=base-ruby /usr/local/include/ruby-3.3.0 /usr/local/include/ruby-3.3.0
+RUN apt-get update && apt-get install -y luarocks
+
# Do this last to make developing these files easier/faster due to caching.
COPY bad_build_check \
coverage \
diff --git a/infra/base-images/base-runner/ubuntu-24-04.Dockerfile b/infra/base-images/base-runner/ubuntu-24-04.Dockerfile
index 2e252a25ffd8..5addb421416b 100644
--- a/infra/base-images/base-runner/ubuntu-24-04.Dockerfile
+++ b/infra/base-images/base-runner/ubuntu-24-04.Dockerfile
@@ -117,6 +117,8 @@ COPY --from=base-ruby /usr/local/bin/gem /usr/local/bin/gem
COPY --from=base-ruby /usr/local/lib/ruby /usr/local/lib/ruby
COPY --from=base-ruby /usr/local/include/ruby-3.3.0 /usr/local/include/ruby-3.3.0
+RUN apt-get update && apt-get install -y luarocks
+
# Do this last to make developing these files easier/faster due to caching.
COPY bad_build_check \
coverage \ |
4ef5233 to
d378af4
Compare
d378af4 to
cbe9e3f
Compare
Contributor
Author
|
cbe9e3f to
5e8a341
Compare
ligurio
added a commit
to ligurio/lunapark
that referenced
this pull request
Jan 17, 2026
5e8a341 to
4b7cd29
Compare
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 17, 2026
centipede and AFL CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 Needed by google/oss-fuzz#14656 NO_CHANGELOG=build NO_DOC=build NO_TEST=build
8491215 to
59594af
Compare
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 17, 2026
centipede and AFL CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 Needed by google/oss-fuzz#14656 NO_CHANGELOG=build NO_DOC=build NO_TEST=build
e0bdb7d to
c2cf58f
Compare
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 18, 2026
centipede and AFL CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 Needed by google/oss-fuzz#14656 NO_CHANGELOG=build NO_DOC=build NO_TEST=build
211cb13 to
e7ecc68
Compare
ligurio
added a commit
to ligurio/luzer
that referenced
this pull request
Jan 19, 2026
The luzer library requires `ar` (archiver tool) for rebuilding libFuzzer archive. By default, CMAKE_C_COMPILER_AR is used. However, in OSS Fuzz environment (afl, address, x86_64) CMAKE_C_COMPILER_AR returns CMAKE_C_COMPILER_AR-NOTFOUND [1]. The patch adds a fallback to CMAKE_AR that successfully finds `ar` at the same environment. Also, there is the following note regarding both CMake variables - CMAKE_AR vs. CMAKE_C_COMPILER_AR: - CMAKE_AR is a general variable for the default archiver tool. - CMAKE_C_COMPILER_AR is specific to the C language's toolchain. When certain features like Interprocedural Optimization (LTO) are enabled, CMake might favor the language-specific CMAKE_C_COMPILER_AR (or CMAKE_CXX_COMPILER_AR for C++) over the generic CMAKE_AR. 1. google/oss-fuzz#14656 (comment) Needed for google/oss-fuzz#14656
ligurio
added a commit
to ligurio/lunapark
that referenced
this pull request
Jan 19, 2026
The new version contains changes [1][2] required for OSS Fuzz support. 1. ligurio/luzer#73 2. ligurio/luzer#76 Needed for tarantool/tarantool#12097 Needed for tarantool/tarantool#11250 Needed for google/oss-fuzz#14656 Related to google/oss-fuzz#13782
ligurio
added a commit
to ligurio/lunapark
that referenced
this pull request
Jan 19, 2026
ligurio
added a commit
to ligurio/lunapark
that referenced
this pull request
Jan 19, 2026
ligurio
added a commit
to ligurio/lunapark
that referenced
this pull request
Jan 19, 2026
The patch add a check for presence of string.buffer module to the tests. The module string.buffer built into LuaJIT, but not available in Tarantool and before the patch the tests were failed. Needed for #google/oss-fuzz#14656
ligurio
added a commit
to ligurio/lunapark
that referenced
this pull request
Jan 19, 2026
The patch add a check for presence of string.buffer module to the tests. The module string.buffer built into LuaJIT, but not available in Tarantool and before the patch the tests were failed. Needed for #google/oss-fuzz#14656
ligurio
added a commit
to ligurio/lunapark
that referenced
this pull request
Jan 19, 2026
The new version contains changes [1][2] required for OSS Fuzz support. 1. ligurio/luzer#73 2. ligurio/luzer#76 Needed for tarantool/tarantool#12097 Needed for tarantool/tarantool#11250 Needed for google/oss-fuzz#14656 Related to google/oss-fuzz#13782
ligurio
added a commit
to ligurio/lunapark
that referenced
this pull request
Jan 19, 2026
jonathanmetzman
approved these changes
Jan 22, 2026
ranok
pushed a commit
to ranok/oss-fuzz
that referenced
this pull request
Jan 22, 2026
- [x] ~~Depends on google#13929~~ - [x] ~~Depends on ligurio/luzer#74 - [x] ~~Depends on ligurio/luzer#76 - [x] ~~Depends on ligurio/luzer#78 - [x] ~~Depends on ligurio/lunapark#163 - [x] Depends on tarantool/tarantool#12097
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 25, 2026
The patch updates the checks for profilers support in Lua fuzzing tests. Related to tarantool#12215 Needed for tarantool#11250 Needed for google/oss-fuzz#14656 NO_CHANGELOG=testing NO_DOC=testing
This was referenced Jan 26, 2026
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 26, 2026
There is a whitelist with allowed dependencies for static build. libresolv is allowed when Clang with enabled AddressSanitizer is used. The build is failed in some OSS Fuzz configurations (libfuzzer-undefined-x86_64 and centipede-address-x86_64) [1] because libresolv is blocklisted: CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 The patch adds libresolv to a whitelist when CMake variable OSS_FUZZ is defined. 1. google/oss-fuzz#14656 (comment) Needed by google/oss-fuzz#14656 Part of tarantool#12097 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit c5e04b6)
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 26, 2026
There is a whitelist with allowed dependencies for static build. libresolv is allowed when Clang with enabled AddressSanitizer is used. The build is failed in some OSS Fuzz configurations (libfuzzer-undefined-x86_64 and centipede-address-x86_64) [1] because libresolv is blocklisted: CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 The patch adds libresolv to a whitelist when CMake variable OSS_FUZZ is defined. 1. google/oss-fuzz#14656 (comment) Needed by google/oss-fuzz#14656 Part of tarantool#12097 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit c5e04b6)
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 26, 2026
There is a whitelist with allowed dependencies for static build. libresolv is allowed when Clang with enabled AddressSanitizer is used. The build is failed in some OSS Fuzz configurations (libfuzzer-undefined-x86_64 and centipede-address-x86_64) [1] because libresolv is blocklisted: CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 The patch adds libresolv to a whitelist when CMake variable OSS_FUZZ is defined. 1. google/oss-fuzz#14656 (comment) Needed by google/oss-fuzz#14656 Part of tarantool#12097 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit c5e04b6)
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 26, 2026
There is a whitelist with allowed dependencies for static build. libresolv is allowed when Clang with enabled AddressSanitizer is used. The build is failed in some OSS Fuzz configurations (libfuzzer-undefined-x86_64 and centipede-address-x86_64) [1] because libresolv is blocklisted: CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 The patch adds libresolv to a whitelist when CMake variable OSS_FUZZ is defined. 1. google/oss-fuzz#14656 (comment) Needed by google/oss-fuzz#14656 Part of tarantool#12097 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit c5e04b6)
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 27, 2026
There is a whitelist with allowed dependencies for static build. libresolv is allowed when Clang with enabled AddressSanitizer is used. The build is failed in some OSS Fuzz configurations (libfuzzer-undefined-x86_64 and centipede-address-x86_64) [1] because libresolv is blocklisted: CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 The patch adds libresolv to a whitelist when CMake variable OSS_FUZZ is defined. 1. google/oss-fuzz#14656 (comment) Needed by google/oss-fuzz#14656 Part of tarantool#12097 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit c5e04b6)
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 27, 2026
There is a whitelist with allowed dependencies for static build. libresolv is allowed when Clang with enabled AddressSanitizer is used. The build is failed in some OSS Fuzz configurations (libfuzzer-undefined-x86_64 and centipede-address-x86_64) [1] because libresolv is blocklisted: CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 The patch adds libresolv to a whitelist when CMake variable OSS_FUZZ is defined. 1. google/oss-fuzz#14656 (comment) Needed by google/oss-fuzz#14656 Part of tarantool#12097 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit c5e04b6)
sergepetrenko
pushed a commit
to tarantool/tarantool
that referenced
this pull request
Jan 27, 2026
There is a whitelist with allowed dependencies for static build. libresolv is allowed when Clang with enabled AddressSanitizer is used. The build is failed in some OSS Fuzz configurations (libfuzzer-undefined-x86_64 and centipede-address-x86_64) [1] because libresolv is blocklisted: CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 The patch adds libresolv to a whitelist when CMake variable OSS_FUZZ is defined. 1. google/oss-fuzz#14656 (comment) Needed by google/oss-fuzz#14656 Part of #12097 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit c5e04b6)
sergepetrenko
pushed a commit
to tarantool/tarantool
that referenced
this pull request
Jan 28, 2026
There is a whitelist with allowed dependencies for static build. libresolv is allowed when Clang with enabled AddressSanitizer is used. The build is failed in some OSS Fuzz configurations (libfuzzer-undefined-x86_64 and centipede-address-x86_64) [1] because libresolv is blocklisted: CMake Error at /src/tarantool/cmake/CheckDependencies.cmake:52 (message): Blocklisted dependency: /lib/x86_64-linux-gnu/libresolv.so.2 The patch adds libresolv to a whitelist when CMake variable OSS_FUZZ is defined. 1. google/oss-fuzz#14656 (comment) Needed by google/oss-fuzz#14656 Part of #12097 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit c5e04b6)
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 29, 2026
Build script in OSS Fuzz has steps (introduced in the PR [1]) that requires changes that are absent in release/3.2 and the build became broken: NO_WRAP + unset OSS_FUZZ + cp build/test/fuzz/lua-tests/src/tests/lapi/lib.lua /github/workspace/build-out cp: cannot stat 'build/test/fuzz/lua-tests/src/tests/lapi/lib.lua': No such file or directory 2026-01-29 08:56:31,745 - root - ERROR - Building fuzzers failed. NO_WRAP The patch fixes broken build by creating a file `build/test/fuzz/lua-tests/src/tests/lapi/lib.lua` and a fake target `copy_tests`. 1. google/oss-fuzz#14656 NO_CHANGELOG=build NO_DOC=build NO_TEST=build
ligurio
added a commit
to ligurio/nanodata
that referenced
this pull request
Jan 29, 2026
Build script in OSS Fuzz has steps (introduced in the PR [1]) that requires changes that are absent in release/3.2 and the build became broken: NO_WRAP + unset OSS_FUZZ + cp build/test/fuzz/lua-tests/src/tests/lapi/lib.lua /github/workspace/build-out cp: cannot stat 'build/test/fuzz/lua-tests/src/tests/lapi/lib.lua': No such file or directory 2026-01-29 08:56:31,745 - root - ERROR - Building fuzzers failed. NO_WRAP The patch fixes broken build by creating a file `build/test/fuzz/lua-tests/src/tests/lapi/lib.lua` and a fake target `copy_tests`. 1. google/oss-fuzz#14656 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit ef1d205)
sergepetrenko
pushed a commit
to tarantool/tarantool
that referenced
this pull request
Jan 29, 2026
Build script in OSS Fuzz has steps (introduced in the PR [1]) that requires changes that are absent in release/3.2 and the build became broken: NO_WRAP + unset OSS_FUZZ + cp build/test/fuzz/lua-tests/src/tests/lapi/lib.lua /github/workspace/build-out cp: cannot stat 'build/test/fuzz/lua-tests/src/tests/lapi/lib.lua': No such file or directory 2026-01-29 08:56:31,745 - root - ERROR - Building fuzzers failed. NO_WRAP The patch fixes broken build by creating a file `build/test/fuzz/lua-tests/src/tests/lapi/lib.lua` and a fake target `copy_tests`. 1. google/oss-fuzz#14656 NO_CHANGELOG=build NO_DOC=build NO_TEST=build
sergepetrenko
pushed a commit
to tarantool/tarantool
that referenced
this pull request
Jan 29, 2026
Build script in OSS Fuzz has steps (introduced in the PR [1]) that requires changes that are absent in release/3.2 and the build became broken: NO_WRAP + unset OSS_FUZZ + cp build/test/fuzz/lua-tests/src/tests/lapi/lib.lua /github/workspace/build-out cp: cannot stat 'build/test/fuzz/lua-tests/src/tests/lapi/lib.lua': No such file or directory 2026-01-29 08:56:31,745 - root - ERROR - Building fuzzers failed. NO_WRAP The patch fixes broken build by creating a file `build/test/fuzz/lua-tests/src/tests/lapi/lib.lua` and a fake target `copy_tests`. 1. google/oss-fuzz#14656 NO_CHANGELOG=build NO_DOC=build NO_TEST=build (cherry picked from commit ef1d205)
ligurio
added a commit
to ligurio/oss-fuzz
that referenced
this pull request
Jan 30, 2026
Follows up google#14656
ligurio
added a commit
to ligurio/oss-fuzz
that referenced
this pull request
Jan 30, 2026
ligurio
added a commit
to ligurio/oss-fuzz
that referenced
this pull request
Jan 30, 2026
ligurio
added a commit
to ligurio/oss-fuzz
that referenced
this pull request
Jan 30, 2026
See also google#14859 Follows up google#14656
ligurio
added a commit
to ligurio/oss-fuzz
that referenced
this pull request
Jan 30, 2026
DavidKorczynski
pushed a commit
that referenced
this pull request
Jan 30, 2026
ligurio
added a commit
to ligurio/oss-fuzz
that referenced
this pull request
Feb 9, 2026
Follows up tarantool/tarantool#11250 Follows up google#14656
ligurio
added a commit
to ligurio/oss-fuzz
that referenced
this pull request
Feb 9, 2026
Follows up tarantool/tarantool#11250 Follows up google#14656
DavidKorczynski
pushed a commit
that referenced
this pull request
Feb 10, 2026
Follows up tarantool/tarantool#11250 Follows up #14656
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on Support integration with luzer #13929Depends on Support OSS Fuzz environment ligurio/luzer#74Depends on cmake: fix AR searching ligurio/luzer#76Depends on cmake: introduce option OSS_FUZZ ligurio/luzer#78Depends on cmake: bump luzer to a new version ligurio/lunapark#163