os-wrappers-test and sanity-test programs have missing dependency on exec-fd-leak-checker
The Meson build system
Version: 1.5.2
Source dir: /home/mattst88/projects/wayland
Build dir: /home/mattst88/projects/wayland/build
Build type: native build
Project name: wayland
Project version: 1.23.90
C compiler for the host machine: ccache cc (gcc 14.2.1 "cc (Gentoo 14.2.1_p20241116 p3) 14.2.1 20241116")
C linker for the host machine: cc ld.bfd 2.43
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -fvisibility=hidden: YES
Has header "sys/prctl.h" : YES
Has header "sys/procctl.h" : NO
Has header "sys/ucred.h" : NO
Checking for function "accept4" : YES
Checking for function "mkostemp" : YES
Checking for function "posix_fallocate" : YES
Checking for function "prctl" : YES
Checking for function "memfd_create" : YES
Checking for function "mremap" : YES
Checking for function "strndup" : YES
Checking whether type "struct xucred" has member "cr_pid" : NO
Found pkg-config: YES (/usr/bin/pkg-config) 2.3.0
Run-time dependency libffi found: YES 3.4.6
Header "sys/signalfd.h" has symbol "SFD_CLOEXEC" : YES
Header "sys/timerfd.h" has symbol "TFD_CLOEXEC" : YES
Header "time.h" has symbol "CLOCK_MONOTONIC" : YES
Checking for function "clock_gettime" : NO
Library rt found: YES
Checking for function "clock_gettime" with dependency -lrt: YES
Configuring config.h using configuration
Configuring wayland-version.h using configuration
Run-time dependency expat found: YES 2.6.4
Run-time dependency libxml-2.0 found: YES 2.12.8
Program embed.py found: YES (/usr/bin/python3.12 /home/mattst88/projects/wayland/src/embed.py)
Library m found: YES
Run-time dependency threads found: YES
Program llvm-nm found: YES (/usr/lib/llvm/18/bin/llvm-nm)
Program wayland-egl-symbols-check found: YES (/home/mattst88/projects/wayland/egl/wayland-egl-symbols-check)
Library dl found: YES
Dependency threads found: YES unknown (cached)
Dependency threads found: YES unknown (cached)
Library dl found: YES
C++ compiler for the host machine: ccache c++ (gcc 14.2.1 "c++ (Gentoo 14.2.1_p20241116 p3) 14.2.1 20241116")
C++ linker for the host machine: c++ ld.bfd 2.43
Program sed found: YES (/usr/bin/sed)
Program scanner-test.sh found: YES (/home/mattst88/projects/wayland/tests/scanner-test.sh)
Program scanner-test-gen.sh found: YES (/home/mattst88/projects/wayland/tests/scanner-test-gen.sh)
Build targets in project: 43
NOTICE: Future-deprecated features used:
* 0.62.0: {'pkgconfig.generate variable for builtin directories'}
wayland 1.23.90
User defined options
documentation: false
tests : true
Found ninja-1.12.1 at /usr/bin/ninja
ninja: Entering directory `/home/mattst88/projects/wayland/build'
[1/82] Compiling C object src/libwayland-private.a.p/connection.c.o
[2/82] Compiling C object tests/enum-validator-test.p/enum-validator-test.c.o
[3/82] Compiling C object src/libwayland-util.a.p/wayland-util.c.o
[4/82] Compiling C object tests/array-test.p/array-test.c.o
[5/82] Compiling C object tests/list-test.p/list-test.c.o
[6/82] Compiling C object src/libwayland-private.a.p/wayland-os.c.o
[7/82] Compiling C object egl/wayland-egl-abi-check.p/wayland-egl-abi-check.c.o
[8/82] Compiling C object tests/fixed-test.p/fixed-test.c.o
[9/82] Compiling C object tests/map-test.p/map-test.c.o
[10/82] Compiling C object tests/os-wrappers-test.p/os-wrappers-test.c.o
[11/82] Linking static target src/libwayland-util.a
[12/82] Linking static target src/libwayland-private.a
[13/82] Linking target egl/wayland-egl-abi-check
[14/82] Generating src/wayland.dtd.h with a custom command (wrapped by meson to capture output)
[15/82] Compiling C object src/wayland-scanner.p/scanner.c.o
[16/82] Linking target src/wayland-scanner
[17/82] Generating tests/test server protocol header with a custom command
[18/82] Generating tests/test client protocol header with a custom command
[19/82] Generating tests/test protocol source with a custom command
[20/82] Generating src/wayland_server_protocol_h with a custom command
[21/82] Generating src/wayland_server_protocol_core_h with a custom command
[22/82] Generating src/wayland_client_protocol_h with a custom command
[23/82] Generating src/wayland_client_protocol_core_h with a custom command
[24/82] Generating src/protocol source with a custom command
[25/82] Compiling C object tests/signal-test.p/signal-test.c.o
[26/82] Compiling C object tests/resources-test.p/resources-test.c.o
[27/82] Compiling C object tests/event-loop-test.p/event-loop-test.c.o
[28/82] Compiling C object tests/client-test.p/client-test.c.o
[29/82] Compiling C object src/libwayland-server.so.0.23.90.p/wayland-server.c.o
[30/82] Compiling C object src/libwayland-server.so.0.23.90.p/event-loop.c.o
[31/82] Compiling C object tests/display-test.p/meson-generated_.._tests-protocol.c.o
[32/82] Compiling C++ object tests/cpp-compile-test.p/cpp-compile-test.cpp.o
[33/82] Compiling C object src/libwayland-server.so.0.23.90.p/wayland-shm.c.o
[34/82] Compiling C object tests/connection-test.p/connection-test.c.o
[35/82] Compiling C object tests/interface-test.p/interface-test.c.o
[36/82] Compiling C object tests/sanity-test.p/sanity-test.c.o
[37/82] Compiling C object tests/display-test.p/display-test.c.o
[38/82] Compiling C object tests/socket-test.p/socket-test.c.o
[39/82] Compiling C object tests/queue-test.p/queue-test.c.o
[40/82] Compiling C object tests/message-test.p/message-test.c.o
[41/82] Compiling C object tests/compositor-introspection-test.p/compositor-introspection-test.c.o
[42/82] Compiling C object tests/protocol-logger-test.p/protocol-logger-test.c.o
[43/82] Compiling C object src/libwayland-server.so.0.23.90.p/meson-generated_.._wayland-protocol.c.o
[44/82] Compiling C object tests/newsignal-test.p/newsignal-test.c.o
[45/82] Compiling C object tests/newsignal-test.p/.._src_wayland-server.c.o
[46/82] Compiling C object src/libwayland-client.so.0.23.90.p/wayland-client.c.o
[47/82] Compiling C object tests/headers-test.p/headers-test.c.o
[48/82] Compiling C object src/libwayland-client.so.0.23.90.p/meson-generated_.._wayland-protocol.c.o
[49/82] Compiling C object tests/libtest-runner.a.p/test-runner.c.o
../tests/test-runner.c: In function ‘is_debugger_attached’:
../tests/test-runner.c:275:17: warning: ignoring return value of ‘read’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
275 | read(pipefd[0], &buf, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
../tests/test-runner.c:298:25: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
298 | write(pipefd[1], "-", 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
../tests/test-runner.c:301:25: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
301 | write(pipefd[1], "+", 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
[50/82] Compiling C object tests/libtest-runner.a.p/test-compositor.c.o
[51/82] Compiling C object tests/headers-test.p/headers-protocol-core-test.c.o
[52/82] Compiling C object tests/headers-test.p/headers-protocol-test.c.o
[53/82] Compiling C object tests/libtest-runner.a.p/test-helpers.c.o
[54/82] Compiling C object tests/proxy-test.p/proxy-test.c.o
[55/82] Linking static target tests/libtest-runner.a
[56/82] Linking target src/libwayland-client.so.0.23.90
[57/82] Linking target tests/cpp-compile-test
[58/82] Linking target src/libwayland-server.so.0.23.90
[59/82] Generating symbol file src/libwayland-client.so.0.23.90.p/libwayland-client.so.0.23.90.symbols
[60/82] Generating symbol file src/libwayland-server.so.0.23.90.p/libwayland-server.so.0.23.90.symbols
[61/82] Linking target tests/list-test
[62/82] Linking target tests/interface-test
[63/82] Linking target tests/sanity-test
[64/82] Linking target tests/client-test
[65/82] Linking target tests/connection-test
[66/82] Linking target tests/enum-validator-test
[67/82] Linking target tests/array-test
[68/82] Linking target tests/fixed-test
[69/82] Linking target tests/resources-test
[70/82] Linking target tests/event-loop-test
[71/82] Linking target tests/signal-test
[72/82] Linking target tests/map-test
[73/82] Linking target tests/queue-test
[74/82] Linking target tests/os-wrappers-test
[75/82] Linking target tests/display-test
[76/82] Linking target tests/compositor-introspection-test
[77/82] Linking target tests/socket-test
[78/82] Linking target tests/newsignal-test
[79/82] Linking target tests/message-test
[80/82] Linking target tests/headers-test
[81/82] Linking target tests/proxy-test
[82/82] Linking target tests/protocol-logger-test
1/26 wayland-egl abi check OK 0.05s
2/26 wayland-egl symbols check ERROR 0.05s exit status 99
>>> MALLOC_PERTURB_=171 MESON_TEST_ITERATION=1 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 WAYLAND_EGL_LIB=/home/mattst88/projects/wayland/build/egl/libwayland-egl.so.1.23.90 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 NM=/usr/lib/llvm/18/bin/llvm-nm /home/mattst88/projects/wayland/egl/wayland-egl-symbols-check
3/26 cpp-compile-test OK 0.05s
4/26 array-test OK 0.05s
5/26 client-test OK 0.05s
6/26 connection-test OK 0.04s
7/26 fixed-test OK 0.04s
8/26 interface-test OK 0.04s
9/26 list-test OK 0.03s
10/26 map-test OK 0.03s
11/26 signal-test OK 0.02s
12/26 newsignal-test OK 0.02s
13/26 resources-test OK 0.02s
14/26 message-test OK 0.02s
15/26 socket-test OK 0.04s
16/26 headers-test OK 0.01s
17/26 compositor-introspection-test OK 0.02s
18/26 protocol-logger-test OK 0.02s
19/26 enum-validator-test OK 0.01s
20/26 proxy-test OK 0.01s
21/26 scanner-test OK 0.12s
22/26 queue-test OK 0.10s
23/26 event-loop-test OK 0.15s
24/26 display-test OK 0.53s
25/26 os-wrappers-test FAIL 0.75s exit status 1
>>> MESON_TEST_ITERATION=1 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MALLOC_PERTURB_=117 LD_LIBRARY_PATH=/home/mattst88/projects/wayland/build/src ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 TEST_SRC_DIR=/home/mattst88/projects/wayland/tests TEST_BUILD_DIR=/home/mattst88/projects/wayland/build/tests /home/mattst88/projects/wayland/build/tests/os-wrappers-test
26/26 sanity-test FAIL 4.55s exit status 1
>>> MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MESON_TEST_ITERATION=1 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 LD_LIBRARY_PATH=/home/mattst88/projects/wayland/build/src ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 TEST_SRC_DIR=/home/mattst88/projects/wayland/tests TEST_BUILD_DIR=/home/mattst88/projects/wayland/build/tests MALLOC_PERTURB_=32 /home/mattst88/projects/wayland/build/tests/sanity-test
Ok: 23
Expected Fail: 0
Fail: 3
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Full log written to /home/mattst88/projects/wayland/build/meson-logs/testlog.txt
shows that the tests fail to execute the fd leak checker:
=================================== 25/26 ====================================
test: os-wrappers-test
start time: 16:54:23
duration: 0.75s
result: exit status 1
command: MESON_TEST_ITERATION=1 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MALLOC_PERTUR
B_=117 LD_LIBRARY_PATH=/home/mattst88/projects/wayland/build/src ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 TEST_SRC_DIR=/home/mattst88/projects/wayland/tests TEST_BUILD_DIR=/home/mattst88/proje
cts/wayland/build/tests /home/mattst88/projects/wayland/build/tests/os-wrappers-test
----------------------------------- stderr -----------------------------------
os-wrappers-test: ../tests/test-helpers.c:137: exec_fd_leak_check: Assertion `0 && "execing fd leak checker failed"' failed.
test "os_wrappers_epoll_create_cloexec_fallback": signal 6, fail.
----------------------------------------
os-wrappers-test: ../tests/test-helpers.c:137: exec_fd_leak_check: Assertion `0 && "execing fd leak checker failed"' failed.
test "os_wrappers_epoll_create_cloexec": signal 6, fail.
----------------------------------------
os-wrappers-test: ../tests/test-helpers.c:137: exec_fd_leak_check: Assertion `0 && "execing fd leak checker failed"' failed.
test "os_wrappers_recvmsg_cloexec_fallback": signal 6, fail.
----------------------------------------
os-wrappers-test: ../tests/test-helpers.c:137: exec_fd_leak_check: Assertion `0 && "execing fd leak checker failed"' failed.
test "os_wrappers_recvmsg_cloexec": signal 6, fail.
----------------------------------------
os-wrappers-test: ../tests/test-helpers.c:137: exec_fd_leak_check: Assertion `0 && "execing fd leak checker failed"' failed.
test "os_wrappers_dupfd_cloexec_fallback": signal 6, fail.
----------------------------------------
os-wrappers-test: ../tests/test-helpers.c:137: exec_fd_leak_check: Assertion `0 && "execing fd leak checker failed"' failed.
test "os_wrappers_dupfd_cloexec": signal 6, fail.
----------------------------------------
os-wrappers-test: ../tests/test-helpers.c:137: exec_fd_leak_check: Assertion `0 && "execing fd leak checker failed"' failed.
test "os_wrappers_socket_cloexec_fallback": signal 6, fail.
----------------------------------------
os-wrappers-test: ../tests/test-helpers.c:137: exec_fd_leak_check: Assertion `0 && "execing fd leak checker failed"' failed.
test "os_wrappers_socket_cloexec": signal 6, fail.
----------------------------------------
8 tests, 0 pass, 8 fail
==============================================================================
Indeed exec-fd-leak-checker
doesn't exist:
mattst88@framework ~/projects/wayland (main?) $ find -name exec-fd-leak-checker
mattst88@framework ~/projects/wayland (main?) $
But running meson compile -C build
builds it:
mattst88@framework ~/projects/wayland (main?) $ meson compile -C build -v |& tee
ninja: Entering directory `/home/mattst88/projects/wayland/build'
[1/8] ccache cc -Itests/exec-fd-leak-checker.p -Itests -I../tests -Isrc -I../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -O2 -g -D_POSIX_C_SOURCE=200809L -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -pthread -MD -MQ tests/exec-fd-leak-checker.p/exec-fd-leak-checker.c.o -MF tests/exec-fd-leak-checker.p/exec-fd-leak-checker.c.o.d -o tests/exec-fd-leak-checker.p/exec-fd-leak-checker.c.o -c ../tests/exec-fd-leak-checker.c
[2/8] ccache cc -Iegl/libwayland-egl.so.1.23.90.p -Iegl -I../egl -Isrc -I../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -O2 -g -D_POSIX_C_SOURCE=200809L -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -fPIC -MD -MQ egl/libwayland-egl.so.1.23.90.p/wayland-egl.c.o -MF egl/libwayland-egl.so.1.23.90.p/wayland-egl.c.o.d -o egl/libwayland-egl.so.1.23.90.p/wayland-egl.c.o -c ../egl/wayland-egl.c
[3/8] ccache cc -Icursor/libwayland-cursor.so.0.23.90.p -Icursor -I../cursor -I. -I.. -Isrc -I../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -O2 -g -D_POSIX_C_SOURCE=200809L -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -fPIC '-DICONDIR="/usr/local/share/icons"' -MD -MQ cursor/libwayland-cursor.so.0.23.90.p/wayland-cursor.c.o -MF cursor/libwayland-cursor.so.0.23.90.p/wayland-cursor.c.o.d -o cursor/libwayland-cursor.so.0.23.90.p/wayland-cursor.c.o -c ../cursor/wayland-cursor.c
[4/8] ccache cc -Icursor/libwayland-cursor.so.0.23.90.p -Icursor -I../cursor -I. -I.. -Isrc -I../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -O2 -g -D_POSIX_C_SOURCE=200809L -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -fPIC '-DICONDIR="/usr/local/share/icons"' -MD -MQ cursor/libwayland-cursor.so.0.23.90.p/xcursor.c.o -MF cursor/libwayland-cursor.so.0.23.90.p/xcursor.c.o.d -o cursor/libwayland-cursor.so.0.23.90.p/xcursor.c.o -c ../cursor/xcursor.c
[5/8] ccache cc -Icursor/libwayland-cursor.so.0.23.90.p -Icursor -I../cursor -I. -I.. -Isrc -I../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -O2 -g -D_POSIX_C_SOURCE=200809L -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -fPIC '-DICONDIR="/usr/local/share/icons"' -MD -MQ cursor/libwayland-cursor.so.0.23.90.p/os-compatibility.c.o -MF cursor/libwayland-cursor.so.0.23.90.p/os-compatibility.c.o.d -o cursor/libwayland-cursor.so.0.23.90.p/os-compatibility.c.o -c ../cursor/os-compatibility.c
[6/8] cc -o egl/libwayland-egl.so.1.23.90 egl/libwayland-egl.so.1.23.90.p/wayland-egl.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,-soname,libwayland-egl.so.1
[7/8] cc -o cursor/libwayland-cursor.so.0.23.90 cursor/libwayland-cursor.so.0.23.90.p/wayland-cursor.c.o cursor/libwayland-cursor.so.0.23.90.p/os-compatibility.c.o cursor/libwayland-cursor.so.0.23.90.p/xcursor.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,-soname,libwayland-cursor.so.0 '-Wl,-rpath,$ORIGIN/../src' -Wl,-rpath-link,/home/mattst88/projects/wayland/build/src src/libwayland-client.so.0.23.90
[8/8] cc -o tests/exec-fd-leak-checker tests/exec-fd-leak-checker.p/exec-fd-leak-checker.c.o -Wl,--as-needed -Wl,--no-undefined '-Wl,-rpath,$ORIGIN/../src' -Wl,-rpath-link,/home/mattst88/projects/wayland/build/src -Wl,--start-group tests/libtest-runner.a src/libwayland-util.a src/libwayland-private.a src/libwayland-client.so.0.23.90 src/libwayland-server.so.0.23.90 -pthread -ldl /usr/lib64/libffi.so -lm -lrt -Wl,--end-group
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/mattst88/projects/wayland/build -v
mattst88@framework ~/projects/wayland (main?) $ find -name exec-fd-leak-checker
./build/tests/exec-fd-leak-checker
And now meson test -C build
passes.