From: Paul Floyd Date: Sun, 10 Sep 2023 15:53:05 +0000 (+0000) Subject: Linux regtest: Update aligned_alloc test for GNU libc 2.38 X-Git-Tag: VALGRIND_3_22_0~68 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26ed1457d04cab8fce3e8d2372f5295e73d11461;p=thirdparty%2Fvalgrind.git Linux regtest: Update aligned_alloc test for GNU libc 2.38 --- diff --git a/memcheck/tests/linux/Makefile.am b/memcheck/tests/linux/Makefile.am index 3e805bcf78..53c266e48f 100644 --- a/memcheck/tests/linux/Makefile.am +++ b/memcheck/tests/linux/Makefile.am @@ -6,6 +6,7 @@ dist_noinst_SCRIPTS = filter_stderr EXTRA_DIST = \ aligned_alloc.vgtest aligned_alloc.stderr.exp \ aligned_alloc.stderr.exp-musl \ + aligned_alloc.stderr.exp-glibc238 \ brk.stderr.exp brk.vgtest \ capget.vgtest capget.stderr.exp capget.stderr.exp2 capget.stderr.exp3 \ debuginfod-check.stderr.exp debuginfod-check.vgtest.in \ diff --git a/memcheck/tests/linux/aligned_alloc.c b/memcheck/tests/linux/aligned_alloc.c index efe4672efc..a4bb995f7c 100644 --- a/memcheck/tests/linux/aligned_alloc.c +++ b/memcheck/tests/linux/aligned_alloc.c @@ -5,9 +5,25 @@ int main(void) { -#if defined(MUSL_LIBC) +#if defined (HAVE_GNU_LIBC_C17_ALIGNED_ALLOC) char* p = NULL; + // zero size + p = aligned_alloc(0, 8); + assert(p == NULL); + + // non multiple of alignment + p = aligned_alloc(8, 25); + assert(p && ((size_t)p % 8U == 0U)); + free(p); + + // align not power of 2 + p = aligned_alloc(40, 160); + assert(p == NULL); + errno = 0; +#endif +#if defined(MUSL_LIBC) + char* p = NULL; // zero size p = aligned_alloc(0, 8); diff --git a/memcheck/tests/linux/aligned_alloc.stderr.exp-glibc238 b/memcheck/tests/linux/aligned_alloc.stderr.exp-glibc238 new file mode 100644 index 0000000000..35e0eff724 --- /dev/null +++ b/memcheck/tests/linux/aligned_alloc.stderr.exp-glibc238 @@ -0,0 +1,8 @@ +Invalid size value: 25 alignment value: 8 (size should be a multiple of alignment) + at 0x........: aligned_alloc (vg_replace_malloc.c:...) + by 0x........: main (aligned_alloc.c:16) + +Invalid alignment value: 40 (should be a power of 2) + at 0x........: aligned_alloc (vg_replace_malloc.c:...) + by 0x........: main (aligned_alloc.c:21) +