From 64d1e9c09bfdb59a9c6bd96ff0e2b8705ff87188 Mon Sep 17 00:00:00 2001 From: Konstantin Bogomolov Date: Thu, 1 Jun 2023 16:34:01 -0700 Subject: [PATCH] Fix close_range syscall tests for Linux kernels <5.11 The CLOEXEC flag for close_range was added in 5.11; if CLOEXEC tests are run on earlier versions they will return EINVAL. PiperOrigin-RevId: 537160906 --- test/syscalls/linux/close_range.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/syscalls/linux/close_range.cc b/test/syscalls/linux/close_range.cc index 89df52e58..012a80704 100644 --- a/test/syscalls/linux/close_range.cc +++ b/test/syscalls/linux/close_range.cc @@ -216,6 +216,9 @@ TEST_F(CloseRangeTest, CloexecFlagTest) { int num_files_in_range = 10; unsigned int flags = CLOSE_RANGE_CLOEXEC; + // CLOEXEC is only available on >=5.11 kernels. + SKIP_IF(close_range(1, 0, flags) < 0 && errno == EINVAL); + CreateFiles(num_files_in_range); OpenFilesRdwr(); @@ -318,6 +321,9 @@ TEST_F(CloseRangeTest, CloexecAndUnshareFlagTest) { int num_files_in_range = 10; unsigned int flags = CLOSE_RANGE_CLOEXEC | CLOSE_RANGE_UNSHARE; + // CLOEXEC is only available on >=5.11 kernels. + SKIP_IF(close_range(1, 0, flags) < 0 && errno == EINVAL); + CreateFiles(num_files_in_range); OpenFilesRdwr();