Re: [PATCH v2 2/2] tests: add close_range() tests

From: Christian Brauner
Date: Tue May 28 2019 - 06:01:30 EST


On Tue, May 28, 2019 at 12:33:41PM +1000, Michael Ellerman wrote:
> Christian Brauner <christian@xxxxxxxxxx> 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@xxxxxxxxxx>
> > Cc: Arnd Bergmann <arnd@xxxxxxxx>
> > Cc: Jann Horn <jannh@xxxxxxxxxx>
> > Cc: David Howells <dhowells@xxxxxxxxxx>
> > Cc: Dmitry V. Levin <ldv@xxxxxxxxxxxx>
> > Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
> > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > Cc: Florian Weimer <fweimer@xxxxxxxxxx>
> > Cc: linux-api@xxxxxxxxxxxxxxx
> > ---
> > v1: unchanged
> > v2:
> > - Christian Brauner <christian@xxxxxxxxxx>:
> > - 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