On Tue, May 28, 2019 at 12:33:41PM +1000, Michael Ellerman wrote:
Christian Brauner christian@brauner.io writes:
This adds basic tests for the new close_range() syscall.
- test that no invalid flags can be passed
- test that a range of file descriptors is correctly closed
- test that a range of file descriptors is correctly closed if there there are already closed file descriptors in the range
- test that max_fd is correctly capped to the current fdtable maximum
Signed-off-by: Christian Brauner christian@brauner.io Cc: Arnd Bergmann arnd@arndb.de Cc: Jann Horn jannh@google.com Cc: David Howells dhowells@redhat.com Cc: Dmitry V. Levin ldv@altlinux.org Cc: Oleg Nesterov oleg@redhat.com Cc: Linus Torvalds torvalds@linux-foundation.org Cc: Florian Weimer fweimer@redhat.com Cc: linux-api@vger.kernel.org
v1: unchanged v2:
- Christian Brauner christian@brauner.io:
- verify that close_range() correctly closes a single file descriptor
tools/testing/selftests/Makefile | 1 + tools/testing/selftests/core/.gitignore | 1 + tools/testing/selftests/core/Makefile | 6 + .../testing/selftests/core/close_range_test.c | 142 ++++++++++++++++++ 4 files changed, 150 insertions(+) create mode 100644 tools/testing/selftests/core/.gitignore create mode 100644 tools/testing/selftests/core/Makefile create mode 100644 tools/testing/selftests/core/close_range_test.c
diff --git a/tools/testing/selftests/core/.gitignore b/tools/testing/selftests/core/.gitignore new file mode 100644 index 000000000000..6e6712ce5817 --- /dev/null +++ b/tools/testing/selftests/core/.gitignore @@ -0,0 +1 @@ +close_range_test diff --git a/tools/testing/selftests/core/Makefile b/tools/testing/selftests/core/Makefile new file mode 100644 index 000000000000..de3ae68aa345 --- /dev/null +++ b/tools/testing/selftests/core/Makefile @@ -0,0 +1,6 @@ +CFLAGS += -g -I../../../../usr/include/ -I../../../../include
Your second -I pulls the unexported kernel headers in, userspace programs shouldn't include unexported kernel headers.
It breaks the build on powerpc with eg:
powerpc64le-linux-gnu-gcc -g -I../../../../usr/include/ -I../../../../include close_range_test.c -o /output/kselftest/core/close_range_test In file included from /usr/powerpc64le-linux-gnu/include/bits/fcntl-linux.h:346, from /usr/powerpc64le-linux-gnu/include/bits/fcntl.h:62, from /usr/powerpc64le-linux-gnu/include/fcntl.h:35, from close_range_test.c:5: ../../../../include/linux/falloc.h:13:2: error: unknown type name '__s16' __s16 l_type; ^~~~~
Did you do that on purpose or just copy it from one of the other Makefiles? :)
I originally did that on purpose because checkpatch was yammering on about me not having used ARRAY_SIZE(). But that include can go, you are right.
Christian