[tools] tester: Normalize JSON and YAML reports
Sebastian Huber
sebastian.huber at embedded-brains.de
Thu Jun 30 06:34:03 UTC 2022
On 30/06/2022 07:58, Sebastian Huber wrote:
> On 29/06/2022 17:54, Kinsey Moore wrote:
>> On 6/29/2022 04:34, Sebastian Huber wrote:
>>> On 29/06/2022 11:20, Chris Johns wrote:
>>>>
>>>>> On 29 Jun 2022, at 4:42 pm, Sebastian Huber
>>>>> <sebastian.huber at embedded-brains.de> wrote:
>>>>>
>>>>> On 29/06/2022 08:40, Sebastian Huber wrote:
>>>>>> Report the same data in JSON and YAML reports. Do not report
>>>>>> redundant
>>>>>> information.
>>>>>> Update 4671.
>>>>>
>>>>> This patch changes the JSON reports. Are there already consumers
>>>>> for the JSON reports so that we have to be backward compatible?
>>>>
>>>> Could compatibility be added back in if this proves to be an issue?
>>>>
>>>> I am wondering if that could be considered if comparability becomes
>>>> an issue.
>>>
>>> The JSON report was added by:
>>>
>>> commit 5fcaf843bdb491e2da14dc1af61806ac6d20bae5
>>> Author: Kinsey Moore <kinsey.moore at oarcorp.com>
>>> Date: Wed Aug 21 16:34:12 2019 +0000
>>>
>>> Add JSON log generation
>>>
>>> Add log formatter hooks and JSON log formatter to the test
>>> infrastructure
>>> for consumption by automated processes or report generators.
>>>
>>>
>>> I am not sure if these automated processes or report generators
>>> already exist.
>>>
>>> The existing attribute names are quite inconsistent, for example
>>> "Command Line", "passed_count", "wrong-version_count". I would use
>>> lower case only with "-" as a separator. The JSON report should
>>> contain all information of a test run.
>>>
>>> The new report looks like this:
>>>
>>> {
>>> "command-line": [
>>> "/opt/rtems/6/bin/rtems-test",
>>> "--rtems-bsp=xilinx_zynq_a9_qemu",
>>> "--report-format=json",
>>> "--report-path=report",
>>> "build/arm/xilinx_zynq_a9_qemu/testsuites/samples/"
>>> ],
>>> "end-time": "2022-06-28T14:08:47.595131",
>>> "host": "Linux-5.3.18-150300.59.76-default-x86_64-with-glibc2.3.4
>>> (Linux lupus 5.3.18-150300.59.76-default #1 SMP Thu Jun 16 04:23:47
>>> UTC 2022 (2cc2ade) x86_64 x86_64)",
>>> "python": "3.6.15 (default, Sep 23 2021, 15:41:43) [GCC]",
>>> "reports": [
>>> {
>>> "arch": "arm",
>>> "bsp": "xilinx_zynq_a9_qemu",
>>> "command-line": "qemu-system-arm -no-reboot -nographic
>>> -net none -serial null -serial mon:stdio -M xilinx-zynq-a9 -m 256M
>>> -kernel build/arm/xilinx_zynq_a9_qemu/testsuites/samples/cdtest.exe",
>>> "end-time": "2022-06-28T12:08:48.161691+00:00",
>>> "executable":
>>> "build/arm/xilinx_zynq_a9_qemu/testsuites/samples/cdtest.exe",
>>> "executable-sha512":
>>> "413bc8a506053c95a0e1d93942cce9fd0d653f7b3cde42623085ce147aea324f4baeff7ce0102008322fb1341bc2b38defd3925a64144e47e13cc5f32185bf78",
>>>
>>> "output": [
>>> "qemu-system-arm: warning: nic cadence_gem.0 has no
>>> peer",
>>> "qemu-system-arm: warning: nic cadence_gem.1 has no
>>> peer",
>>> "",
>>> "",
>>> "*** BEGIN OF TEST CONSTRUCTOR/DESTRUCTOR ***",
>>> "*** TEST VERSION:
>>> 6.0.0.3302b72754df5f37214e86dd68522189857772c7",
>>> "*** TEST STATE: EXPECTED_PASS",
>>> "*** TEST BUILD: RTEMS_DEBUG RTEMS_POSIX_API",
>>> "*** TEST TOOLS: 12.1.1 20220622 (RTEMS 6, RSB
>>> bf3f66c29a046ec1c5029e4f919b525947df6245, Newlib e7ffbdb)",
>>> "GLOBAL: Hey I'm in base class constructor number 1
>>> for 0x214474.",
>>> "GLOBAL: Hey I'm in base class constructor number 2
>>> for 0x214480.",
>>> "GLOBAL: Hey I'm in derived class constructor number
>>> 3 for 0x214480.",
>>> "LOCAL: Hey I'm in base class constructor number 4
>>> for 0x228864.",
>>> ...
>>>
>>>
>>> "WRoZqtoO3A8AAAABDAAAAJkUSmRGNOBaaHW1UwAAoQGQ////AAAAAQwAAABck8Bx+K/znDWWTEcA",
>>>
>>>
>>> "AKEB2P///wAAAAEMAAAAVP6TRqQZY+4+srvAAAChAfD///8AAAABDAAAAMXOxS0Rhzqx6Old2wAA",
>>>
>>>
>>> "oQH4////AAAAAQwAAADJyx1ZCnZ4l+m/XkMAAKEB0P///wAAAAEMAAAAN3+9YAwMW8gTHIoPAACh",
>>>
>>>
>>> "Adj///8AAAABDAAAABtxsj3zXZF/+UqzfAAAoQHw////AAAAAQwAAAAwMDMeE7mphT6yu8AAAKEB",
>>>
>>> "8P///wAAAAEMAAAAr2rLCcwzVnf5SrN8AAChAfD///8AAAAA",
>>> "*** END OF GCOV INFO BASE64 ***",
>>> ""
>>> ],
>>> "result": "passed",
>>> "start-time": "2022-06-28T12:08:47.721822+00:00"
>>> }
>>> ],
>>> "start-time": "2022-06-28T14:08:47.595131"
>>> }
>>>
>> There are no publicly available report generators for the existing
>> format, but I do have one I use to generate STR documents for delivery
>> using mustache templates and further processing. The existing format
>> was designed to be easily consumable by that and other simple
>> templating mechanisms by providing structure (test subsets) and
>> precalculating values that would otherwise be implicit in the data.
>> Changes to the names of various fields should be easy to accommodate,
>> but a more significant restructure is going to present problems
>> continuing with any simple templating mechanism and would instead
>> require a more comprehensive document generator for all cases.
>>
>> I'm not necessarily opposed to this change as it significantly
>> simplifies the report generation code, but it will definitely require
>> some rework in my processes. I can't speak for any users of the YAML
>> report format, but it was committed over a year and a half ago.
>
> Ok, I will bring back the redundant data and use a consistent naming.
>
> The YAML format was added for the RTEMS pre-qualification project,
> however, it is pretty useless since the YAML processing is very slow in
> Python. Also the test report generators need to be rewritten. This patch
> is a part of this work.
Do you really need this "test_groups" stuff?
"test_groups": [
{
"index": 1,
"name": "benchmarks",
"results": [
{
"name": "dhrystone",
"result": "benchmark"
},
From my point of view the JSON/YAML reports should not satisfy every
possible consumer directly.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the devel
mailing list