Unified Results Format Project

It is desirable to produce results from tests in a unified format, so that they can be easily compared, exported to other formats (like HTML, XML, Excel, and PDF).

For this we should use JSON format. It is simple to produce, especially from python, which is one of the core languages in Fuego.

Existing work [edit section]

Benchmark parser.py [edit section]

Benchmark parser.py already produces results in the file res.json.

AGL create_xml... [edit section]

The AGL-JTA group did a unified output for their tests, using a script for each test named: create_xml_<test_name>.py.

Functional parser.py (prototype) [edit section]

Tim created a prototype script (based on this) to produce fref.json instead, called 'parser.py'.

Problems encountered:

logrun files for JTA reports [edit section]

This was a json file created when a batch program was run. It collected all the logrun entries for the sub-tests run during a batch job and then produced a single PDF report - converting the json to xml, then tex, then PDF)

See:

Current schema [edit section]

run.json [edit section]

Located in the log directory. Created by the Fuego core scripts in post_test.

Here is an example:

res.json [edit section]

Located in log directory. Created by Benchmark parser.py.

res.json has schema as follows:

Here is an example for Benchmark.ffsb (more complicated than most)

fres.json [edit section]

Located in log directory.

Produced by Functionaly parser.py. Currently only one that exists is for Functional.curl, as a quick prototype based on create_xml_curl.py.

Schema looks like this:

test_result.xml [edit section]

Located in build directory.

To Do list [edit section]

Desired reports [edit section]

What report does AGL produce now with their XML?

What format is it in?

Meeting notes - 2017-04-13 [edit section]

Here are meeting notes:

Tim's view:

results.json [edit section]

Proposal by Daniel. We can reuse it for Functional.

In case of a functional test, we can use the "groupname" to define a group of tests, and the "test" property to define the specific test. The "data" array would contain values 0 (passed) or 1 (failed), and the "ref" array would contain the expected result (0 or 1). The rest is just metadata such as timestamps, the board name, the platform (I have to fix this), the spec used or the fimrware version (i.e. the kernel version).