From: Mark Wielaard Date: Thu, 7 Mar 2024 16:40:54 +0000 (+0100) Subject: Move close_range test from memcheck/tests/freebsd to memcheck/tests X-Git-Tag: VALGRIND_3_23_0~126 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab91a3cc717738fbba46ce86c83a75df1fe3dfa9;p=thirdparty%2Fvalgrind.git Move close_range test from memcheck/tests/freebsd to memcheck/tests The close_range call is also available under linux and we already have an appropriate configure call to test it. The only difference is how the syscall arguments are called. --- diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index 96a469e542..db55195ba3 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -132,6 +132,8 @@ EXTRA_DIST = \ clireq_nofill.stdout.exp clireq_nofill.vgtest \ clo_redzone_default.vgtest clo_redzone_128.vgtest \ clo_redzone_default.stderr.exp clo_redzone_128.stderr.exp \ + close_range.vgtest close_range.stderr.exp \ + close_range.stderr.exp.linux \ cond_ld.vgtest cond_ld.stdout.exp cond_ld.stderr.exp-arm \ cond_ld.stderr.exp-64bit-non-arm \ cond_ld.stderr.exp-32bit-non-arm \ @@ -578,6 +580,13 @@ check_PROGRAMS += cxx17_aligned_new sized_aligned_new_delete_args \ sized_aligned_new_delete_misaligned3 endif +if HAVE_CLOSE_RANGE +check_PROGRAMS += close_range +endif + +close_range_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_UNUSED_BUT_SET_VARIABLE@ \ + @FLAG_W_NO_UNINITIALIZED@ + if HAVE_PTHREAD_BARRIER check_PROGRAMS += reach_thread_register endif diff --git a/memcheck/tests/freebsd/close_range.c b/memcheck/tests/close_range.c similarity index 92% rename from memcheck/tests/freebsd/close_range.c rename to memcheck/tests/close_range.c index ba1adf9b5c..6d8b5a0ba8 100644 --- a/memcheck/tests/freebsd/close_range.c +++ b/memcheck/tests/close_range.c @@ -1,3 +1,4 @@ +#define _GNU_SOURCE #include #include #include @@ -6,6 +7,11 @@ #include #include +/* For the linux kernel the CLOSE_RANGE_* constants are in a separate header. */ +#if defined(__linux__) +#include +#endif + /* It looks like close_range was initially implemented for FreeBSD 13 * but without CLOSE_RANGE_CLOEXEC * That implementation got back ported to FreeBSD 12.2 diff --git a/memcheck/tests/freebsd/close_range.stderr.exp b/memcheck/tests/close_range.stderr.exp similarity index 72% rename from memcheck/tests/freebsd/close_range.stderr.exp rename to memcheck/tests/close_range.stderr.exp index d286837060..2f4d018f22 100644 --- a/memcheck/tests/freebsd/close_range.stderr.exp +++ b/memcheck/tests/close_range.stderr.exp @@ -1,12 +1,12 @@ Syscall param close_range(lowfd) contains uninitialised byte(s) at 0x........: close_range (in /...libc...) - by 0x........: main (close_range.c:83) + by 0x........: main (close_range.c:89) Syscall param close_range(highfd) contains uninitialised byte(s) at 0x........: close_range (in /...libc...) - by 0x........: main (close_range.c:83) + by 0x........: main (close_range.c:89) Syscall param close_range(flags) contains uninitialised byte(s) at 0x........: close_range (in /...libc...) - by 0x........: main (close_range.c:83) + by 0x........: main (close_range.c:89) diff --git a/memcheck/tests/close_range.stderr.exp.linux b/memcheck/tests/close_range.stderr.exp.linux new file mode 100644 index 0000000000..3a0de7837a --- /dev/null +++ b/memcheck/tests/close_range.stderr.exp.linux @@ -0,0 +1,12 @@ +Syscall param close_range(first) contains uninitialised byte(s) + at 0x........: close_range (in /...libc...) + by 0x........: main (close_range.c:89) + +Syscall param close_range(last) contains uninitialised byte(s) + at 0x........: close_range (in /...libc...) + by 0x........: main (close_range.c:89) + +Syscall param close_range(flags) contains uninitialised byte(s) + at 0x........: close_range (in /...libc...) + by 0x........: main (close_range.c:89) + diff --git a/memcheck/tests/freebsd/close_range.vgtest b/memcheck/tests/close_range.vgtest similarity index 100% rename from memcheck/tests/freebsd/close_range.vgtest rename to memcheck/tests/close_range.vgtest diff --git a/memcheck/tests/freebsd/Makefile.am b/memcheck/tests/freebsd/Makefile.am index bff8f61841..a3bf0c660d 100644 --- a/memcheck/tests/freebsd/Makefile.am +++ b/memcheck/tests/freebsd/Makefile.am @@ -35,7 +35,6 @@ EXTRA_DIST = \ chflags.stderr.exp-x86 \ chmod_chown.vgtest \ chmod_chown.stderr.exp \ - close_range.vgtest close_range.stderr.exp \ delete_sized_mismatch.vgtest \ delete_sized_mismatch.stderr.exp \ delete_sized_mismatch_xml.vgtest \ @@ -191,14 +190,8 @@ scalar_15_plus_CFLAGS = ${AM_CFLAGS} -g timerfd_LDFLAGS = -lm endif -if HAVE_CLOSE_RANGE -check_PROGRAMS += close_range -endif - aligned_alloc_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_NON_POWER_OF_TWO_ALIGNMENT@ -close_range_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_UNUSED_BUT_SET_VARIABLE@ - delete_sized_mismatch_CXXFLAGS = ${AM_CXXFLAGS} --std=c++14 delete_sized_mismatch_SOURCES = delete_sized_mismatch.cpp