New validation test suites

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Dec 15 16:27:19 UTC 2021



On 15/12/2021 06:46, Chris Johns wrote:
> On 14/12/21 6:24 pm, Sebastian Huber wrote:
>> Hello Chris,
>>
>> On 13/12/2021 22:01, Chris Johns wrote:
>>> On 14/12/21 1:53 am, Sebastian Huber wrote:
[...]
>>>> We finished the specification of the pre-qualified RTEMS feature set. The
>>>> specification is available in an RTEMS Project repository:
>>>>
>>>> https://git.rtems.org/rtems-central/tree/spec
>>>
>>> I had a quick look. Is there a more user friendly view of this data?
>>>
>>> I think the term "specification" is a little bit misleading because the data
>>> files are not easily read by a person. I understand this is the specification
>>> data set however it is not what I am traditionally use to seeing.
>>
>> You can use the "./specview.py" script to get views of the specification.  For
>> example, this command displays the transition map for the rtems_signal_send()
>> directive:
> 
> Is specview.py part of rtems.git?

No, this script is in rtems-central.  This is also the location of the 
specification items.

> 
> If not part of rtems.git how much data is there for all the output? That is it
> is generated and held in the repo with the tests?

In rtems.git, there are only the generated sources.

[...]
>>>> The validation tests are generated from the specification using the
>>>> "./spec2modules.py" script and end up in the RTEMS sources of a Git submodule. I
>>>> think the specification and the generation tool is now sufficiently stable so
>>>> that the validation test code can be integrated in the RTEMS master branch. The
>>>> patch set is too big for the mailing list, so you can review it here:
>>>>
>>>> https://git.rtems.org/sebh/rtems.git/log/?h=validation
>>>
>>> The link failed.
>>
>> Yes, viewing my personal repository no longer works.  I am not sure if this is a
>> temporary issue.  This is why I added the github link.
> 
> It seems to have been temporary. It is back again.
> 
>>
>>>
>>>> https://github.com/sebhub/rtems/tree/validation
>>>
>>> The header in a test says the regeneration instructions are in the engineering
>>> manual but I could not quickly find them?
>>
>> https://docs.rtems.org/branches/master/eng/req/howto.html#generate-content-after-changes
>>
>>
>> In an earlier version of the header, we had a link which you didn't like:
> 
> If I need to look at the formatting rules the heading "Software Development
> Management" is easy to see and then a click on "Coding Standards" gives me what
> I am looking for.
> 
> To generate these headers I click on "Software Requirements Engineering" and
> then do I just guess until I find it in the "How To" section? I am actually
> asking this be sorted out so it is not left hanging and we are not left guessing
> what to do. If it can be rearrange into something meaningful it would help. :)

Well, if you read the text in the header:

  * For information on updating and regenerating please refer to the How-To
  * section in the Software Requirements Engineering chapter of the
  * RTEMS Software Engineering manual.  The manual is provided as a part of
  * a release.  For development sources please refer to the online
  * documentation at:
  *
  * https://docs.rtems.org

You should read the How-to section or not?

[...]
>>> What hardware have the validation tests been run on? Any tier 1 archs?
>>
>> I tested with the sparc/leon3 BSPs and the arm/realview_pbx_a9_qemu.
> 
> Is the leon3 tested on hardware or simulation?
> 
>> You need a
>> full implementation of the new Interrupt Manager directives and a working Cache
>> Manager implementation.
> 
> Is this documented?
> 
> I am sorry I do not know the list of archs and bsps that support the new
> interrupt manager directives. Maybe it would be good to list them?

All BSPs have at least a stub implementation of the new directives. The 
directives are tested in a dedicated test suite. You will notice 
failures in this test suite if the directives are not implemented.

> 
>> I noticed an issue with the thread restart on aarch64/a53_lp64_qemu.
>>
>> On powerpc/psim there is an issue in one test case, due to:
>>
>> #define CPU_ALL_TASKS_ARE_FP CPU_HARDWARE_FP
> 
> Sorry, I am not following what the issue is? Does this effect all PPC BSPS?

Not all, the newer BSPs have no separate floating-point context. This is 
something which needs to be fixed in the specification. From my point of 
view this is just a minor issue.

> 
>> Another issue is that the tm27 interrupt must be independent of the clock driver
>> interrupt.  This is not the case for powerpc/psim.
>>
>> There is definitely some work left to cover all edge cases. Some tests are quite
>> complicated.
> 
> Sure. I would like to understand the effects this has?

Maybe I can rearrange the test cases so that the tm27 support is only 
used if no clock driver is needed. The tm27 support is used to run 
handlers in interrupt context.

> 
>>> Is there anything that interprets the new test output format? It looks like lots
>>> of great info but a little difficult to read.
>>
>> EDISOFT worked on a test report generator, however, it is not yet in a
>> reviewable state.
> 
> OK. I think something that handles this data would be good to have.

Yes, maybe we could let a student work on this. In theory, this is not 
difficult. Read the report.yaml generated by the RTEMS Tester and 
convert it to a Python objects representation. Then use this high-level 
representation to generate a report in format X.

[...]

-- 
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