While running the test suite on macOS, I encountered several tests that either consistently fail or flaky. This indicates that some tests rely on platform-specific assumptions or are not fully stable across environments.
It would be great to improve test stability and make them platform-independent where possible.
Environment:
Tarantool 3.7.0-entrypoint-218-g4e6123983f
Target: Darwin-arm64-Debug
Build options: cmake . -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BACKTRACE=TRUE
Compiler: AppleClang-17.0.0.17000013
C_FLAGS: -fexceptions -funwind-tables -fasynchronous-unwind-tables -fno-common -Wformat -Wformat-security -Werror=format-security -fstack-protector-strong -fPIC -fmacro-prefix-map=<...>=. -std=c11 -Wall -Wextra -Wno-gnu-alignof-expression -Wno-cast-function-type -Werror -g -ggdb -O0
CXX_FLAGS: -fexceptions -funwind-tables -fasynchronous-unwind-tables -fno-common -Wformat -Wformat-security -Werror=format-security -fstack-protector-strong -fPIC -fmacro-prefix-map=<...>=. -std=c++17 -Wall -Wextra -Wno-invalid-offsetof -Wno-gnu-alignof-expression -Wno-cast-function-type -Werror -g -ggdb -O0
System & Hardware
$ sw_vers
ProductName: macOS
ProductVersion: 15.6.1
BuildVersion: 24G90
$ sysctl -n machdep.cpu.brand_string
Apple M4 Pro
List of problematic tests
Note: the list below is not exhaustive — it only includes the issues I was able to identify so far.
Fails
Flaky / may hang
While running the test suite on macOS, I encountered several tests that either consistently fail or flaky. This indicates that some tests rely on platform-specific assumptions or are not fully stable across environments.
It would be great to improve test stability and make them platform-independent where possible.
Environment:
Tarantool 3.7.0-entrypoint-218-g4e6123983f
Target: Darwin-arm64-Debug
Build options:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BACKTRACE=TRUECompiler: AppleClang-17.0.0.17000013
C_FLAGS:
-fexceptions -funwind-tables -fasynchronous-unwind-tables -fno-common -Wformat -Wformat-security -Werror=format-security -fstack-protector-strong -fPIC -fmacro-prefix-map=<...>=. -std=c11 -Wall -Wextra -Wno-gnu-alignof-expression -Wno-cast-function-type -Werror -g -ggdb -O0CXX_FLAGS:
-fexceptions -funwind-tables -fasynchronous-unwind-tables -fno-common -Wformat -Wformat-security -Werror=format-security -fstack-protector-strong -fPIC -fmacro-prefix-map=<...>=. -std=c++17 -Wall -Wextra -Wno-invalid-offsetof -Wno-gnu-alignof-expression -Wno-cast-function-type -Werror -g -ggdb -O0System & Hardware
List of problematic tests
Note: the list below is not exhaustive — it only includes the issues I was able to identify so far.
Fails
app/socket.test.luatest: make SO_REUSEPORT socket test portable #12561SO_REUSEPORTvalue differs from Linux:getsockopt()may return512instead of1test: make memory metrics test portable metrics#542metrics-luatest/tarantool_memory_metrics_test.luatnt_memory_virtis expected to be positive, but is0on non-Linux platformsapp-luatest/popen_test.luatest: make popenis_closedcheck portable #12562popen.shell(...):close()may returnnil, erreven though the handle is already closedbox-luatest/gh_11803_interface_option_test.luatest: make interface option test portable #12563test assumes loopback interface name is
lo, while macOS useslo0box-luatest/iproto_export_test.luatest: skip app threads tests on macOS #12586server crashes during startup in application threads. Lua module resolution is broken (
http.client.libis attempted to be loaded from/, leading tocannot read /: Is a directory)server.log
box-luatest/app_threads_test.luatest: skip app threads tests on macOS #12586application threads fail to load standard Lua modules (e.g. metrics.tarantool).
server.log
box-luatest/app_threads_module_test.luatest: skip app threads tests on macOS #12586same issue as in
box-luatest/app_threads_test.lua— fixed by box: log the signals handled by libev #12543config-luatest/roles_test.luaShutdown log is matched too strictly: test expects line ending at
Terminated,but macOS may add a suffix (e.g.
Terminated: 15).replication-luatest/gh_10506_spam_in_netbox_logs_test.luatest: make net.box spam log test portable #12569The test uses
localhost:0as a stand-in for a refused connection, but on macOS that address may produce a different socket error instead ofConnection refused(Can't assign requested address).Flaky / may hang
box-luatest/session_test.lua— flaky under parallel runs test: isolate interactive console workdir #12565box.cfg({})in an interactive child may fail withALREADY_RUNNING: Failed to lock WAL directory .app-luatest/http_client_http_version_test.luatest: make http client version test stable #12587intermittent
Could not connect to serverbefore reaching the HTTP/ALPN assertionapp/fio.test.lua— flaky under parallel runs test: make fio tempdir test stable #12594The
gh-4794section uses a fixed directory name undercwdas a customTMPDIR. Under repeated runs, may fails withfio: File existsmetrics-luatest/tarantool_config_metrics_test.lua— flaky under parallel runsFixed port (
localhost:3301) causes conflicts; metrics are read too early afterconfig:reload().replication-py/cluster.test.pyReuses iproto connection after failed
SUBSCRIBE, which may leave it broken =>Connection reset by peer.