All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 11/18] tests/gem_tiled_pread/pwrite: mark normal tests as basic
Date: Thu, 13 Aug 2015 13:31:34 -0700	[thread overview]
Message-ID: <1439497901-14310-11-git-send-email-jbarnes@virtuousgeek.org> (raw)
In-Reply-To: <1439497901-14310-1-git-send-email-jbarnes@virtuousgeek.org>

These simple tests should always pass.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 tests/gem_tiled_pread.c        | 167 +++++++++++++++++++++--------------------
 tests/gem_tiled_pread_pwrite.c |  48 ++++++------
 2 files changed, 112 insertions(+), 103 deletions(-)

diff --git a/tests/gem_tiled_pread.c b/tests/gem_tiled_pread.c
index fdc5173..92bb649 100644
--- a/tests/gem_tiled_pread.c
+++ b/tests/gem_tiled_pread.c
@@ -112,7 +112,7 @@ calculate_expected(int offset)
 	return (base_y + tile_y) * WIDTH + base_x + tile_x;
 }
 
-igt_simple_main
+igt_main
 {
 	int fd;
 	int i, iter = 100;
@@ -120,96 +120,101 @@ igt_simple_main
 	uint32_t handle;
 	uint32_t devid;
 
-	fd = drm_open_any();
+	igt_fixture {
+		fd = drm_open_any();
 
-	handle = create_bo(fd);
-	gem_get_tiling(fd, handle, &tiling, &swizzle);
+		handle = create_bo(fd);
+		gem_get_tiling(fd, handle, &tiling, &swizzle);
 
-	devid = intel_get_drm_devid(fd);
-
-	if (IS_GEN2(devid)) {
-		tile_height = 16;
-		tile_width = 128;
-		tile_size = 2048;
-	} else {
-		tile_height = 8;
-		tile_width = 512;
-		tile_size = PAGE_SIZE;
+		devid = intel_get_drm_devid(fd);
 	}
 
-	/* Read a bunch of random subsets of the data and check that they come
-	 * out right.
-	 */
-	for (i = 0; i < iter; i++) {
-		int size = WIDTH * HEIGHT * 4;
-		int offset = (random() % size) & ~3;
-		int len = (random() % size) & ~3;
-		int j;
+	igt_subtest("basic") {
 
-		if (len == 0)
-			len = 4;
+		if (IS_GEN2(devid)) {
+			tile_height = 16;
+			tile_width = 128;
+			tile_size = 2048;
+		} else {
+			tile_height = 8;
+			tile_width = 512;
+			tile_size = PAGE_SIZE;
+		}
 
-		if (offset + len > size)
-			len = size - offset;
+		/* Read a bunch of random subsets of the data and check that they come
+		 * out right.
+		 */
+		for (i = 0; i < iter; i++) {
+			int size = WIDTH * HEIGHT * 4;
+			int offset = (random() % size) & ~3;
+			int len = (random() % size) & ~3;
+			int j;
 
-		if (i == 0) {
-			offset = 0;
-			len = size;
-		}
+			if (len == 0)
+				len = 4;
 
-		gem_read(fd, handle, offset, linear, len);
+			if (offset + len > size)
+				len = size - offset;
 
-		/* Translate from offsets in the read buffer to the swizzled
-		 * address that it corresponds to.  This is the opposite of
-		 * what Mesa does (calculate offset to be read given the linear
-		 * offset it's looking for).
-		 */
-		for (j = offset; j < offset + len; j += 4) {
-			uint32_t expected_val, found_val;
-			int swizzled_offset;
-			const char *swizzle_str;
-
-			switch (swizzle) {
-			case I915_BIT_6_SWIZZLE_NONE:
-				swizzled_offset = j;
-				swizzle_str = "none";
-				break;
-			case I915_BIT_6_SWIZZLE_9:
-				swizzled_offset = j ^
-					swizzle_bit(9, j);
-				swizzle_str = "bit9";
-				break;
-			case I915_BIT_6_SWIZZLE_9_10:
-				swizzled_offset = j ^
-					swizzle_bit(9, j) ^
-					swizzle_bit(10, j);
-				swizzle_str = "bit9^10";
-				break;
-			case I915_BIT_6_SWIZZLE_9_11:
-				swizzled_offset = j ^
-					swizzle_bit(9, j) ^
-					swizzle_bit(11, j);
-				swizzle_str = "bit9^11";
-				break;
-			case I915_BIT_6_SWIZZLE_9_10_11:
-				swizzled_offset = j ^
-					swizzle_bit(9, j) ^
-					swizzle_bit(10, j) ^
-					swizzle_bit(11, j);
-				swizzle_str = "bit9^10^11";
-				break;
-			default:
-				igt_assert_f(0, "Bad swizzle bits; %d\n",
-					     swizzle);
+			if (i == 0) {
+				offset = 0;
+				len = size;
+			}
+
+			gem_read(fd, handle, offset, linear, len);
+
+			/* Translate from offsets in the read buffer to the swizzled
+			 * address that it corresponds to.  This is the opposite of
+			 * what Mesa does (calculate offset to be read given the linear
+			 * offset it's looking for).
+			 */
+			for (j = offset; j < offset + len; j += 4) {
+				uint32_t expected_val, found_val;
+				int swizzled_offset;
+				const char *swizzle_str;
+
+				switch (swizzle) {
+				case I915_BIT_6_SWIZZLE_NONE:
+					swizzled_offset = j;
+					swizzle_str = "none";
+					break;
+				case I915_BIT_6_SWIZZLE_9:
+					swizzled_offset = j ^
+						swizzle_bit(9, j);
+					swizzle_str = "bit9";
+					break;
+				case I915_BIT_6_SWIZZLE_9_10:
+					swizzled_offset = j ^
+						swizzle_bit(9, j) ^
+						swizzle_bit(10, j);
+					swizzle_str = "bit9^10";
+					break;
+				case I915_BIT_6_SWIZZLE_9_11:
+					swizzled_offset = j ^
+						swizzle_bit(9, j) ^
+						swizzle_bit(11, j);
+					swizzle_str = "bit9^11";
+					break;
+				case I915_BIT_6_SWIZZLE_9_10_11:
+					swizzled_offset = j ^
+						swizzle_bit(9, j) ^
+						swizzle_bit(10, j) ^
+						swizzle_bit(11, j);
+					swizzle_str = "bit9^10^11";
+					break;
+				default:
+					igt_assert_f(0, "Bad swizzle bits; %d\n",
+						     swizzle);
+				}
+				expected_val = calculate_expected(swizzled_offset);
+				found_val = linear[(j - offset) / 4];
+				igt_assert_f(expected_val == found_val,
+					     "Bad read [%d]: %d instead of %d at 0x%08x "
+					     "for read from 0x%08x to 0x%08x, swizzle=%s\n",
+					     i, found_val, expected_val, j,
+					     offset, offset + len,
+					     swizzle_str);
 			}
-			expected_val = calculate_expected(swizzled_offset);
-			found_val = linear[(j - offset) / 4];
-			igt_assert_f(expected_val == found_val,
-				     "Bad read [%d]: %d instead of %d at 0x%08x "
-				     "for read from 0x%08x to 0x%08x, swizzle=%s\n",
-				     i, found_val, expected_val, j,
-				     offset, offset + len,
-				     swizzle_str);
 		}
 	}
 
diff --git a/tests/gem_tiled_pread_pwrite.c b/tests/gem_tiled_pread_pwrite.c
index 3d8fdc9..efb56d5 100644
--- a/tests/gem_tiled_pread_pwrite.c
+++ b/tests/gem_tiled_pread_pwrite.c
@@ -101,7 +101,7 @@ create_bo(int fd)
 	return handle;
 }
 
-igt_simple_main
+igt_main
 {
 	int fd;
 	uint32_t *data;
@@ -109,34 +109,38 @@ igt_simple_main
 	uint32_t tiling, swizzle;
 	uint32_t handle, handle_target;
 	int count;
-	
-	fd = drm_open_any();
-	count = SLOW_QUICK(intel_get_total_ram_mb() * 9 / 10, 8) ;
 
-	for (i = 0; i < count/2; i++) {
-		current_tiling_mode = I915_TILING_X;
+	igt_fixture {
+		fd = drm_open_any();
+		count = SLOW_QUICK(intel_get_total_ram_mb() * 9 / 10, 8);
+	}
+
+	igt_subtest("basic") {
+		for (i = 0; i < count/2; i++) {
+			current_tiling_mode = I915_TILING_X;
 
-		handle = create_bo_and_fill(fd);
-		gem_get_tiling(fd, handle, &tiling, &swizzle);
+			handle = create_bo_and_fill(fd);
+			gem_get_tiling(fd, handle, &tiling, &swizzle);
 
-		gem_read(fd, handle, 0, linear, sizeof(linear));
+			gem_read(fd, handle, 0, linear, sizeof(linear));
 
-		handle_target = create_bo(fd);
-		gem_write(fd, handle_target, 0, linear, sizeof(linear));
+			handle_target = create_bo(fd);
+			gem_write(fd, handle_target, 0, linear, sizeof(linear));
 
-		/* Check the target bo's contents. */
-		data = gem_mmap(fd, handle_target, sizeof(linear), PROT_READ | PROT_WRITE);
-		for (j = 0; j < WIDTH*HEIGHT; j++)
-			igt_assert_f(data[j] == j,
-				     "mismatch at %i: %i\n",
-				     j, data[j]);
-		munmap(data, sizeof(linear));
+			/* Check the target bo's contents. */
+			data = gem_mmap(fd, handle_target, sizeof(linear), PROT_READ | PROT_WRITE);
+			for (j = 0; j < WIDTH*HEIGHT; j++)
+				igt_assert_f(data[j] == j,
+					     "mismatch at %i: %i\n",
+					     j, data[j]);
+			munmap(data, sizeof(linear));
 
-		/* Leak both bos so that we use all of system mem! */
-		gem_madvise(fd, handle_target, I915_MADV_DONTNEED);
-		gem_madvise(fd, handle, I915_MADV_DONTNEED);
+			/* Leak both bos so that we use all of system mem! */
+			gem_madvise(fd, handle_target, I915_MADV_DONTNEED);
+			gem_madvise(fd, handle, I915_MADV_DONTNEED);
 
-		igt_progress("gem_tiled_pread_pwrite: ", i, count/2);
+			igt_progress("gem_tiled_pread_pwrite: ", i, count/2);
+		}
 	}
 
 	close(fd);
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2015-08-13 20:54 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-13 20:31 [PATCH 01/18] tests/gem_storedw_loop: add new store_dword test to unify per-ring ones Jesse Barnes
2015-08-13 20:31 ` [PATCH 02/18] tests/drv_module_reload: rename drv_module_reload to include in BATs Jesse Barnes
2015-08-14 12:20   ` Daniel Vetter
2015-08-13 20:31 ` [PATCH 03/18] tests/drv_module_reload_basic: use linear_blits after module_reload for sanity check Jesse Barnes
2015-08-14 12:22   ` Daniel Vetter
2015-08-14 15:22     ` Jesse Barnes
2015-08-13 20:31 ` [PATCH 04/18] tests/drm_import_export: mark flink and prime tests as basic Jesse Barnes
2015-08-14 12:26   ` Daniel Vetter
2015-08-14 15:28     ` Jesse Barnes
2015-08-13 20:31 ` [PATCH 05/18] tests/drv_getparams: mark EU and subslice fetch " Jesse Barnes
2015-08-14 12:27   ` Daniel Vetter
2015-08-14 15:23     ` Jesse Barnes
2015-08-13 20:31 ` [PATCH 06/18] tests/drv_suspend: mark sysfs tests " Jesse Barnes
2015-08-14 12:29   ` Daniel Vetter
2015-08-14 15:29     ` Jesse Barnes
2015-08-14 16:01       ` Daniel Vetter
2015-08-14 16:10         ` Jesse Barnes
2015-08-13 20:31 ` [PATCH 07/18] tests/gem_ctx_exec: mark lrc lite restore " Jesse Barnes
2015-08-14 12:32   ` Daniel Vetter
2015-08-14 15:31     ` Jesse Barnes
2015-08-14 16:03       ` Daniel Vetter
2015-08-13 20:31 ` [PATCH 08/18] tests/gem_mmap: mark basic object creation tests " Jesse Barnes
2015-08-14 12:33   ` Daniel Vetter
2015-08-14 12:37     ` Chris Wilson
2015-08-14 12:54       ` Chris Wilson
2015-08-14 15:31     ` Jesse Barnes
2015-08-14 16:05       ` Daniel Vetter
2015-08-13 20:31 ` [PATCH 09/18] tests/gem_mmap_gtt: mark basic access and copy " Jesse Barnes
2015-08-14 12:35   ` Daniel Vetter
2015-08-13 20:31 ` [PATCH 10/18] tests/gem_pread/pwrite: mark normal " Jesse Barnes
2015-08-14 12:36   ` Daniel Vetter
2015-08-13 20:31 ` Jesse Barnes [this message]
2015-08-14 12:41   ` [PATCH 11/18] tests/gem_tiled_pread/pwrite: " Daniel Vetter
2015-08-14 15:39     ` Jesse Barnes
2015-08-13 20:31 ` [PATCH 12/18] tests/kms_addfb: mark simple fb creation " Jesse Barnes
2015-08-14 12:42   ` Daniel Vetter
2015-08-13 20:31 ` [PATCH 13/18] tests/kms_vblank: mark accuracy test " Jesse Barnes
2015-08-14 12:44   ` Daniel Vetter
2015-08-14 12:47     ` Daniel Vetter
2015-08-14 15:47     ` Jesse Barnes
2015-08-13 20:31 ` [PATCH 14/18] tests/pm_backlight: mark simple " Jesse Barnes
2015-08-14 12:48   ` Daniel Vetter
2015-08-13 20:31 ` [PATCH 15/18] tests/pm_rpm: mark RTE and D3 tests " Jesse Barnes
2015-08-14 12:50   ` Daniel Vetter
2015-08-14 13:09     ` Paulo Zanoni
2015-08-14 15:48     ` Jesse Barnes
2015-08-14 16:06       ` Daniel Vetter
2015-08-13 20:31 ` [PATCH 16/18] tests/kms_flip: add basic tests for flip, flip vs dpms, and flip modeset Jesse Barnes
2015-08-14 12:56   ` Daniel Vetter
2015-08-14 16:07     ` Jesse Barnes
2015-08-13 20:31 ` [PATCH 17/18] tests/kms_setmode: mark simple clone test as basic Jesse Barnes
2015-08-14 12:57   ` Daniel Vetter
2015-08-13 20:31 ` [PATCH 18/18] gitignore: ignore more files Jesse Barnes
2015-08-14  8:09   ` Daniel Vetter
2015-08-14 15:20     ` Jesse Barnes
2015-08-14 16:07       ` Daniel Vetter
2015-08-14 16:11         ` Jesse Barnes
2015-08-17  7:48           ` Jani Nikula
2015-08-14 12:19 ` [PATCH 01/18] tests/gem_storedw_loop: add new store_dword test to unify per-ring ones Daniel Vetter
2015-08-14 15:21   ` Jesse Barnes
2015-08-14 16:09     ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1439497901-14310-11-git-send-email-jbarnes@virtuousgeek.org \
    --to=jbarnes@virtuousgeek.org \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.