Skip to contentSkip to conversation

Test cases for fbdev

PATCH Superseded Thomas Zimmermann 5 participants 10 messages Nov 3, 2020

v1 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

cover Test cases for fbdev

This patchset adds read and write tests for fbdev. It compares the content of the framebuffer and reference buffer. A number of the special cases near the EOF are also tested.

Depending on the implementation (sys, cfb), fbdev read/write changes its semantics. Together with a kernel patches [1] these test cases intend to provide a reference.

[1] https://patchwork.freedesktop.org/series/80038/

Thomas Zimmermann (2):
tests/fbdev: Store framebuffer pointer at function scope tests/fbdev: Add tests for read/write ops on framebuffer

 tests/fbdev.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 83 insertions(+), 2 deletions(-)

--
2.29.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#1 lore raw

PATCH 1/2 tests/fbdev: Store framebuffer pointer at function scope

---
 tests/fbdev.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
tests/fbdev.c +3 -2
index e5efeb93..11df954d 100644
@@ -42,6 +42,7 @@ igt_main
 	struct fb_var_screeninfo var_info;
 	struct fb_fix_screeninfo fix_info;
 	int fd = -1;
+	void *map = NULL;
 
 	/*
 	 * Should this test focus on the fbdev independent of any drm driver,
@@ -71,7 +72,6 @@ igt_main
 	}
 
 	igt_subtest("mmap") {
-		void *map;
 
 		igt_require(fix_info.smem_len);
 
@@ -80,10 +80,11 @@ igt_main
 		igt_assert(map != MAP_FAILED);
 
 		memset(map, 0, fix_info.smem_len);
-		munmap(map, fix_info.smem_len);
 	}
 
 	igt_fixture {
+		if (map && map != MAP_FAILED)
+			munmap(map, fix_info.smem_len);
 		close(fd);
 	}
 }
Signature · 6 lines
2.29.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#2 lore raw

Re: [igt-dev] [PATCH 1/2] tests/fbdev: Store framebuffer pointer at function scope

Quoted 2 lines · Thomas Zimmermann

Quick intro to igt subtests: They can be enumerated without running them (--list-subtest), which skips everything in these blocks, and they can be run individually (with --run-subtest).

This means if you extract setup code into common code, you have to pull it all out into igt_fixtures. But that also complicates the test flow if e.g. another test would be trying to unload the fbdev driver, so generally only a good idea if you need a given pieces of setup for all tests (or a set of tests in an igt_subtest_group) and the code is expensive enough to warrant the extraction.

I'd just extract this into an fbdev mmap helper here that you can call from test functions as needed. That's simpler.
-Daniel

Quoted 44 lines
---
 tests/fbdev.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
tests/fbdev.c +3 -3
index e5efeb93..11df954d 100644
@@ -42,6 +42,7 @@ igt_main
        struct fb_var_screeninfo var_info;
        struct fb_fix_screeninfo fix_info;
        int fd = -1;
+       void *map = NULL;
 
        /*
         * Should this test focus on the fbdev independent of any drm driver,
@@ -71,7 +72,6 @@ igt_main
        }
 
        igt_subtest("mmap") {
-               void *map;
 
                igt_require(fix_info.smem_len);
 
@@ -80,10 +80,11 @@ igt_main
                igt_assert(map != MAP_FAILED);
 
                memset(map, 0, fix_info.smem_len);
-               munmap(map, fix_info.smem_len);
        }
 
        igt_fixture {
+               if (map && map != MAP_FAILED)
+                       munmap(map, fix_info.smem_len);
                close(fd);
        }
 }
--

2.29.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

Signature · 7 lines
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#3 lore raw

PATCH 2/2 tests/fbdev: Add tests for read/write ops on framebuffer

In reply to Thomas Zimmermann

Read and write tests check the read and written buffer against the content of the mapped framebuffer. Fbdev has some specific behavior when reading/writing near the EOF, which the eof test checks.

---
 tests/fbdev.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)
tests/fbdev.c +80 -0
index 11df954d..045b0874 100644
@@ -25,6 +25,7 @@
 
 #include "igt.h"
 
+#include <errno.h>
 #include <fcntl.h>
 #include <string.h>
 #include <sys/ioctl.h>
@@ -43,6 +44,7 @@ igt_main
 	struct fb_fix_screeninfo fix_info;
 	int fd = -1;
 	void *map = NULL;
+	void *buf = NULL;
 
 	/*
 	 * Should this test focus on the fbdev independent of any drm driver,
@@ -82,7 +84,85 @@ igt_main
 		memset(map, 0, fix_info.smem_len);
 	}
 
+	igt_subtest("read") {
+		ssize_t ret;
+		int cmp;
+
+		/* allocate two additional byte for eof test */
+		buf = malloc(fix_info.smem_len + 2);
+		igt_assert(buf);
+
+		/* framebuffer should be 0 from mmap test */
+		ret = pread(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0\n");
+
+		/* fill framebuffer with 0x55 and compare again */
+		memset(map, 0x55, fix_info.smem_len);
+		ret = pread(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0x55\n");
+	}
+
+	igt_subtest("write") {
+		ssize_t ret;
+		int cmp;
+
+		/* clear framebuffer and compare again */
+		memset(buf, 0, fix_info.smem_len);
+		ret = pwrite(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pwrite failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "write buffer differs from mapped framebuffer for 0\n");
+	}
+
+	igt_subtest("eof") {
+		unsigned long lastindex = fix_info.smem_len - 1;
+		unsigned char *maplast = &((unsigned char *)map)[lastindex];
+		unsigned char *buflast = &((unsigned char *)buf)[lastindex];
+		long long ret;
+
+		*buflast = 0x55;
+
+		/* write across EOF; set remaining bytes */
+		ret = (long long)pwrite(fd, buflast, 2, lastindex);
+		igt_require_f(ret == 1, "write crossed EOF, ret=%lld\n", ret);
+		igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* write at EOF; get ENOSPC */
+		ret = (long long)pwrite(fd, &buflast[1], 1, lastindex + 1);
+		igt_require_f((ret == -1) && (errno == ENOSPC), "write at EOF, ret=%lld\n", ret);
+
+		*maplast = 0;
+
+		/* write final byte */
+		ret = (long long)pwrite(fd, buflast, 1, lastindex);
+		igt_require_f(ret == 1, "write before EOF, ret=%lld\n", ret);
+		igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* write after EOF; get EFBIG */
+		ret = (long long)pwrite(fd, &buflast[2], 1, lastindex + 2);
+		igt_require_f((ret == -1) && (errno == EFBIG), "write after EOF, ret=%lld\n", ret);
+
+		*maplast = 0;
+
+		/* read across the EOF; get remaining bytes */
+		ret = (long long)pread(fd, buflast, 2, lastindex);
+		igt_require_f(ret == 1, "read before EOF\n");
+		igt_require_f(*maplast == *buflast, "read buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* read after EOF; get 0 */
+		ret = (long long)pread(fd, &buflast[1], 1, lastindex + 1);
+		igt_require_f(ret == 0, "read at EOF, ret=%lld\n", ret);
+	}
+
 	igt_fixture {
+		free(buf);
 		if (map && map != MAP_FAILED)
 			munmap(map, fix_info.smem_len);
 		close(fd);
Signature · 6 lines
2.29.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#4 lore raw

Re: [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer

Quoted 23 lines · Thomas Zimmermann

Read and write tests check the read and written buffer against the content of the mapped framebuffer. Fbdev has some specific behavior when reading/writing near the EOF, which the eof test checks.

---
 tests/fbdev.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)
tests/fbdev.c +1 -0
index 11df954d..045b0874 100644
@@ -25,6 +25,7 @@
 
 #include "igt.h"
 
+#include <errno.h>
 #include <fcntl.h>
 #include <string.h>
 #include <sys/ioctl.h>

tests/fbdev.c igt_main · line 47

Quoted 4 lines
tests/fbdev.c +1 -0
@@ -43,6 +44,7 @@ igt_main
        struct fb_fix_screeninfo fix_info;
        int fd = -1;
        void *map = NULL;
+       void *buf = NULL;

Same thing here as with the shared map, this blows up if you only run specific subtests.

Also I think this is getting unwieldy, and we should extract subtests into functions that get called for local scoping and everything.

Quoted 72 lines
tests/fbdev.c +65 -0
        /*
         * Should this test focus on the fbdev independent of any drm driver,
@@ -82,7 +84,85 @@ igt_main
                memset(map, 0, fix_info.smem_len);
        }
 
+       igt_subtest("read") {
+               ssize_t ret;
+               int cmp;
+
+               /* allocate two additional byte for eof test */
+               buf = malloc(fix_info.smem_len + 2);
+               igt_assert(buf);
+
+               /* framebuffer should be 0 from mmap test */
+               ret = pread(fd, buf, fix_info.smem_len, 0);
+               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+               cmp = memcmp(map, buf, fix_info.smem_len);
+               igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0\n");
+
+               /* fill framebuffer with 0x55 and compare again */
+               memset(map, 0x55, fix_info.smem_len);
+               ret = pread(fd, buf, fix_info.smem_len, 0);
+               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+               cmp = memcmp(map, buf, fix_info.smem_len);
+               igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0x55\n");
+       }
+
+       igt_subtest("write") {
+               ssize_t ret;
+               int cmp;
+
+               /* clear framebuffer and compare again */
+               memset(buf, 0, fix_info.smem_len);
+               ret = pwrite(fd, buf, fix_info.smem_len, 0);
+               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pwrite failed\n");
+               cmp = memcmp(map, buf, fix_info.smem_len);
+               igt_require_f(!cmp, "write buffer differs from mapped framebuffer for 0\n");
+       }
+
+       igt_subtest("eof") {
+               unsigned long lastindex = fix_info.smem_len - 1;
+               unsigned char *maplast = &((unsigned char *)map)[lastindex];
+               unsigned char *buflast = &((unsigned char *)buf)[lastindex];
+               long long ret;
+
+               *buflast = 0x55;
+
+               /* write across EOF; set remaining bytes */
+               ret = (long long)pwrite(fd, buflast, 2, lastindex);
+               igt_require_f(ret == 1, "write crossed EOF, ret=%lld\n", ret);
+               igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+               /* write at EOF; get ENOSPC */
+               ret = (long long)pwrite(fd, &buflast[1], 1, lastindex + 1);
+               igt_require_f((ret == -1) && (errno == ENOSPC), "write at EOF, ret=%lld\n", ret);
+
+               *maplast = 0;
+
+               /* write final byte */
+               ret = (long long)pwrite(fd, buflast, 1, lastindex);
+               igt_require_f(ret == 1, "write before EOF, ret=%lld\n", ret);
+               igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+               /* write after EOF; get EFBIG */
+               ret = (long long)pwrite(fd, &buflast[2], 1, lastindex + 2);
+               igt_require_f((ret == -1) && (errno == EFBIG), "write after EOF, ret=%lld\n", ret);
+
+               *maplast = 0;

tests/fbdev.c igt_main · line 161

Quoted 10 lines
tests/fbdev.c +10 -0
+
+               /* read across the EOF; get remaining bytes */
+               ret = (long long)pread(fd, buflast, 2, lastindex);
+               igt_require_f(ret == 1, "read before EOF\n");
+               igt_require_f(*maplast == *buflast, "read buffer differs from mapped framebuffer at final byte, "
+                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+               /* read after EOF; get 0 */
+               ret = (long long)pread(fd, &buflast[1], 1, lastindex + 1);
+               igt_require_f(ret == 0, "read at EOF, ret=%lld\n", ret);

Maybe also a NULL pointer tests which checks we get an EFAULT?

Another corner case is a read/write that's not PAGE aligned, e.g. from PAGE_SIZE/2 to PAGE_SIZE + PAGE_SIZE/2 (assuming the buffer is at least 2 pages ofc).

Otherwise test logic looks complete to me. Thanks for creating these. -Daniel

Quoted 14 lines
tests/fbdev.c +3 -1
+       }
+
        igt_fixture {
+               free(buf);
                if (map && map != MAP_FAILED)
                        munmap(map, fix_info.smem_len);
                close(fd);
--

2.29.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

Signature · 7 lines
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#5 lore raw

Re: [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer

Quoted 121 lines · Daniel Vetter
Quoted 23 lines · Thomas Zimmermann

Read and write tests check the read and written buffer against the content of the mapped framebuffer. Fbdev has some specific behavior when reading/writing near the EOF, which the eof test checks.

---
 tests/fbdev.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)
tests/fbdev.c +1 -0
index 11df954d..045b0874 100644
@@ -25,6 +25,7 @@
 
 #include "igt.h"
 
+#include <errno.h>
 #include <fcntl.h>
 #include <string.h>
 #include <sys/ioctl.h>

tests/fbdev.c igt_main · line 47

Quoted 4 lines
tests/fbdev.c +1 -0
@@ -43,6 +44,7 @@ igt_main
        struct fb_fix_screeninfo fix_info;
        int fd = -1;
        void *map = NULL;
+       void *buf = NULL;

Same thing here as with the shared map, this blows up if you only run specific subtests.

Also I think this is getting unwieldy, and we should extract subtests into functions that get called for local scoping and everything.

Quoted 72 lines
tests/fbdev.c +65 -0
        /*
         * Should this test focus on the fbdev independent of any drm driver,
@@ -82,7 +84,85 @@ igt_main
                memset(map, 0, fix_info.smem_len);
        }
 
+       igt_subtest("read") {
+               ssize_t ret;
+               int cmp;
+
+               /* allocate two additional byte for eof test */
+               buf = malloc(fix_info.smem_len + 2);
+               igt_assert(buf);
+
+               /* framebuffer should be 0 from mmap test */
+               ret = pread(fd, buf, fix_info.smem_len, 0);
+               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+               cmp = memcmp(map, buf, fix_info.smem_len);
+               igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0\n");
+
+               /* fill framebuffer with 0x55 and compare again */
+               memset(map, 0x55, fix_info.smem_len);
+               ret = pread(fd, buf, fix_info.smem_len, 0);
+               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+               cmp = memcmp(map, buf, fix_info.smem_len);
+               igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0x55\n");
+       }
+
+       igt_subtest("write") {
+               ssize_t ret;
+               int cmp;
+
+               /* clear framebuffer and compare again */
+               memset(buf, 0, fix_info.smem_len);
+               ret = pwrite(fd, buf, fix_info.smem_len, 0);
+               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pwrite failed\n");
+               cmp = memcmp(map, buf, fix_info.smem_len);
+               igt_require_f(!cmp, "write buffer differs from mapped framebuffer for 0\n");
+       }
+
+       igt_subtest("eof") {
+               unsigned long lastindex = fix_info.smem_len - 1;
+               unsigned char *maplast = &((unsigned char *)map)[lastindex];
+               unsigned char *buflast = &((unsigned char *)buf)[lastindex];
+               long long ret;
+
+               *buflast = 0x55;
+
+               /* write across EOF; set remaining bytes */
+               ret = (long long)pwrite(fd, buflast, 2, lastindex);
+               igt_require_f(ret == 1, "write crossed EOF, ret=%lld\n", ret);
+               igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+               /* write at EOF; get ENOSPC */
+               ret = (long long)pwrite(fd, &buflast[1], 1, lastindex + 1);
+               igt_require_f((ret == -1) && (errno == ENOSPC), "write at EOF, ret=%lld\n", ret);
+
+               *maplast = 0;
+
+               /* write final byte */
+               ret = (long long)pwrite(fd, buflast, 1, lastindex);
+               igt_require_f(ret == 1, "write before EOF, ret=%lld\n", ret);
+               igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+               /* write after EOF; get EFBIG */
+               ret = (long long)pwrite(fd, &buflast[2], 1, lastindex + 2);
+               igt_require_f((ret == -1) && (errno == EFBIG), "write after EOF, ret=%lld\n", ret);
+
+               *maplast = 0;

tests/fbdev.c igt_main · line 161

Quoted 10 lines
tests/fbdev.c +10 -0
+
+               /* read across the EOF; get remaining bytes */
+               ret = (long long)pread(fd, buflast, 2, lastindex);
+               igt_require_f(ret == 1, "read before EOF\n");
+               igt_require_f(*maplast == *buflast, "read buffer differs from mapped framebuffer at final byte, "
+                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+               /* read after EOF; get 0 */
+               ret = (long long)pread(fd, &buflast[1], 1, lastindex + 1);
+               igt_require_f(ret == 0, "read at EOF, ret=%lld\n", ret);

Maybe also a NULL pointer tests which checks we get an EFAULT?

Quoted 3 lines

Another corner case is a read/write that's not PAGE aligned, e.g. from PAGE_SIZE/2 to PAGE_SIZE + PAGE_SIZE/2 (assuming the buffer is at least 2 pages ofc).

Uh that gives us a read/write size of PAGE_SIZE, so not too interesting. Would need to be more misaligned (maybe even make it odd or something nasty like that, and bigger than one size so we go through the loop once in the kernel code).
-Daniel

Quoted 24 lines

Otherwise test logic looks complete to me. Thanks for creating these. -Daniel

Quoted 10 lines
tests/fbdev.c +3 -1
+       }
+
        igt_fixture {
+               free(buf);
                if (map && map != MAP_FAILED)
                        munmap(map, fix_info.smem_len);
                close(fd);
--

2.29.0

Quoted 4 lines

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

Signature · 7 lines
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#6 lore raw

Re: [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer

In reply to Thomas Zimmermann

Quoting Thomas Zimmermann (2020-11-03 10:48:13)

Quoted 3 lines

Read and write tests check the read and written buffer against the content of the mapped framebuffer. Fbdev has some specific behavior when reading/writing near the EOF, which the eof test checks.

Subtests are run independently. If you need something across multiple tests, put it into a fixture (ideally within a subtest group), or instantiate it per subtest (more common approach with each subtest being its own routine).
-Chris
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#7 lore raw

Re: [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer

In reply to Thomas Zimmermann
Quoted 22 lines · Thomas Zimmermann

Read and write tests check the read and written buffer against the content of the mapped framebuffer. Fbdev has some specific behavior when reading/writing near the EOF, which the eof test checks.

---
 tests/fbdev.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)
tests/fbdev.c +1 -0
index 11df954d..045b0874 100644
@@ -25,6 +25,7 @@
 
 #include "igt.h"
 
+#include <errno.h>
 #include <fcntl.h>
 #include <string.h>
 #include <sys/ioctl.h>

tests/fbdev.c igt_main · line 47

Quoted 4 lines
tests/fbdev.c +1 -0
@@ -43,6 +44,7 @@ igt_main
 	struct fb_fix_screeninfo fix_info;
 	int fd = -1;
 	void *map = NULL;
+	void *buf = NULL;

In addition to what Daniel and Chris already pointed out:

Behind the scenes igt_subtest and igt_fixture use longjmp. Variables in function scope that are assigned after setjmp have unspecified values after longjmp. Translated to IGT terms: Variables declared in igt_main that are assigned to when inside igt_fixture or igt_subtest have unspecified values when inside another such block.

In essence if you move the variables to be shared across multiple tests they need to be moved all the way to global scope.

Signature · 1 line
Petri Latvala
Quoted 96 lines
tests/fbdev.c +78 -0
 	/*
 	 * Should this test focus on the fbdev independent of any drm driver,
@@ -82,7 +84,85 @@ igt_main
 		memset(map, 0, fix_info.smem_len);
 	}
 
+	igt_subtest("read") {
+		ssize_t ret;
+		int cmp;
+
+		/* allocate two additional byte for eof test */
+		buf = malloc(fix_info.smem_len + 2);
+		igt_assert(buf);
+
+		/* framebuffer should be 0 from mmap test */
+		ret = pread(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0\n");
+
+		/* fill framebuffer with 0x55 and compare again */
+		memset(map, 0x55, fix_info.smem_len);
+		ret = pread(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0x55\n");
+	}
+
+	igt_subtest("write") {
+		ssize_t ret;
+		int cmp;
+
+		/* clear framebuffer and compare again */
+		memset(buf, 0, fix_info.smem_len);
+		ret = pwrite(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pwrite failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "write buffer differs from mapped framebuffer for 0\n");
+	}
+
+	igt_subtest("eof") {
+		unsigned long lastindex = fix_info.smem_len - 1;
+		unsigned char *maplast = &((unsigned char *)map)[lastindex];
+		unsigned char *buflast = &((unsigned char *)buf)[lastindex];
+		long long ret;
+
+		*buflast = 0x55;
+
+		/* write across EOF; set remaining bytes */
+		ret = (long long)pwrite(fd, buflast, 2, lastindex);
+		igt_require_f(ret == 1, "write crossed EOF, ret=%lld\n", ret);
+		igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* write at EOF; get ENOSPC */
+		ret = (long long)pwrite(fd, &buflast[1], 1, lastindex + 1);
+		igt_require_f((ret == -1) && (errno == ENOSPC), "write at EOF, ret=%lld\n", ret);
+
+		*maplast = 0;
+
+		/* write final byte */
+		ret = (long long)pwrite(fd, buflast, 1, lastindex);
+		igt_require_f(ret == 1, "write before EOF, ret=%lld\n", ret);
+		igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* write after EOF; get EFBIG */
+		ret = (long long)pwrite(fd, &buflast[2], 1, lastindex + 2);
+		igt_require_f((ret == -1) && (errno == EFBIG), "write after EOF, ret=%lld\n", ret);
+
+		*maplast = 0;
+
+		/* read across the EOF; get remaining bytes */
+		ret = (long long)pread(fd, buflast, 2, lastindex);
+		igt_require_f(ret == 1, "read before EOF\n");
+		igt_require_f(*maplast == *buflast, "read buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* read after EOF; get 0 */
+		ret = (long long)pread(fd, &buflast[1], 1, lastindex + 1);
+		igt_require_f(ret == 0, "read at EOF, ret=%lld\n", ret);
+	}
+
 	igt_fixture {
+		free(buf);
 		if (map && map != MAP_FAILED)
 			munmap(map, fix_info.smem_len);
 		close(fd);
Signature · 6 lines
2.29.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#8 lore raw

[igt-dev] ✓ Fi.CI.BAT: success for Test cases for fbdev

In reply to Thomas Zimmermann
== Series Details ==

== Series Details ==

Series: Test cases for fbdev
URL : https://patchwork.freedesktop.org/series/83424/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9253 -> IGTPW_5124
====================================================

Summary
-------

**SUCCESS**

No regressions found.

External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html

Known issues
------------

Here are the changes found in IGTPW_5124 that come from known issues:

### IGT changes ###

#### Issues hit ####

* igt@gem_exec_suspend@basic-s0:
- fi-tgl-u2: [PASS][1] -> [FAIL][2] ([i915#1888])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-tgl-u2/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-tgl-u2/igt@[email protected]

* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-apl-guc: [PASS][3] -> [DMESG-WARN][4] ([i915#1635] / [i915#1982])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-apl-guc/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-apl-guc/igt@[email protected]

* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-n3050: [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-bsw-n3050/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-bsw-n3050/igt@[email protected]
- fi-byt-j1900: [PASS][7] -> [DMESG-WARN][8] ([i915#1982])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-byt-j1900/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-byt-j1900/igt@[email protected]

* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- fi-icl-u2: [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-icl-u2/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-icl-u2/igt@[email protected]

#### Possible fixes ####

* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-apl-guc: [DMESG-WARN][11] ([i915#1635] / [i915#1982]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-apl-guc/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-apl-guc/igt@[email protected]

* igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
- fi-icl-u2: [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-icl-u2/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-icl-u2/igt@[email protected]

{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).

[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2524]: https://gitlab.freedesktop.org/drm/intel/issues/2524

Participating hosts (43 -> 38)
------------------------------

Missing (5): fi-ilk-m540 fi-tgl-dsi fi-hsw-4200u fi-bsw-cyan fi-bdw-samus

Build changes
-------------

* CI: CI-20190529 -> None
* IGT: IGT_5830 -> IGTPW_5124

CI-20190529: 20190529
CI_DRM_9253: a8c030d641dc0961d180b866ab6e5e9032dcbdf4 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5124: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html
IGT_5830: 12d370cb57e0cfcb781c87ad9e15e68b17a1f41f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Testlist changes ==

+igt@fbdev@eof
+igt@fbdev@read
+igt@fbdev@write

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#9 lore raw

[igt-dev] ✗ Fi.CI.IGT: failure for Test cases for fbdev

In reply to Thomas Zimmermann
== Series Details ==

== Series Details ==

Series: Test cases for fbdev
URL : https://patchwork.freedesktop.org/series/83424/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9253_full -> IGTPW_5124_full
====================================================

Summary
-------

**FAILURE**

Serious unknown changes coming with IGTPW_5124_full absolutely need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in IGTPW_5124_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html

Possible new issues
-------------------

Here are the unknown changes that may have been introduced in IGTPW_5124_full:

### IGT changes ###

#### Possible regressions ####

* {igt@fbdev@eof} (NEW):
- shard-tglb: NOTRUN -> [CRASH][1] +2 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb3/igt@[email protected]

* {igt@fbdev@read} (NEW):
- shard-kbl: NOTRUN -> [CRASH][2] +2 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl4/igt@[email protected]
- shard-hsw: NOTRUN -> [CRASH][3] +2 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw4/igt@[email protected]
- shard-glk: NOTRUN -> [CRASH][4] +2 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk9/igt@[email protected]

* {igt@fbdev@write} (NEW):
- shard-iclb: NOTRUN -> [CRASH][5] +2 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb1/igt@[email protected]
- shard-snb: NOTRUN -> [CRASH][6] +2 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-snb5/igt@[email protected]

* igt@kms_big_fb@linear-8bpp-rotate-180:
- shard-snb: [PASS][7] -> [FAIL][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-snb2/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-snb6/igt@[email protected]

* igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
- shard-hsw: [PASS][9] -> [INCOMPLETE][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw6/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw7/igt@[email protected]
- shard-glk: [PASS][11] -> [INCOMPLETE][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk9/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk1/igt@[email protected]

* igt@perf_pmu@rc6-runtime-pm:
- shard-iclb: [PASS][13] -> [SKIP][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb2/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@[email protected]

New tests
---------

New tests have been introduced between CI_DRM_9253_full and IGTPW_5124_full:

### New IGT tests (3) ###

* igt@fbdev@eof:
- Statuses : 7 crash(s)
- Exec time: [0.01, 0.02] s

* igt@fbdev@read:
- Statuses : 7 crash(s)
- Exec time: [0.03, 0.21] s

* igt@fbdev@write:
- Statuses : 7 crash(s)
- Exec time: [0.01, 0.02] s

Known issues
------------

Here are the changes found in IGTPW_5124_full that come from known issues:

### IGT changes ###

#### Issues hit ####

* igt@gem_softpin@softpin:
- shard-glk: [PASS][15] -> [DMESG-WARN][16] ([i915#118] / [i915#95])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk6/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk4/igt@[email protected]

* igt@i915_pm_rpm@pm-caching:
- shard-iclb: [PASS][17] -> [SKIP][18] ([i915#579])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb4/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@[email protected]

* igt@kms_color@pipe-c-ctm-blue-to-red:
- shard-kbl: [PASS][19] -> [FAIL][20] ([i915#129])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl1/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl7/igt@[email protected]
- shard-apl: [PASS][21] -> [FAIL][22] ([i915#129] / [i915#1635])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl7/igt@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl6/igt@[email protected]

* igt@kms_cursor_crc@pipe-b-cursor-size-change:
- shard-kbl: [PASS][23] -> [FAIL][24] ([i915#54]) +1 similar issue
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl3/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl2/igt@[email protected]
- shard-apl: [PASS][25] -> [FAIL][26] ([i915#1635] / [i915#54]) +1 similar issue
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl2/igt@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl3/igt@[email protected]

* igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
- shard-apl: [PASS][27] -> [DMESG-WARN][28] ([i915#1635] / [i915#1982]) +4 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl8/igt@[email protected]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl8/igt@[email protected]
- shard-glk: [PASS][29] -> [DMESG-WARN][30] ([i915#1982]) +5 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk5/igt@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk4/igt@[email protected]

* igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
- shard-kbl: [PASS][31] -> [DMESG-WARN][32] ([i915#1982]) +3 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl1/igt@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl3/igt@[email protected]

* igt@kms_fbcon_fbt@fbc-suspend:
- shard-kbl: [PASS][33] -> [DMESG-WARN][34] ([i915#180])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl1/igt@[email protected]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl6/igt@[email protected]

* igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1:
- shard-snb: [PASS][35] -> [INCOMPLETE][36] ([i915#82])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-snb7/igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-snb6/igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1.html

* igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-tglb: [PASS][37] -> [DMESG-WARN][38] ([i915#1982]) +7 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb8/igt@[email protected]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb8/igt@[email protected]

* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][39] -> [SKIP][40] ([fdo#109441]) +1 similar issue
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb8/igt@kms_psr@psr2_primary_mmap_cpu.html

* igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
- shard-apl: [PASS][41] -> [INCOMPLETE][42] ([i915#1635])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl4/igt@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl3/igt@[email protected]
- shard-iclb: [PASS][43] -> [INCOMPLETE][44] ([i915#1078] / [i915#1185])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb3/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@[email protected]
- shard-kbl: [PASS][45] -> [INCOMPLETE][46] ([i915#155])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl4/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl4/igt@[email protected]

* igt@perf@polling-parameterized:
- shard-iclb: [PASS][47] -> [FAIL][48] ([i915#1542])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb8/igt@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb6/igt@[email protected]

* igt@perf_pmu@module-unload:
- shard-iclb: [PASS][49] -> [DMESG-WARN][50] ([i915#1982]) +1 similar issue
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb7/igt@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb6/igt@[email protected]

* igt@perf_pmu@rc6-runtime-pm:
- shard-glk: [PASS][51] -> [SKIP][52] ([fdo#109271]) +1 similar issue
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk4/igt@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk1/igt@[email protected]
- shard-apl: [PASS][53] -> [SKIP][54] ([fdo#109271] / [i915#1635]) +1 similar issue
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl1/igt@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl3/igt@[email protected]
- shard-kbl: [PASS][55] -> [SKIP][56] ([fdo#109271]) +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl6/igt@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl4/igt@[email protected]
- shard-hsw: [PASS][57] -> [SKIP][58] ([fdo#109271]) +1 similar issue
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw1/igt@[email protected]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw7/igt@[email protected]

* igt@syncobj_wait@single-wait-all-for-submit-signaled:
- shard-hsw: [PASS][59] -> [DMESG-WARN][60] ([i915#1982]) +2 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw6/igt@[email protected]
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw6/igt@[email protected]

#### Possible fixes ####

* igt@core_hotunplug@hotrebind-lateclose:
- shard-iclb: [DMESG-WARN][61] ([i915#1982]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@[email protected]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb6/igt@[email protected]

* igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
- shard-hsw: [FAIL][63] ([i915#2261]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw2/igt@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw5/igt@[email protected]

* igt@i915_pm_rpm@pm-tiling:
- shard-hsw: [SKIP][65] ([fdo#109271]) -> [PASS][66] +2 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw4/igt@[email protected]
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw2/igt@[email protected]
- shard-kbl: [SKIP][67] ([fdo#109271]) -> [PASS][68] +1 similar issue
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl7/igt@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl2/igt@[email protected]
- shard-apl: [SKIP][69] ([fdo#109271] / [i915#1635]) -> [PASS][70] +1 similar issue
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl6/igt@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl3/igt@[email protected]
- shard-glk: [SKIP][71] ([fdo#109271]) -> [PASS][72] +1 similar issue
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk1/igt@[email protected]
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk5/igt@[email protected]
- shard-iclb: [SKIP][73] ([i915#579]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb4/igt@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb5/igt@[email protected]

* {igt@kms_async_flips@alternate-sync-async-flip}:
- shard-tglb: [FAIL][75] ([i915#2521]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb2/igt@[email protected]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb2/igt@[email protected]

* {igt@kms_async_flips@async-flip-with-page-flip-events}:
- shard-kbl: [FAIL][77] ([i915#2521]) -> [PASS][78] +1 similar issue
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl6/igt@[email protected]
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl1/igt@[email protected]
- shard-glk: [FAIL][79] ([i915#2521]) -> [PASS][80]
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk4/igt@[email protected]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk2/igt@[email protected]

* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-tglb: [FAIL][81] ([i915#2346]) -> [PASS][82]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb1/igt@[email protected]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb3/igt@[email protected]

* igt@kms_draw_crc@draw-method-xrgb8888-render-untiled:
- shard-glk: [DMESG-WARN][83] ([i915#1982]) -> [PASS][84] +5 similar issues
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk2/igt@[email protected]
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk9/igt@[email protected]

* igt@kms_flip@absolute-wf_vblank-interruptible@a-dp1:
- shard-apl: [DMESG-WARN][85] ([i915#1635] / [i915#1982]) -> [PASS][86] +2 similar issues
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl4/igt@kms_flip@[email protected]
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl6/igt@kms_flip@[email protected]

* igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
- shard-hsw: [INCOMPLETE][87] ([i915#2055]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw4/igt@kms_flip@[email protected]
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw5/igt@kms_flip@[email protected]

* igt@kms_flip_tiling@flip-x-tiled:
- shard-kbl: [DMESG-WARN][89] ([i915#1982]) -> [PASS][90] +3 similar issues
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl1/igt@[email protected]
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl3/igt@[email protected]

* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: [SKIP][91] ([fdo#109441]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@kms_psr@psr2_sprite_mmap_gtt.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html

* igt@kms_psr@suspend:
- shard-iclb: [INCOMPLETE][93] ([i915#1185]) -> [PASS][94]
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@[email protected]
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb3/igt@[email protected]

* igt@kms_vblank@pipe-d-accuracy-idle:
- shard-tglb: [DMESG-WARN][95] ([i915#1982]) -> [PASS][96] +1 similar issue
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb3/igt@[email protected]
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb5/igt@[email protected]

* igt@perf@non-system-wide-paranoid:
- shard-apl: [SKIP][97] ([fdo#109271] / [i915#1354] / [i915#1635]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl4/igt@[email protected]
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl4/igt@[email protected]
- shard-glk: [SKIP][99] ([fdo#109271] / [i915#1354]) -> [PASS][100]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk2/igt@[email protected]
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk8/igt@[email protected]
- shard-iclb: [SKIP][101] ([i915#1354]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@[email protected]
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb7/igt@[email protected]
- shard-kbl: [SKIP][103] ([fdo#109271] / [i915#1354]) -> [PASS][104]
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl7/igt@[email protected]
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl4/igt@[email protected]
- shard-tglb: [SKIP][105] ([i915#1354]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb3/igt@[email protected]
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb3/igt@[email protected]

#### Warnings ####

* igt@i915_pm_backlight@fade_with_suspend:
- shard-tglb: [INCOMPLETE][107] ([i915#1436] / [i915#456]) -> [DMESG-WARN][108] ([i915#2411])
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb7/igt@i915_pm_backlight@fade_with_suspend.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb8/igt@i915_pm_backlight@fade_with_suspend.html

* igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-iclb: [SKIP][109] ([i915#579]) -> [SKIP][110] ([fdo#110892])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@[email protected]
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb4/igt@[email protected]

* igt@i915_pm_rpm@pm-caching:
- shard-tglb: [DMESG-WARN][111] ([i915#2411]) -> [SKIP][112] ([i915#579])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb6/igt@[email protected]
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb1/igt@[email protected]

* igt@i915_pm_rpm@pm-tiling:
- shard-tglb: [SKIP][113] ([i915#579]) -> [DMESG-WARN][114] ([i915#2411])
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb7/igt@[email protected]
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb6/igt@[email protected]

* igt@i915_pm_rpm@system-suspend-execbuf:
- shard-tglb: [INCOMPLETE][115] ([i915#2411] / [i915#456] / [i915#750]) -> [DMESG-WARN][116] ([i915#2411])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb8/igt@[email protected]
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb7/igt@[email protected]

* igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
- shard-apl: [DMESG-FAIL][117] ([fdo#108145] / [i915#1635] / [i915#1982]) -> [FAIL][118] ([fdo#108145] / [i915#1635] / [i915#265])
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl1/igt@[email protected]
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl8/igt@[email protected]

* igt@kms_psr@psr2_cursor_mmap_cpu:
- shard-iclb: [SKIP][119] ([fdo#109441]) -> [DMESG-WARN][120] ([i915#1226])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb8/igt@kms_psr@psr2_cursor_mmap_cpu.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html

* igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
- shard-tglb: [DMESG-WARN][121] ([i915#2411]) -> [DMESG-WARN][122] ([i915#1436])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb6/igt@[email protected]
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb1/igt@[email protected]

* igt@perf_pmu@rc6-runtime-pm:
- shard-tglb: [DMESG-WARN][123] ([i915#2411]) -> [SKIP][124] ([fdo#111719])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb3/igt@[email protected]
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb1/igt@[email protected]

* igt@runner@aborted:
- shard-iclb: [FAIL][125] ([i915#1814] / [i915#483]) -> [FAIL][126] ([i915#1814])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@[email protected]
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@[email protected]
- shard-tglb: [FAIL][127] ([i915#2439]) -> [FAIL][128] ([i915#1602])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb7/igt@[email protected]
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb1/igt@[email protected]
- shard-snb: [FAIL][129] ([i915#2426] / [i915#2439]) -> [FAIL][130] ([i915#2426] / [i915#698])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-snb6/igt@[email protected]
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-snb6/igt@[email protected]

{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).

[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#110892]: https://bugs.freedesktop.org/show_bug.cgi?id=110892
[fdo#111719]: https://bugs.freedesktop.org/show_bug.cgi?id=111719
[i915#1078]: https://gitlab.freedesktop.org/drm/intel/issues/1078
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185
[i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
[i915#129]: https://gitlab.freedesktop.org/drm/intel/issues/129
[i915#1354]: https://gitlab.freedesktop.org/drm/intel/issues/1354
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
[i915#2261]: https://gitlab.freedesktop.org/drm/intel/issues/2261
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
[i915#2439]: https://gitlab.freedesktop.org/drm/intel/issues/2439
[i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
[i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579
[i915#698]: https://gitlab.freedesktop.org/drm/intel/issues/698
[i915#750]: https://gitlab.freedesktop.org/drm/intel/issues/750
[i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95

Participating hosts (11 -> 8)
------------------------------

Missing (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7

Build changes
-------------

* CI: CI-20190529 -> None
* IGT: IGT_5830 -> IGTPW_5124
* Piglit: piglit_4509 -> None

CI-20190529: 20190529
CI_DRM_9253: a8c030d641dc0961d180b866ab6e5e9032dcbdf4 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5124: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html
IGT_5830: 12d370cb57e0cfcb781c87ad9e15e68b17a1f41f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev