From: Stefan Maksimovic Date: Fri, 16 Aug 2019 23:23:21 +0000 (-0700) Subject: memcheck/tests/sys-preadv2_pwritev2: Check whether these syscalls are supported X-Git-Tag: VALGRIND_3_16_0~234 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f7483d1d8a8ade23123b498dfbd61d1c41d9f45;p=thirdparty%2Fvalgrind.git memcheck/tests/sys-preadv2_pwritev2: Check whether these syscalls are supported [ bvanassche: changed the order of check_PROGRAMS ] --- diff --git a/.gitignore b/.gitignore index 9ba42ee4ac..7c3d304435 100644 --- a/.gitignore +++ b/.gitignore @@ -1093,6 +1093,7 @@ /memcheck/tests/linux/.deps /memcheck/tests/linux/brk /memcheck/tests/linux/capget +/memcheck/tests/linux/check_preadv2_pwritev2 /memcheck/tests/linux/dlclose_leak /memcheck/tests/linux/dlclose_leak_so.so /memcheck/tests/linux/getregset diff --git a/memcheck/tests/linux/Makefile.am b/memcheck/tests/linux/Makefile.am index e13325869d..14d4a07162 100644 --- a/memcheck/tests/linux/Makefile.am +++ b/memcheck/tests/linux/Makefile.am @@ -33,6 +33,7 @@ EXTRA_DIST = \ check_PROGRAMS = \ brk \ capget \ + check_preadv2_pwritev2 \ dlclose_leak dlclose_leak_so.so \ ioctl-tiocsig \ getregset \ diff --git a/memcheck/tests/linux/check_preadv2_pwritev2.c b/memcheck/tests/linux/check_preadv2_pwritev2.c new file mode 100644 index 0000000000..5333679e9d --- /dev/null +++ b/memcheck/tests/linux/check_preadv2_pwritev2.c @@ -0,0 +1,19 @@ +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + errno = 0; + int has_preadv2 = 0; + int has_pwritev2 = 0; + + syscall(__NR_preadv2, 0, NULL, 0, 0, 0); + has_preadv2 = errno != ENOSYS; + + syscall(__NR_pwritev2, 0, NULL, 0, 0, 0); + has_pwritev2 = errno != ENOSYS; + + return !(has_preadv2 && has_pwritev2); +} diff --git a/memcheck/tests/linux/sys-preadv2_pwritev2.vgtest b/memcheck/tests/linux/sys-preadv2_pwritev2.vgtest index 5cd23aacda..33e32522d5 100644 --- a/memcheck/tests/linux/sys-preadv2_pwritev2.vgtest +++ b/memcheck/tests/linux/sys-preadv2_pwritev2.vgtest @@ -1,3 +1,4 @@ prereq: test -e sys-preadv2_pwritev2 +prereq: ./check_preadv2_pwritev2 prog: sys-preadv2_pwritev2 vgopts: -q