[PATCH i-g-t] HAX: Please fail in selftests

Petri Latvala petri.latvala at intel.com
Mon Mar 9 12:37:06 UTC 2020


Signed-off-by: Petri Latvala <petri.latvala at intel.com>
---
 runner/executor.c                     |  26 +++-
 tests/intel-ci/fast-feedback.testlist | 177 +-------------------------
 2 files changed, 24 insertions(+), 179 deletions(-)

diff --git a/runner/executor.c b/runner/executor.c
index 72e45b65..89aa4f99 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -552,13 +552,17 @@ static void dump_dmesg(int kmsgfd, int outfd)
 	char cont;
 	char buf[2048];
 	ssize_t r;
+	bool printleft = true;
 
-	if (comparefd < 0)
+	if (comparefd < 0) {
+		outf("DEBUG: dump_dmesg cannot open comparefd\n");
 		return;
+	}
 	lseek(comparefd, 0, SEEK_END);
 
 	if (fcntl(kmsgfd, F_SETFL, O_NONBLOCK)) {
 		close(comparefd);
+		outf("DEBUG: dump_dmesg cannot set kmsgfd to O_NONBLOCK\n");
 		return;
 	}
 
@@ -568,6 +572,7 @@ static void dump_dmesg(int kmsgfd, int outfd)
 			if (r < 0) {
 				if (errno != EAGAIN && errno != EPIPE) {
 					close(comparefd);
+					outf("DEBUG: dump_dmesg cannot read from comparefd\n");
 					return;
 				}
 			} else {
@@ -577,19 +582,23 @@ static void dump_dmesg(int kmsgfd, int outfd)
 					/* Reading comparison record done. */
 					close(comparefd);
 					comparefd = -1;
+					outf("DEBUG: dump_dmesg, dumping until seq %llu\n", cmpseq);
 				}
 			}
 		}
 
 		r = read(kmsgfd, buf, sizeof(buf));
 		if (r <= 0) {
-			if (errno == EPIPE)
+			if (errno == EPIPE) {
+				outf("DEBUG: dump_dmesg probably losing dmesg records\n");
 				continue;
+			}
 
 			/*
 			 * If EAGAIN, we're done. If some other error,
 			 * we can't do anything anyway.
 			 */
+			outf("DEBUG: Stopping dump_dmesg, %m\n");
 			close(comparefd);
 			return;
 		}
@@ -603,8 +612,13 @@ static void dump_dmesg(int kmsgfd, int outfd)
 			 * the sequence number to see if we have read
 			 * enough.
 			 */
-			if (seq >= cmpseq)
+			if (seq >= cmpseq) {
+				outf("DEBUG: Stopping dump_dmesg, reached cmpseq: %llu >= %llu\n", seq, cmpseq);
 				return;
+			} else if (printleft) {
+				printleft = false;
+				outf("DEBUG: dump_dmesg getting dump, got seq %llu\n", seq);
+			}
 		}
 	}
 }
@@ -845,6 +859,10 @@ static int monitor_output(pid_t child,
 						     "but we didn't get informed of its demise...\n");
 				}
 
+				dump_dmesg(kmsgfd, outputs[_F_DMESG]);
+				if (settings->sync)
+					fdatasync(outputs[_F_DMESG]);
+
 				close_watchdogs(settings);
 				free(outbuf);
 				close(outfd);
