On Fri, Oct 20, 2017 at 11:24:19AM +0100, Chris Wilson wrote:
> __gem_create() doesn't touch the outparam *handle on failure, so we can
> no longer assert that it zero. This is reasonable to remove as it is just
> testing the library itself and not the kernel, so no loss in coverage.
> We already had to remove the false assertion that gem_create() must fail
> following fd exhaustion (as we can not prevent the kernel from freeing
> VFS fdspace in between calls).
> 
> The last remaining change is that we do no need to rely on an external
> path for open() as dup() will do the job of exhausting the fdtable.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103365
> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>

Reviewed-by: Michał Winiarski <michal.winiar...@intel.com>

But do we really need this test? Perhaps we could just remove it?

-Michał

> ---
>  tests/gem_fd_exhaustion.c | 21 ++++-----------------
>  1 file changed, 4 insertions(+), 17 deletions(-)
> 
> diff --git a/tests/gem_fd_exhaustion.c b/tests/gem_fd_exhaustion.c
> index 250fe850..0969f9c6 100644
> --- a/tests/gem_fd_exhaustion.c
> +++ b/tests/gem_fd_exhaustion.c
> @@ -33,11 +33,6 @@
>  #include <fcntl.h>
>  #include <limits.h>
>  
> -
> -
> -#define FD_ARR_SZ 100
> -int fd_arr[FD_ARR_SZ];
> -
>  static bool allow_unlimited_files(void)
>  {
>       struct rlimit rlim;
> @@ -60,31 +55,23 @@ static bool allow_unlimited_files(void)
>  
>  igt_simple_main
>  {
> -     int fd, i;
> +     int fd;
>  
>       igt_require(allow_unlimited_files());
>  
>       fd = drm_open_driver(DRIVER_INTEL);
>  
> -     igt_assert(open("/dev/null", O_RDONLY) >= 0);
> -
>       igt_fork(n, 1) {
>               igt_drop_root();
>  
> -             for (i = 0; ; i++) {
> -                     int tmp_fd = open("/dev/null", O_RDONLY);
> +             for (int i = 0; ; i++) {
> +                     int leak = dup(fd);
>                       uint32_t handle;
>  
> -                     if (tmp_fd >= 0 && i < FD_ARR_SZ)
> -                             fd_arr[i] = tmp_fd;
> -
>                       if (__gem_create(fd, 4096, &handle) == 0)
>                               gem_close(fd, handle);
>  
> -
> -                     if (tmp_fd < 0) {
> -                             /* Ensure we actually hit the failure path ... 
> */
> -                             igt_assert(handle == 0);
> +                     if (leak < 0) {
>                               igt_info("fd exhaustion after %i rounds.\n", i);
>                               break;
>                       }
> -- 
> 2.15.0.rc1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to