diff mbox

[igt] igt/prime_mmap: Test for userptr support first

Message ID 20180412180823.11998-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Chris Wilson April 12, 2018, 6:08 p.m. UTC
Before we start trying to use userptr to test interoperability with
PRIME, we first need to check that the device in question has userptr
support.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106013
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/prime_mmap.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Tvrtko Ursulin April 16, 2018, 10:16 a.m. UTC | #1
On 12/04/2018 19:08, Chris Wilson wrote:
> Before we start trying to use userptr to test interoperability with
> PRIME, we first need to check that the device in question has userptr
> support.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106013
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>   tests/prime_mmap.c | 15 +++++++++++++++
>   1 file changed, 15 insertions(+)
> 
> diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
> index 0da0aa68..67a6a232 100644
> --- a/tests/prime_mmap.c
> +++ b/tests/prime_mmap.c
> @@ -307,6 +307,19 @@ static int prime_handle_to_fd_no_assert(uint32_t handle, int flags, int *fd_out)
>   	return ret;
>   }
>   
> +static bool has_userptr(void)
> +{
> +	uint32_t handle = 0;
> +	void *ptr;
> +
> +	igt_assert(posix_memalign(&ptr, 4096, 4096) == 0);
> +	if ( __gem_userptr(fd, ptr, 4096, 0, 0, &handle) == 0)
> +		gem_close(fd, handle);
> +	free(ptr);
> +
> +	return handle;
> +}
> +
>   /* test for mmap(dma_buf_export(userptr)) */
>   static void
>   test_userptr(void)
> @@ -315,6 +328,8 @@ test_userptr(void)
>   	void *ptr;
>   	uint32_t handle;
>   
> +	igt_require(has_userptr());
> +
>   	/* create userptr bo */
>   	ret = posix_memalign(&ptr, 4096, BO_SIZE);
>   	igt_assert_eq(ret, 0);
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko
diff mbox

Patch

diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
index 0da0aa68..67a6a232 100644
--- a/tests/prime_mmap.c
+++ b/tests/prime_mmap.c
@@ -307,6 +307,19 @@  static int prime_handle_to_fd_no_assert(uint32_t handle, int flags, int *fd_out)
 	return ret;
 }
 
+static bool has_userptr(void)
+{
+	uint32_t handle = 0;
+	void *ptr;
+
+	igt_assert(posix_memalign(&ptr, 4096, 4096) == 0);
+	if ( __gem_userptr(fd, ptr, 4096, 0, 0, &handle) == 0)
+		gem_close(fd, handle);
+	free(ptr);
+
+	return handle;
+}
+
 /* test for mmap(dma_buf_export(userptr)) */
 static void
 test_userptr(void)
@@ -315,6 +328,8 @@  test_userptr(void)
 	void *ptr;
 	uint32_t handle;
 
+	igt_require(has_userptr());
+
 	/* create userptr bo */
 	ret = posix_memalign(&ptr, 4096, BO_SIZE);
 	igt_assert_eq(ret, 0);