mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Add mcheck tests to malloc
Like malloc-check, add generic rules to run all tests in malloc by linking with libmcheck.a so as to provide coverage for mcheck(). Currently the following 12 tests fail: FAIL: malloc/tst-malloc-backtrace-mcheck FAIL: malloc/tst-malloc-fork-deadlock-mcheck FAIL: malloc/tst-malloc-stats-cancellation-mcheck FAIL: malloc/tst-malloc-tcache-leak-mcheck FAIL: malloc/tst-malloc-thread-exit-mcheck FAIL: malloc/tst-malloc-thread-fail-mcheck FAIL: malloc/tst-malloc-usable-static-mcheck FAIL: malloc/tst-malloc-usable-static-tunables-mcheck FAIL: malloc/tst-malloc-usable-tunables-mcheck FAIL: malloc/tst-malloc_info-mcheck FAIL: malloc/tst-memalign-mcheck FAIL: malloc/tst-posix_memalign-mcheck and they have been added to tests-exclude-mcheck for now to keep status quo. At least the last two can be attributed to bugs in mcheck() but I haven't fixed them here since they should be fixed by removing malloc hooks. Others need to be triaged to check if they're due to mcheck bugs or due to actual bugs. Reviewed-by: DJ Delorie <dj@redhat.com>
This commit is contained in:
parent
7f784fabcb
commit
784fff6ea5
15
Rules
15
Rules
@ -155,6 +155,7 @@ xtests: tests $(xtests-special)
|
||||
else
|
||||
tests: $(tests:%=$(objpfx)%.out) $(tests-internal:%=$(objpfx)%.out) \
|
||||
$(tests-container:%=$(objpfx)%.out) \
|
||||
$(tests-mcheck:%=$(objpfx)%-mcheck.out) \
|
||||
$(tests-malloc-check:%=$(objpfx)%-malloc-check.out) \
|
||||
$(tests-special) $(tests-printers-out)
|
||||
xtests: tests $(xtests:%=$(objpfx)%.out) $(xtests-special)
|
||||
@ -166,7 +167,8 @@ ifeq ($(run-built-tests),no)
|
||||
tests-expected =
|
||||
else
|
||||
tests-expected = $(tests) $(tests-internal) $(tests-printers) \
|
||||
$(tests-container) $(tests-malloc-check:%=%-malloc-check)
|
||||
$(tests-container) $(tests-malloc-check:%=%-malloc-check) \
|
||||
$(tests-mcheck:%=%-mcheck)
|
||||
endif
|
||||
tests:
|
||||
$(..)scripts/merge-test-results.sh -s $(objpfx) $(subdir) \
|
||||
@ -192,6 +194,7 @@ else
|
||||
binaries-pie-tests =
|
||||
binaries-pie-notests =
|
||||
endif
|
||||
binaries-mcheck-tests = $(tests-mcheck:%=%-mcheck)
|
||||
binaries-malloc-check-tests = $(tests-malloc-check:%=%-malloc-check)
|
||||
else
|
||||
binaries-all-notests =
|
||||
@ -202,6 +205,7 @@ binaries-static-tests =
|
||||
binaries-static =
|
||||
binaries-pie-tests =
|
||||
binaries-pie-notests =
|
||||
binaries-mcheck-tests =
|
||||
binaries-malloc-check-tests =
|
||||
endif
|
||||
|
||||
@ -226,6 +230,15 @@ $(addprefix $(objpfx),$(binaries-shared-tests)): %: %.o \
|
||||
$(+link-tests)
|
||||
endif
|
||||
|
||||
ifneq "$(strip $(binaries-mcheck-tests))" ""
|
||||
$(addprefix $(objpfx),$(binaries-mcheck-tests)): %-mcheck: %.o \
|
||||
$(link-extra-libs-tests) \
|
||||
$(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
|
||||
$(common-objpfx)malloc/libmcheck.a \
|
||||
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
|
||||
$(+link-tests)
|
||||
endif
|
||||
|
||||
ifneq "$(strip $(binaries-malloc-check-tests))" ""
|
||||
$(addprefix $(objpfx),$(binaries-malloc-check-tests)): %-malloc-check: %.o \
|
||||
$(link-extra-libs-tests) \
|
||||
|
@ -77,6 +77,26 @@ tests-exclude-malloc-check = tst-malloc-check tst-malloc-usable \
|
||||
# Run all tests with MALLOC_CHECK_=3
|
||||
tests-malloc-check = $(filter-out $(tests-exclude-malloc-check),$(tests))
|
||||
|
||||
# Tests that don't play well with mcheck. They are either bugs in mcheck or
|
||||
# the tests expect specific internal behavior that is changed due to linking to
|
||||
# libmcheck.a.
|
||||
tests-exclude-mcheck = tst-mallocstate \
|
||||
tst-safe-linking tst-malloc-usable \
|
||||
tst-malloc-backtrace \
|
||||
tst-malloc-fork-deadlock \
|
||||
tst-malloc-stats-cancellation \
|
||||
tst-malloc-tcache-leak \
|
||||
tst-malloc-thread-exit \
|
||||
tst-malloc-thread-fail \
|
||||
tst-malloc-usable-static \
|
||||
tst-malloc-usable-static-tunables \
|
||||
tst-malloc-usable-tunables \
|
||||
tst-malloc_info \
|
||||
tst-memalign \
|
||||
tst-posix_memalign
|
||||
|
||||
tests-mcheck = $(filter-out $(tests-exclude-mcheck), $(tests))
|
||||
|
||||
routines = malloc morecore mcheck mtrace obstack reallocarray \
|
||||
scratch_buffer_dupfree \
|
||||
scratch_buffer_grow scratch_buffer_grow_preserve \
|
||||
@ -118,6 +138,11 @@ $(objpfx)tst-mallocfork3: $(shared-thread-library)
|
||||
$(objpfx)tst-mallocfork3-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-fork-deadlock: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-stats-cancellation: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-backtrace-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-thread-exit-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-thread-fail-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-fork-deadlock-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-stats-cancellation-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-backtrace-malloc-check: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-thread-exit-malloc-check: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-thread-fail-malloc-check: $(shared-thread-library)
|
||||
@ -253,17 +278,24 @@ $(foreach o,$(all-object-suffixes),$(objpfx)malloc$(o)): arena.c hooks.c
|
||||
$(tests:%=$(objpfx)%.o): CPPFLAGS += -DTEST_NO_MALLOPT
|
||||
|
||||
$(objpfx)tst-interpose-nothread: $(objpfx)tst-interpose-aux-nothread.o
|
||||
$(objpfx)tst-interpose-nothread-mcheck: $(objpfx)tst-interpose-aux-nothread.o
|
||||
$(objpfx)tst-interpose-nothread-malloc-check: \
|
||||
$(objpfx)tst-interpose-aux-nothread.o
|
||||
$(objpfx)tst-interpose-thread: \
|
||||
$(objpfx)tst-interpose-aux-thread.o $(shared-thread-library)
|
||||
$(objpfx)tst-interpose-thread-mcheck: \
|
||||
$(objpfx)tst-interpose-aux-thread.o $(shared-thread-library)
|
||||
$(objpfx)tst-interpose-thread-malloc-check: \
|
||||
$(objpfx)tst-interpose-aux-thread.o $(shared-thread-library)
|
||||
$(objpfx)tst-interpose-static-nothread: $(objpfx)tst-interpose-aux-nothread.o
|
||||
$(objpfx)tst-interpose-static-nothread-mcheck: \
|
||||
$(objpfx)tst-interpose-aux-nothread.o
|
||||
$(objpfx)tst-interpose-static-nothread-malloc-check: \
|
||||
$(objpfx)tst-interpose-aux-nothread.o
|
||||
$(objpfx)tst-interpose-static-thread: \
|
||||
$(objpfx)tst-interpose-aux-thread.o $(static-thread-library)
|
||||
$(objpfx)tst-interpose-static-thread-mcheck: \
|
||||
$(objpfx)tst-interpose-aux-thread.o $(static-thread-library)
|
||||
$(objpfx)tst-interpose-static-thread-malloc-check: \
|
||||
$(objpfx)tst-interpose-aux-thread.o $(static-thread-library)
|
||||
|
||||
@ -280,6 +312,9 @@ $(objpfx)tst-dynarray-fail-mem.out: $(objpfx)tst-dynarray-fail.out
|
||||
$(objpfx)tst-malloc-tcache-leak: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc_info: $(shared-thread-library)
|
||||
$(objpfx)tst-mallocfork2: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-tcache-leak-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc_info-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-mallocfork2-mcheck: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc-tcache-leak-malloc-check: $(shared-thread-library)
|
||||
$(objpfx)tst-malloc_info-malloc-check: $(shared-thread-library)
|
||||
$(objpfx)tst-mallocfork2-malloc-check: $(shared-thread-library)
|
||||
|
Loading…
Reference in New Issue
Block a user