[igt-dev] [PATCH i-g-t] runner: Treat dmesg warnings as pure warnings

Chris Wilson
2018-11-13T17:26:00Z

I have whinged on for ages about the dmesg-warnings being an expected
part of kernel testing (where else is the kernel meant to log its
errors?) and should be treated the same as our stderr for the test. That
is if a test fails, it fails and does not need to be conflated with
whether or not there was a dmesg warning (just as the test saying why it
failed on stderr does not need flagging), and that a passing test with a
dmesg warning is simply a warn.

The effect is that we simply remove the "dmesg-" flagging from results
names, as the err/dmesg output is simply collated for the error report
already.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Martin Peres <martin.peres@linux.intel.com>
---
runner/resultgen.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/runner/resultgen.c b/runner/resultgen.c
index a62e400e..394c904f 100644
--- a/runner/resultgen.c
+++ b/runner/resultgen.c
@@ -466,8 +466,8 @@ static bool fill_from_output(int fd, const char *binary, const char *key,

/*
* This regexp controls the kmsg handling. All kernel log records that
- * have log level of warning or higher convert the result to
- * dmesg-warn/dmesg-fail unless they match this regexp.
+ * have log level of warning or higher convert a passing result to
+ * warn unless they match this regexp.
*
* TODO: Move this to external files, i915-suppressions.txt,
* general-suppressions.txt et al.
@@ -816,14 +816,11 @@ static void override_result_single(struct json_object *obj)
{
const char *errtext = NULL, *result = NULL;
struct json_object *textobj;
- bool dmesgwarns = false;

if (json_object_object_get_ex(obj, "err", &textobj))
errtext = json_object_get_string(textobj);
if (json_object_object_get_ex(obj, "result", &textobj))
result = json_object_get_string(textobj);
- if (json_object_object_get_ex(obj, "dmesg-warnings", &textobj))
- dmesgwarns = true;

if (!strcmp(result, "pass") &&
count_lines(errtext, errtext + strlen(errtext)) > 2) {
@@ -831,13 +828,9 @@ static void override_result_single(struct json_object *obj)
result = "warn";
}

- if (dmesgwarns) {
- if (!strcmp(result, "pass") || !strcmp(result, "warn")) {
- set_result(obj, "dmesg-warn");
- } else if (!strcmp(result, "fail")) {
- set_result(obj, "dmesg-fail");
- }
- }
+ if (json_object_object_get_ex(obj, "dmesg-warnings", &textobj) &&
+ !strcmp(result, "pass"))
+ set_result(obj, "warn");
}

static void override_results(char *binary,
--
2.19.1