Difference between revisions of "Device Tree unittest"

From eLinux.org
Jump to: navigation, search
(add category, headers)
(add expected errors and warnings section)
Line 18: Line 18:
  
 
  ### dt-test ### end of unittest - 148 passed, 0 failed
 
  ### dt-test ### end of unittest - 148 passed, 0 failed
 +
 +
== Expected Errors and Warnings ==
 +
 +
The actual test result is shown at the end of the test in the test result summary,
 +
which reports number of tests passed and number of tests failed.
 +
 +
The unittests invoke various devicetree functions, which may report warnings and/or
 +
errors to the console, even when a unittest passes.  This has led to some confusion
 +
as to whether a unittest has unexpectedly triggered a kernel error and/or warning,
 +
or if the error and/or warning is an expected result.
 +
 +
Annotations where added by v5.7 commit 0ac174397940 ("of: unittest: annotate warnings triggered by unittest")
 +
to remove the confusion.  One drawback of the annotations is added console verbosity
 +
and a need to interpret the expected errors and warnings vs expected errors and warnings.
 +
 +
A filter tool '''of_unittest_expect""" was written to filter the extra console
 +
messages.  The tool is not yet in mainline, but can be downloaded from
 +
https://github.com/frowand/dt_tools
  
 
== Source Location ==
 
== Source Location ==

Revision as of 18:05, 10 February 2021


Enable

Enable unit tests through config option CONFIG_OF_UNITTEST

  • Device Drivers ---> Device Tree and Open Firmware support ---> Device Tree runtime unit tests

Run

The unit tests will be performed near the end of the boot sequence. The start of the tests is indicated by:

### dt-test ### start of unittest - you will see error messages

An example test result summary is:

### dt-test ### end of unittest - 148 passed, 0 failed

Expected Errors and Warnings

The actual test result is shown at the end of the test in the test result summary, which reports number of tests passed and number of tests failed.

The unittests invoke various devicetree functions, which may report warnings and/or errors to the console, even when a unittest passes. This has led to some confusion as to whether a unittest has unexpectedly triggered a kernel error and/or warning, or if the error and/or warning is an expected result.

Annotations where added by v5.7 commit 0ac174397940 ("of: unittest: annotate warnings triggered by unittest") to remove the confusion. One drawback of the annotations is added console verbosity and a need to interpret the expected errors and warnings vs expected errors and warnings.

A filter tool of_unittest_expect""" was written to filter the extra console messages. The tool is not yet in mainline, but can be downloaded from https://github.com/frowand/dt_tools

Source Location

The unit tests are located in the Linux kernel source tree

  • drivers/of/unittest.c
  • drivers/of/unittest-data/