From 42b901b4828dd10902cb4e9a61a766456d838b16 Mon Sep 17 00:00:00 2001 From: Petri Latvala Date: Wed, 19 Feb 2020 14:19:40 +0200 Subject: runner/resultgen: Provide output when test output is completely empty If a machine is hard-hanging or otherwise rebooted at the correct time, intermediary output files get created but nothing ever gets written to them. That yields results that are completely empty and hard to categorize or even sometimes detect automatically. Handle this corner case explicitly with a custom text explaining what might have happened to prod result analysis towards fixing the real issue instead of wondering if test result processing is faulty. The race for getting empty files is easier to hit than it seems. The files get created by the runner before calling exec(), and there's plenty of time to hit a really hard crash. Signed-off-by: Petri Latvala Cc: Arkadiusz Hiler Reviewed-by: Arkadiusz Hiler --- .../json_tests_data/empty-result-files/0/dmesg.txt | 0 .../json_tests_data/empty-result-files/0/err.txt | 0 .../empty-result-files/0/journal.txt | 0 .../json_tests_data/empty-result-files/0/out.txt | 0 .../json_tests_data/empty-result-files/README.txt | 2 + .../json_tests_data/empty-result-files/endtime.txt | 1 + .../json_tests_data/empty-result-files/joblist.txt | 1 + .../empty-result-files/metadata.txt | 12 +++++ .../empty-result-files/reference.json | 59 ++++++++++++++++++++++ .../empty-result-files/starttime.txt | 1 + .../json_tests_data/empty-result-files/uname.txt | 1 + 11 files changed, 77 insertions(+) create mode 100644 runner/json_tests_data/empty-result-files/0/dmesg.txt create mode 100644 runner/json_tests_data/empty-result-files/0/err.txt create mode 100644 runner/json_tests_data/empty-result-files/0/journal.txt create mode 100644 runner/json_tests_data/empty-result-files/0/out.txt create mode 100644 runner/json_tests_data/empty-result-files/README.txt create mode 100644 runner/json_tests_data/empty-result-files/endtime.txt create mode 100644 runner/json_tests_data/empty-result-files/joblist.txt create mode 100644 runner/json_tests_data/empty-result-files/metadata.txt create mode 100644 runner/json_tests_data/empty-result-files/reference.json create mode 100644 runner/json_tests_data/empty-result-files/starttime.txt create mode 100644 runner/json_tests_data/empty-result-files/uname.txt (limited to 'runner/json_tests_data') diff --git a/runner/json_tests_data/empty-result-files/0/dmesg.txt b/runner/json_tests_data/empty-result-files/0/dmesg.txt new file mode 100644 index 00000000..e69de29b diff --git a/runner/json_tests_data/empty-result-files/0/err.txt b/runner/json_tests_data/empty-result-files/0/err.txt new file mode 100644 index 00000000..e69de29b diff --git a/runner/json_tests_data/empty-result-files/0/journal.txt b/runner/json_tests_data/empty-result-files/0/journal.txt new file mode 100644 index 00000000..e69de29b diff --git a/runner/json_tests_data/empty-result-files/0/out.txt b/runner/json_tests_data/empty-result-files/0/out.txt new file mode 100644 index 00000000..e69de29b diff --git a/runner/json_tests_data/empty-result-files/README.txt b/runner/json_tests_data/empty-result-files/README.txt new file mode 100644 index 00000000..c0266342 --- /dev/null +++ b/runner/json_tests_data/empty-result-files/README.txt @@ -0,0 +1,2 @@ +A run that rebooted just when a test was about to launch produces just +empty intermediary result files that get special processing. diff --git a/runner/json_tests_data/empty-result-files/endtime.txt b/runner/json_tests_data/empty-result-files/endtime.txt new file mode 100644 index 00000000..635f6ae9 --- /dev/null +++ b/runner/json_tests_data/empty-result-files/endtime.txt @@ -0,0 +1 @@ +1539953735.172373 diff --git a/runner/json_tests_data/empty-result-files/joblist.txt b/runner/json_tests_data/empty-result-files/joblist.txt new file mode 100644 index 00000000..81f914a7 --- /dev/null +++ b/runner/json_tests_data/empty-result-files/joblist.txt @@ -0,0 +1 @@ +successtest first-subtest diff --git a/runner/json_tests_data/empty-result-files/metadata.txt b/runner/json_tests_data/empty-result-files/metadata.txt new file mode 100644 index 00000000..ef7eddb6 --- /dev/null +++ b/runner/json_tests_data/empty-result-files/metadata.txt @@ -0,0 +1,12 @@ +abort_mask : 0 +name : empty-result-files +dry_run : 0 +sync : 0 +log_level : 0 +overwrite : 0 +multiple_mode : 0 +inactivity_timeout : 0 +use_watchdog : 0 +piglit_style_dmesg : 0 +test_root : /path/does/not/exist +results_path : /path/does/not/exist diff --git a/runner/json_tests_data/empty-result-files/reference.json b/runner/json_tests_data/empty-result-files/reference.json new file mode 100644 index 00000000..ef225601 --- /dev/null +++ b/runner/json_tests_data/empty-result-files/reference.json @@ -0,0 +1,59 @@ +{ + "__type__":"TestrunResult", + "results_version":10, + "name":"empty-result-files", + "uname":"Linux hostname 4.18.0-1-amd64 #1 SMP Debian 4.18.6-1 (2018-09-06) x86_64", + "time_elapsed":{ + "__type__":"TimeAttribute", + "start":1539953735.1110389, + "end":1539953735.1723731 + }, + "tests":{ + "igt@successtest@first-subtest":{ + "out":"This test didn't produce any output. The machine probably rebooted ungracefully.\n", + "err":"", + "dmesg":"", + "result":"incomplete" + }, + }, + "totals":{ + "":{ + "crash":0, + "pass":0, + "dmesg-fail":0, + "dmesg-warn":0, + "skip":0, + "incomplete":1, + "timeout":0, + "notrun":0, + "fail":0, + "warn":0 + }, + "root":{ + "crash":0, + "pass":0, + "dmesg-fail":0, + "dmesg-warn":0, + "skip":0, + "incomplete":1, + "timeout":0, + "notrun":0, + "fail":0, + "warn":0 + }, + "igt@successtest":{ + "crash":0, + "pass":0, + "dmesg-fail":0, + "dmesg-warn":0, + "skip":0, + "incomplete":1, + "timeout":0, + "notrun":0, + "fail":0, + "warn":0 + }, + }, + "runtimes":{ + } +} diff --git a/runner/json_tests_data/empty-result-files/starttime.txt b/runner/json_tests_data/empty-result-files/starttime.txt new file mode 100644 index 00000000..ae038f18 --- /dev/null +++ b/runner/json_tests_data/empty-result-files/starttime.txt @@ -0,0 +1 @@ +1539953735.111039 diff --git a/runner/json_tests_data/empty-result-files/uname.txt b/runner/json_tests_data/empty-result-files/uname.txt new file mode 100644 index 00000000..a7aef6f7 --- /dev/null +++ b/runner/json_tests_data/empty-result-files/uname.txt @@ -0,0 +1 @@ +Linux hostname 4.18.0-1-amd64 #1 SMP Debian 4.18.6-1 (2018-09-06) x86_64 -- cgit v1.2.3