diff mbox

[i-g-t] tests/perf: skip config tests on older kernels

Message ID 20171208153915.28740-1-lionel.g.landwerlin@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lionel Landwerlin Dec. 8, 2017, 3:39 p.m. UTC
We mostly run tests on the most recent kernels but those are failing
on < 4.14.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
---
 tests/perf.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Comments

Chris Wilson Dec. 8, 2017, 3:44 p.m. UTC | #1
Quoting Lionel Landwerlin (2017-12-08 15:39:15)
> We mostly run tests on the most recent kernels but those are failing
> on < 4.14.
> 
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> ---
>  tests/perf.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/tests/perf.c b/tests/perf.c
> index 969b8c74..71f64caf 100644
> --- a/tests/perf.c
> +++ b/tests/perf.c
> @@ -3964,6 +3964,17 @@ static void i915_perf_remove_config(int fd, uint64_t config_id)
>                                 &config_id), 0);
>  }
>  
> +static bool has_i915_perf_userspace_config(int fd)
> +{
> +       uint64_t config = 0;
> +       int ret = igt_ioctl(fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG, &config);
> +       igt_assert_eq(ret, -1);
> +
> +       igt_debug("errno=%i\n", errno);
> +
> +       return errno != EINVAL;
> +}
> +
>  static void
>  test_invalid_create_userspace_config(void)
>  {
> @@ -3973,6 +3984,8 @@ test_invalid_create_userspace_config(void)
>         uint32_t mux_regs[] = { 0x9888 /* NOA_WRITE */, 0x0 };
>         uint32_t invalid_mux_regs[] = { 0x12345678 /* invalid register */, 0x0 };
>  
> +       igt_skip_on(!has_i915_perf_userspace_config(drm_fd));

If you write igt_skip_on(!cond), think igt_require(cond). It just
produces a more readable string.
-Chris
diff mbox

Patch

diff --git a/tests/perf.c b/tests/perf.c
index 969b8c74..71f64caf 100644
--- a/tests/perf.c
+++ b/tests/perf.c
@@ -3964,6 +3964,17 @@  static void i915_perf_remove_config(int fd, uint64_t config_id)
 				&config_id), 0);
 }
 
+static bool has_i915_perf_userspace_config(int fd)
+{
+	uint64_t config = 0;
+	int ret = igt_ioctl(fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG, &config);
+	igt_assert_eq(ret, -1);
+
+	igt_debug("errno=%i\n", errno);
+
+	return errno != EINVAL;
+}
+
 static void
 test_invalid_create_userspace_config(void)
 {
@@ -3973,6 +3984,8 @@  test_invalid_create_userspace_config(void)
 	uint32_t mux_regs[] = { 0x9888 /* NOA_WRITE */, 0x0 };
 	uint32_t invalid_mux_regs[] = { 0x12345678 /* invalid register */, 0x0 };
 
+	igt_skip_on(!has_i915_perf_userspace_config(drm_fd));
+
 	memset(&config, 0, sizeof(config));
 
 	/* invalid uuid */
@@ -4032,6 +4045,8 @@  test_invalid_remove_userspace_config(void)
 	uint64_t config_id, wrong_config_id = 999999999;
 	char path[512];
 
+	igt_skip_on(!has_i915_perf_userspace_config(drm_fd));
+
 	snprintf(path, sizeof(path), "/sys/class/drm/card%d/metrics/%s/id", card, uuid);
 
 	/* Destroy previous configuration if present */
@@ -4090,6 +4105,8 @@  test_create_destroy_userspace_config(void)
 	};
 	char path[512];
 
+	igt_skip_on(!has_i915_perf_userspace_config(drm_fd));
+
 	snprintf(path, sizeof(path), "/sys/class/drm/card%d/metrics/%s/id", card, uuid);
 
 	/* Destroy previous configuration if present */
@@ -4170,6 +4187,8 @@  test_whitelisted_registers_userspace_config(void)
 		0xe65c
 	};
 
+	igt_skip_on(!has_i915_perf_userspace_config(drm_fd));
+
 	snprintf(path, sizeof(path), "/sys/class/drm/card%d/metrics/%s/id", card, uuid);
 
 	if (try_read_u64_file(path, &config_id))