[Fuego] JSON schema and examples for Fuego's run.json format

Daniel Sangorrin daniel.sangorrin at toshiba.co.jp
Fri Jun 30 07:54:03 UTC 2017


> -----Original Message-----
> From: Milo Casagrande [mailto:milo.casagrande at linaro.org]
> Sent: Friday, June 30, 2017 4:08 PM
> To: Daniel Sangorrin
> Cc: fuego at lists.linuxfoundation.org; Bird, Timothy
> Subject: Re: JSON schema and examples for Fuego's run.json format
> 
> Hi,
> 
> On Thu, Jun 29, 2017 at 10:11 AM, Daniel Sangorrin
> <daniel.sangorrin at toshiba.co.jp> wrote:
> > Hi,
> >
> > I have a preliminar schema for Fuego's run.json format and a couple of examples.
> > # run.json represents the result of running a test and the associated metadata
> >
> > The schema is heavily based on Kernel CI's schemas. The main differences are:
> > - I have removed items that we don't need at the moment (kvm_guest...)
> > - I have defined several metadata items specific for fuego
> > - I have renamed some keys (e.g.: duration_ms instead of time)
> > - I have produced a single embedded schema instead of using references to other files
> > - I allow nesting test sets inside test sets
> 
> do you have an example of why this might be needed?
> I can see the need to include multiple test sets in the same test suite...

Let me explain each item.

> > - I have removed items that we don't need at the moment (kvm_guest...)

This part is not strictly needed because the removed items were not "required".
I removed them for readability so we know which parts are actually meaningful 
or used in Fuego at the moment.

> > - I have defined several metadata items specific for fuego

Here I am using the same keyword "metadata" as in Kernel CI. 
I just added specific properties to metadata that are relevant
and required for fuego such as the fuego version, the test spec used etc..
This metadata is important for debugging and replaying a test (e.g. ftc replay run.json).

> > - I have renamed some keys (e.g.: duration_ms instead of time)

I renamed some items because the meaning in Kernel CI and in Fuego was slightly different.
For example, in Kernel CI time is a measurement in seconds, but in Fuego we are using milliseconds.
The idea is that we can still convert Fuego's format to match kernel CI's schema (e.g. multiply by 1000).

Another example is vcs_commit, which is now testsuite_version. The reason is that not all
tests will have a commit id, they can be just tarballs with a version number etc.

I also changed job_id to job_name and build_id to build_name to reuse Jenkins nomenclature.
But these are not that important.

> > - I have produced a single embedded schema instead of using references to other files

This is to simplify our code. A single file is easier to manage. I believe Kernel CI
also supports using single files.

> > - I allow nesting test sets inside test sets

I predict this will not be a very commonly used feature but I just added it for LTP.

I think I will have to go through some iterations but I think this is a good start, and Kernel CI's
schemas were really useful to realize some of the possible needs (e.g. multiple measurements
for a test case).

Thanks,
Daniel




More information about the Fuego mailing list