@@ -985,6 +1003,8 @@ static int monitor_output(pid_t child,
 					kmsgfd = -1;
 				} else if (errno == EINVAL) {
 					errf("Warning: Buffer too small for kernel log record, record lost.\n");
+				} else if (errno == EPIPE) {
+					outf("DEBUG: normal kmsg read probably losing dmesg records.\n");
 				}
 			} else {
 				write(outputs[_F_DMESG], buf, s);
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index b41fb4a0..669a6e75 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -1,177 +1,2 @@
-# Keep alphabetically sorted by default
-
-igt at core_auth@basic-auth
-igt at debugfs_test@read_all_entries
-igt at fbdev@mmap
-igt at gem_basic@bad-close
-igt at gem_basic@create-close
-igt at gem_basic@create-fd-close
-igt at gem_busy@busy-all
-igt at gem_close_race@basic-process
-igt at gem_close_race@basic-threads
-igt at gem_ctx_create@basic
-igt at gem_ctx_create@basic-files
-igt at gem_ctx_exec@basic
-igt at gem_ctx_param@basic
-igt at gem_ctx_param@basic-default
-igt at gem_exec_basic@basic
-igt at gem_exec_create@basic
-igt at gem_exec_fence@basic-busy
-igt at gem_exec_fence@basic-wait
-igt at gem_exec_fence@basic-await
-igt at gem_exec_fence@nb-await
-igt at gem_exec_gttfill@basic
-igt at gem_exec_parallel@basic
-igt at gem_exec_parallel@contexts
-igt at gem_exec_parallel@fds
-igt at gem_exec_store@basic-all
-igt at gem_exec_suspend@basic
-igt at gem_exec_suspend@basic-s0
-igt at gem_exec_suspend@basic-s3
-igt at gem_exec_suspend@basic-s4-devices
-igt at gem_flink_basic@bad-flink
-igt at gem_flink_basic@bad-open
-igt at gem_flink_basic@basic
-igt at gem_flink_basic@double-flink
-igt at gem_flink_basic@flink-lifetime
-igt at gem_linear_blits@basic
-igt at gem_mmap@basic
-igt at gem_mmap_gtt@basic
-igt at gem_render_linear_blits@basic
-igt at gem_render_tiled_blits@basic
-igt at gem_ringfill@basic-default-forked
-igt at gem_sync@basic-all
-igt at gem_sync@basic-each
-igt at gem_tiled_blits@basic
-igt at gem_tiled_fence_blits@basic
-igt at gem_tiled_pread_basic
-igt at gem_wait@basic-busy-all
-igt at gem_wait@basic-wait-all
-igt at gem_wait@basic-await-all
-igt at i915_getparams_basic@basic-eu-total
-igt at i915_getparams_basic@basic-subslice-total
-igt at i915_hangman@error-state-basic
-igt at kms_addfb_basic@addfb25-bad-modifier
-igt at kms_addfb_basic@addfb25-framebuffer-vs-set-tiling
-igt at kms_addfb_basic@addfb25-modifier-no-flag
-igt at kms_addfb_basic@addfb25-x-tiled
-igt at kms_addfb_basic@addfb25-x-tiled-mismatch
-igt at kms_addfb_basic@addfb25-yf-tiled
-igt at kms_addfb_basic@addfb25-y-tiled
-igt at kms_addfb_basic@addfb25-y-tiled-small
-igt at kms_addfb_basic@bad-pitch-0
-igt at kms_addfb_basic@bad-pitch-1024
-igt at kms_addfb_basic@bad-pitch-128
-igt at kms_addfb_basic@bad-pitch-256
-igt at kms_addfb_basic@bad-pitch-32
-igt at kms_addfb_basic@bad-pitch-63
-igt at kms_addfb_basic@bad-pitch-65536
-igt at kms_addfb_basic@bad-pitch-999
-igt at kms_addfb_basic@basic
-igt at kms_addfb_basic@basic-x-tiled
-igt at kms_addfb_basic@basic-y-tiled
-igt at kms_addfb_basic@bo-too-small
-igt at kms_addfb_basic@bo-too-small-due-to-tiling
-igt at kms_addfb_basic@clobberred-modifier
-igt at kms_addfb_basic@framebuffer-vs-set-tiling
-igt at kms_addfb_basic@invalid-get-prop
-igt at kms_addfb_basic@invalid-get-prop-any
-igt at kms_addfb_basic@invalid-set-prop
-igt at kms_addfb_basic@invalid-set-prop-any
-igt at kms_addfb_basic@no-handle
-igt at kms_addfb_basic@size-max
-igt at kms_addfb_basic@small-bo
-igt at kms_addfb_basic@tile-pitch-mismatch
-igt at kms_addfb_basic@too-high
-igt at kms_addfb_basic@too-wide
-igt at kms_addfb_basic@unused-handle
-igt at kms_addfb_basic@unused-modifier
-igt at kms_addfb_basic@unused-offsets
-igt at kms_addfb_basic@unused-pitches
-igt at kms_busy@basic
-igt at kms_chamelium@dp-hpd-fast
-igt at kms_chamelium@dp-edid-read
-igt at kms_chamelium@dp-crc-fast
-igt at kms_chamelium@hdmi-hpd-fast
-igt at kms_chamelium@hdmi-edid-read
-igt at kms_chamelium@hdmi-crc-fast
-igt at kms_chamelium@vga-hpd-fast
-igt at kms_chamelium@vga-edid-read
-igt at kms_chamelium@common-hpd-after-suspend
-igt at kms_prop_blob@basic
-igt at kms_cursor_legacy@basic-busy-flip-before-cursor-atomic
-igt at kms_cursor_legacy@basic-busy-flip-before-cursor-legacy
-igt at kms_cursor_legacy@basic-flip-after-cursor-atomic
-igt at kms_cursor_legacy@basic-flip-after-cursor-legacy
-igt at kms_cursor_legacy@basic-flip-after-cursor-varying-size
-igt at kms_cursor_legacy@basic-flip-before-cursor-atomic
-igt at kms_cursor_legacy@basic-flip-before-cursor-legacy
-igt at kms_cursor_legacy@basic-flip-before-cursor-varying-size
-igt at kms_flip@basic-flip-vs-dpms
-igt at kms_flip@basic-flip-vs-modeset
-igt at kms_flip@basic-flip-vs-wf_vblank
-igt at kms_flip@basic-plain-flip
-igt at kms_force_connector_basic@force-connector-state
-igt at kms_force_connector_basic@force-edid
-igt at kms_force_connector_basic@force-load-detect
-igt at kms_force_connector_basic@prune-stale-modes
-igt at kms_frontbuffer_tracking@basic
-igt at kms_pipe_crc_basic@hang-read-crc-pipe-a
-igt at kms_pipe_crc_basic@nonblocking-crc-pipe-a
-igt at kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence
-igt at kms_pipe_crc_basic@read-crc-pipe-a
-igt at kms_pipe_crc_basic@read-crc-pipe-b
-igt at kms_pipe_crc_basic@read-crc-pipe-c
-igt at kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence
-igt at kms_pipe_crc_basic@suspend-read-crc-pipe-a
-igt at kms_psr@primary_page_flip
-igt at kms_psr@cursor_plane_move
-igt at kms_psr@sprite_plane_onoff
-igt at kms_psr@primary_mmap_gtt
-igt at kms_setmode@basic-clone-single-crtc
-igt at i915_pm_backlight@basic-brightness
-igt at i915_pm_rpm@basic-pci-d3-state
-igt at i915_pm_rpm@basic-rte
-igt at i915_pm_rps@basic-api
-igt at prime_busy@basic-after-default
-igt at prime_busy@basic-before-default
-igt at prime_busy@basic-wait-after-default
-igt at prime_busy@basic-wait-before-default
-igt at prime_self_import@basic-llseek-bad
-igt at prime_self_import@basic-llseek-size
-igt at prime_self_import@basic-with_fd_dup
-igt at prime_self_import@basic-with_one_bo
-igt at prime_self_import@basic-with_one_bo_two_files
-igt at prime_self_import@basic-with_two_bos
-igt at prime_vgem@basic-busy-default
-igt at prime_vgem@basic-fence-flip
-igt at prime_vgem@basic-fence-mmap
-igt at prime_vgem@basic-fence-read
-igt at prime_vgem@basic-fence-wait-default
-igt at prime_vgem@basic-gtt
-igt at prime_vgem@basic-read
-igt at prime_vgem@basic-sync-default
-igt at prime_vgem@basic-wait-default
-igt at prime_vgem@basic-write
-igt at vgem_basic@setversion
-igt at vgem_basic@create
-igt at vgem_basic@debugfs
-igt at vgem_basic@dmabuf-export
-igt at vgem_basic@dmabuf-fence
-igt at vgem_basic@dmabuf-fence-before
-igt at vgem_basic@dmabuf-mmap
-igt at vgem_basic@mmap
-igt at vgem_basic@second-client
-igt at vgem_basic@sysfs
-
-# All tests that do module unloading and reloading are executed last.
-# They will sometimes reveal issues of earlier tests leaving the
-# driver in a broken state that is not otherwise noticed in that test.
-
-igt at vgem_basic@unload
-igt at i915_module_load@reload
-igt at i915_pm_rpm@module-reload
-
-# Kernel selftests
 igt at i915_selftest@live
-igt at dmabuf@all
+igt at meta_test@fail-result
-- 
2.20.1



More information about the Intel-gfx-trybot mailing list