[PATCH i-g-t] tests/xe_eudebug.c: Enhance memory access testcases
Dominik Grzegorzek
dominik.grzegorzek at intel.com
Thu Dec 19 18:48:26 UTC 2024
UMD tests revealed issues with memory read/write operations when
accessing data at any nonzero offset within a VMA. Address this by
verifying access to a buffer object at random unaligned offset.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek at intel.com>
---
tests/intel/xe_eudebug.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/tests/intel/xe_eudebug.c b/tests/intel/xe_eudebug.c
index d9281f78f..51d02e06c 100644
--- a/tests/intel/xe_eudebug.c
+++ b/tests/intel/xe_eudebug.c
@@ -1556,6 +1556,7 @@ static void debugger_test_vma(struct xe_eudebug_debugger *d,
struct drm_xe_eudebug_vm_open vo = { 0, };
uint64_t *v1, *v2;
uint64_t items = va_length / sizeof(uint64_t);
+ uint64_t offset;
int fd;
int r, i;
@@ -1573,14 +1574,24 @@ static void debugger_test_vma(struct xe_eudebug_debugger *d,
r = pread(fd, v1, va_length, va_start);
igt_assert_eq(r, va_length);
+ for (i = 0; i < items; i++)
+ igt_assert_eq(v1[i], va_start + i);
+
+ /* random unaligned offset within the vm */
+ offset = 1 + random() % (va_length / 2);
+ r = pread(fd, (char *)v1 + offset, va_length - offset, va_start + offset);
+ igt_assert_eq(r, va_length - offset);
for (i = 0; i < items; i++)
igt_assert_eq(v1[i], va_start + i);
for (i = 0; i < items; i++)
v1[i] = va_start + i + 1;
- r = pwrite(fd, v1, va_length, va_start);
- igt_assert_eq(r, va_length);
+ r = pwrite(fd, v1, offset, va_start);
+ igt_assert_eq(r, offset);
+
+ r = pwrite(fd, (char *)v1 + offset, va_length - offset, va_start + offset);
+ igt_assert_eq(r, va_length - offset);
lseek(fd, va_start, SEEK_SET);
r = read(fd, v2, va_length);
--
2.34.1
More information about the igt-dev
mailing list