Skip to content

Introduce dynamic test results page dropping need for individual test result html pages.

Juha-Pekka Heikkilä requested to merge jheikkil/i915-infra:master into master

Made this MR now for commenting or maybe if someone want to have test run on it for finding anomalies. I think everything generally works, development was done w/ Chrome while testing with FF. What this change does in effect is

With these changes result page look mostly similar as before with config button added into dmesg section: Screenshot_at_2022-06-14_22-40-34

And if looking at failed test call stack is linked to (latest versions) files in fdo: Screenshot_at_2022-06-14_22-43-50

Pressing config button will bring menu with options: Screenshot_at_2022-06-14_22-41-59

Enable dmesg processing will cause information to be collected from dmesg. Leaving this off show dmesg as plain, more plain than currently. Excessively large dmesg will not get processed because of memory constraints.

json cache size will control how much (uncompressed) jsons are stored in local browser cache. These will survive browser restart.

Convert time to delta will switch timestamps in dmesg from absolute time to delta time.

Filter dmesg messages will reduce redundant information from messages, messages coming from drm/i915 are stripped from decorations and marked as bold instead.

Show state in tooltip will cause tooltip to follow mouse cursor and show what state information had been collected up to the pointed line like this: Screenshot_at_2022-06-15_11-23-54

Highlighter will cause listed (case sensitive) words to be highlighted in dmesg. Also current code block will be highlighted, be it one line or multiple line if they're considered to be talking about same thing.

Save replication script will save bash script called testreplicationscript.sh which will run igt subtests in that order as were ran in CI up to this test report. This is in case test alone doesn't fail one can try same pattern as what CI had run. Saved bash script will look something like this:

#!/usr/bin/env bash

tests=(
	'kms_frontbuffer_tracking,fbcpsr-rgb101010-draw-blt'
	'gem_create,busy-create'
	'gem_mmap,short-mmap'
	'kms_rotation_crc,primary-yf-tiled-reflect-x-270'
	'kms_plane_lowres,pipe-c-tiling-y'
)

for line in "${tests[@]}"; do
	while IFS=',' read -r testi subtesti; do
		eval "./build/tests/$testi --r $subtesti"
	done <<< "$line"
done

This MR is quite big blob.

Edited by Juha-Pekka Heikkilä

Merge request reports