From: Paul Floyd Date: Mon, 22 Sep 2025 18:21:57 +0000 (+0200) Subject: FreeBSD regtest: add an x86 version of scalar_arg_check X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d0bfd2556ce498cb091299249cb6804cbff57e81;p=thirdparty%2Fvalgrind.git FreeBSD regtest: add an x86 version of scalar_arg_check --- diff --git a/.gitignore b/.gitignore index 6cf083afe..00233d852 100644 --- a/.gitignore +++ b/.gitignore @@ -1505,6 +1505,7 @@ /memcheck/tests/x86-freebsd/posix_fadvise /memcheck/tests/x86-freebsd/posix_fallocate /memcheck/tests/x86-freebsd/reallocarray +/memcheck/tests/x86-freebsd/scalar_arg_check # /memcheck/tests/arm64-freebsd /memcheck/tests/arm64-freebsd/*.stderr.diff diff --git a/memcheck/tests/x86-freebsd/Makefile.am b/memcheck/tests/x86-freebsd/Makefile.am index 1d8069021..8c48506c2 100644 --- a/memcheck/tests/x86-freebsd/Makefile.am +++ b/memcheck/tests/x86-freebsd/Makefile.am @@ -1,7 +1,7 @@ include $(top_srcdir)/Makefile.tool-tests.am -dist_noinst_SCRIPTS = filter_stderr +dist_noinst_SCRIPTS = filter_stderr filter_arg_check EXTRA_DIST = \ posix_fadvise.vgtest \ @@ -9,10 +9,12 @@ EXTRA_DIST = \ posix_fadvise.stderr.exp \ posix_fallocate.stderr.exp \ reallocarray.vgtest \ - reallocarray.stderr.exp + reallocarray.stderr.exp \ + scalar_arg_check.vgtest \ + scalar_arg_check.stderr.exp check_PROGRAMS = \ - posix_fadvise posix_fallocate reallocarray + posix_fadvise posix_fallocate reallocarray scalar_arg_check # Linux also adds $(FLAG_MMMX) $(FLAG_MSSE) to the first two AM_CFLAGS += @FLAG_M32@ diff --git a/memcheck/tests/x86-freebsd/filter_arg_check b/memcheck/tests/x86-freebsd/filter_arg_check new file mode 100755 index 000000000..302dea2df --- /dev/null +++ b/memcheck/tests/x86-freebsd/filter_arg_check @@ -0,0 +1,20 @@ +#! /bin/sh + +# Only one test uses this which calls syscall(SYS_sendfile) +# which is the only x86 syscall that uses 8 arguments +# The output includes --trace-syscalls=yes which is very verbose +# but we only want to see the sendfile line + +# the libc signature for sendfile is +# int sendfile(int fd, int s, off_t offset, size_t nbytes, +# struct sf_hdtr *hdtr, off_t *sbytes, int flags); +# The testcase uses values from 101 to 108 for the arguments +# (to make it easy to match the testcase to the log output) +# Some of the arguments are printed as hex, not too bad. +# Argument 3 is a 64bit value made up from the 32bit arguments +# 3 and 4 resulting in 7 values in the expected. + +grep "SYSCALL.*sendfile" | +sed 's/==.*//' | +sed -E 's/\[[0-9]{5}/[xxxxx/' + diff --git a/memcheck/tests/x86-freebsd/scalar_arg_check.c b/memcheck/tests/x86-freebsd/scalar_arg_check.c new file mode 100644 index 000000000..c608150f2 --- /dev/null +++ b/memcheck/tests/x86-freebsd/scalar_arg_check.c @@ -0,0 +1,8 @@ +#include "../freebsd/scalar.h" + +int main(void) +{ + /* sendfile uses 8 args */ + SY(SYS_sendfile, 101, 102, 103, 104, 105, 106, 107, 108); +} + diff --git a/memcheck/tests/x86-freebsd/scalar_arg_check.stderr.exp b/memcheck/tests/x86-freebsd/scalar_arg_check.stderr.exp new file mode 100644 index 000000000..354d16821 --- /dev/null +++ b/memcheck/tests/x86-freebsd/scalar_arg_check.stderr.exp @@ -0,0 +1 @@ +SYSCALL[xxxxx,1](393) sys_sendfile ( 101, 102, 446676598887, 105, 0x6a, 0x6b, 108 ) diff --git a/memcheck/tests/x86-freebsd/scalar_arg_check.vgtest b/memcheck/tests/x86-freebsd/scalar_arg_check.vgtest new file mode 120000 index 000000000..5b2d7ffaf --- /dev/null +++ b/memcheck/tests/x86-freebsd/scalar_arg_check.vgtest @@ -0,0 +1 @@ +../amd64-freebsd/scalar_arg_check.vgtest \ No newline at end of file