Device Tree unittest

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:


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

An example test result summary is:


 * 1) 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 annotation messages. There are also extraneous asynchronous messages from parts of the boot process that are unrelated to unittest. of_unittest_expect does not remove the unrelated messages.

of_unittest_expect is not yet in mainline, but can be downloaded from https://github.com/frowand/dt_tools

The two following examples are console messages during unittest from 5.11-rc6 on a dragonboard 8074 (1) raw console messages (2) raw console messages filtered by of_unittest_expect

EXAMPLE of raw console messages during unittest s4: supplied by regulator-dummy sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency s5: supplied by regulator-dummy Duplicate name in testcase-data, renamed to "duplicate-name#1" s6: supplied by regulator-dummy s7: supplied by regulator-dummy s8: supplied by regulator-dummy OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1 s1: Bringing 0uV into 1300000-1300000uV s1: supplied by regulator-dummy OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1 s2: Bringing 0uV into 2150000-2150000uV s2: supplied by regulator-dummy OF: /testcase-data/phandle-tests/consumer-a: could not find phandle i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency s3: Bringing 0uV into 1800000-1800000uV s3: supplied by regulator-dummy sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency l1: Bringing 0uV into 1225000-1225000uV sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency l1: supplied by s1 OF: /testcase-data/phandle-tests/consumer-a: could not find phandle l2: Bringing 0uV into 1200000-1200000uV l2: supplied by s3 l3: Bringing 0uV into 1225000-1225000uV OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1 l3: supplied by s1 l4: Bringing 0uV into 1225000-1225000uV OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1 l4: supplied by s1 l5: Bringing 0uV into 1800000-1800000uV OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1 l5: supplied by s2 l6: Bringing 0uV into 1800000-1800000uV l6: supplied by s2 OF: /testcase-data/phandle-tests/consumer-b: could not find phandle l7: Bringing 0uV into 1800000-1800000uV l7: supplied by s2 OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found -1 l8: Bringing 0uV into 1800000-1800000uV l8: supplied by regulator-dummy 1000 l9: Bringing 0uV into 1800000-1800000uV l9: supplied by regulator-dummy platform testcase-data:testcase-device2: IRQ index 0 not found l10: Bringing 0uV into 1800000-1800000uV l10: supplied by regulator-dummy l11: Bringing 0uV into 1300000-1300000uV i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l11: supplied by s1 sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency l12: Bringing 0uV into 1800000-1800000uV sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency l12: supplied by s2 OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status l13: Bringing 0uV into 1800000-1800000uV l13: supplied by regulator-dummy OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status l14: Bringing 0uV into 1800000-1800000uV i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l14: supplied by s2 l15: Bringing 0uV into 2050000-2050000uV l15: supplied by s2 OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency l16: Bringing 0uV into 2700000-2700000uV OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status l16: supplied by regulator-dummy i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l17: Bringing 0uV into 2700000-2700000uV l17: supplied by regulator-dummy l18: Bringing 0uV into 2850000-2850000uV sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status l18: supplied by regulator-dummy l19: Bringing 0uV into 3300000-3300000uV i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l19: supplied by regulator-dummy OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status l20: Bringing 0uV into 2950000-2950000uV l20: supplied by regulator-dummy sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l21: Bringing 0uV into 2950000-2950000uV l21: supplied by regulator-dummy l22: Bringing 0uV into 3000000-3000000uV OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status l22: supplied by regulator-dummy l23: Bringing 0uV into 3000000-3000000uV i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo l23: supplied by regulator-dummy OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8 l24: Bringing 0uV into 3075000-3075000uV OF: overlay: overlay #6 is not topmost l24: supplied by regulator-dummy i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency lvs1: supplied by s3 lvs2: supplied by s3 i2c i2c-0: Added multiplexed i2c bus 1 lvs3: supplied by s3 5vs1: supplied by s4 5vs2: supplied by s4 OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency i2c i2c-0: Added multiplexed i2c bus 2 i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency gpio-461 (line-B-input): hogged as input i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency gpio-455 (line-A-input): hogged as input sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency gpio-453 (line-D-input): hogged as input i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency gpio-447 (line-C-input): hogged as input i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2 OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200 OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name
 * 1) dt-test ### start of unittest - you will see error messages
 * 1) dt-test ### EXPECT \ : Duplicate name in testcase-data, renamed to "duplicate-name#1"
 * 1) dt-test ### EXPECT / : Duplicate name in testcase-data, renamed to "duplicate-name#1"
 * 1) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
 * 2) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
 * 2) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
 * 1) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
 * 1) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1
 * 1) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1
 * 2) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1
 * 1) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-b: could not find phandle
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-b: could not find phandle
 * 1) dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found -1
 * 1) dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found -1
 * 1) dt-test ### FAIL of_unittest_dma_ranges_one:922 of_dma_get_range: wrong DMA addr 0x00000000 (expecting 100000000) on node /testcase-data/address-tests/bus@80000000/device@
 * 1) dt-test ### EXPECT \ : platform testcase-data:testcase-device2: IRQ index 0 not found
 * 1) dt-test ### EXPECT / : platform testcase-data:testcase-device2: IRQ index 0 not found
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status
 * 2) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status
 * 2) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo
 * 2) dt-test ### EXPECT \ : OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8
 * 1) dt-test ### EXPECT \ : OF: overlay: overlay #6 is not topmost
 * 1) dt-test ### EXPECT / : OF: overlay: overlay #6 is not topmost
 * 2) dt-test ### EXPECT / : OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8
 * 1) dt-test ### EXPECT \ : i2c i2c-1: Added multiplexed i2c bus 2
 * 1) dt-test ### EXPECT / : i2c i2c-1: Added multiplexed i2c bus 2
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status
 * 2) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status
 * 2) dt-test ### EXPECT \ : i2c i2c-1: Added multiplexed i2c bus 3
 * 1) dt-test ### EXPECT / : i2c i2c-1: Added multiplexed i2c bus 3
 * 2) dt-test ### EXPECT \ : GPIO line < > (line-B-input) hogged as input
 * 1) dt-test ### EXPECT \ : GPIO line < > (line-A-input) hogged as input
 * 1) dt-test ### EXPECT / : GPIO line < > (line-A-input) hogged as input
 * 1) dt-test ### EXPECT / : GPIO line < > (line-B-input) hogged as input
 * 1) dt-test ### EXPECT \ : GPIO line < > (line-D-input) hogged as input
 * 1) dt-test ### EXPECT / : GPIO line < > (line-D-input) hogged as input
 * 1) dt-test ### EXPECT \ : GPIO line < > (line-C-input) hogged as input
 * 1) dt-test ### EXPECT / : GPIO line < > (line-C-input) hogged as input
 * 1) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status
 * 2) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status
 * 3) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up
 * 4) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up
 * 5) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status
 * 6) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color
 * 7) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate
 * 8) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2
 * 9) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200
 * 10) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left
 * 11) dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right
 * 1) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right
 * 2) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left
 * 3) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200
 * 4) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2
 * 5) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate
 * 6) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color
 * 7) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status
 * 8) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up
 * 9) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up
 * 10) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status
 * 11) dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status
 * 12) dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller
 * 13) dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name
 * 1) dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name
 * 2) dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller
 * 3) dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric
 * 4) dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail
 * 5) dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name
 * 1) dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name
 * 2) dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail
 * 3) dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric
 * 4) dt-test ### end of unittest - 256 passed, 1 failed

EXAMPLE of raw console messages filtered by of_unittest_expect The expect annotation messages are removed. Prefix tags are added: -> begin and end of test ok an expected error or warning occurred ** an expected error or warning did not occur >> a unittest failed -> ### dt-test ### start of unittest - you will see error messages s4: supplied by regulator-dummy sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency s5: supplied by regulator-dummy ok Duplicate name in testcase-data, renamed to "duplicate-name#1" s6: supplied by regulator-dummy s7: supplied by regulator-dummy s8: supplied by regulator-dummy ok OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1 s1: Bringing 0uV into 1300000-1300000uV s1: supplied by regulator-dummy ok OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1 s2: Bringing 0uV into 2150000-2150000uV s2: supplied by regulator-dummy ok OF: /testcase-data/phandle-tests/consumer-a: could not find phandle i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency s3: Bringing 0uV into 1800000-1800000uV s3: supplied by regulator-dummy sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency l1: Bringing 0uV into 1225000-1225000uV sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency l1: supplied by s1 ok OF: /testcase-data/phandle-tests/consumer-a: could not find phandle l2: Bringing 0uV into 1200000-1200000uV l2: supplied by s3   l3: Bringing 0uV into 1225000-1225000uV ok OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1 l3: supplied by s1   l4: Bringing 0uV into 1225000-1225000uV ok OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1 l4: supplied by s1   l5: Bringing 0uV into 1800000-1800000uV ok OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1 l5: supplied by s2   l6: Bringing 0uV into 1800000-1800000uV l6: supplied by s2 ok OF: /testcase-data/phandle-tests/consumer-b: could not find phandle l7: Bringing 0uV into 1800000-1800000uV l7: supplied by s2 ok OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found -1 l8: Bringing 0uV into 1800000-1800000uV l8: supplied by regulator-dummy >> ### dt-test ### FAIL of_unittest_dma_ranges_one:922 of_dma_get_range: wrong DMA addr 0x00000000 (expecting 100000000) on node /testcase-data/address-tests/bus@80000000/device@ 1000   l9: Bringing 0uV into 1800000-1800000uV l9: supplied by regulator-dummy ok platform testcase-data:testcase-device2: IRQ index 0 not found l10: Bringing 0uV into 1800000-1800000uV l10: supplied by regulator-dummy l11: Bringing 0uV into 1300000-1300000uV i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l11: supplied by s1   sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency l12: Bringing 0uV into 1800000-1800000uV sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency l12: supplied by s2 ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status l13: Bringing 0uV into 1800000-1800000uV l13: supplied by regulator-dummy ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status l14: Bringing 0uV into 1800000-1800000uV i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l14: supplied by s2   l15: Bringing 0uV into 2050000-2050000uV l15: supplied by s2 ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency l16: Bringing 0uV into 2700000-2700000uV ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status l16: supplied by regulator-dummy i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l17: Bringing 0uV into 2700000-2700000uV l17: supplied by regulator-dummy l18: Bringing 0uV into 2850000-2850000uV sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status l18: supplied by regulator-dummy l19: Bringing 0uV into 3300000-3300000uV i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l19: supplied by regulator-dummy ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status l20: Bringing 0uV into 2950000-2950000uV l20: supplied by regulator-dummy sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency l21: Bringing 0uV into 2950000-2950000uV l21: supplied by regulator-dummy l22: Bringing 0uV into 3000000-3000000uV ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status l22: supplied by regulator-dummy l23: Bringing 0uV into 3000000-3000000uV i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo l23: supplied by regulator-dummy ok OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8 l24: Bringing 0uV into 3075000-3075000uV ok OF: overlay: overlay #6 is not topmost l24: supplied by regulator-dummy i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency lvs1: supplied by s3   lvs2: supplied by s3    i2c i2c-0: Added multiplexed i2c bus 1 lvs3: supplied by s3 ** of_unittest_expect WARNING - not found ---> i2c i2c-1: Added multiplexed i2c bus 2 5vs1: supplied by s4   5vs2: supplied by s4 ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency i2c i2c-0: Added multiplexed i2c bus 2 ** of_unittest_expect WARNING - not found ---> i2c i2c-1: Added multiplexed i2c bus 3 i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency gpio-461 (line-B-input): hogged as input i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency gpio-455 (line-A-input): hogged as input sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency ** of_unittest_expect WARNING - not found ---> GPIO line < > (line-A-input) hogged as input i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency ** of_unittest_expect WARNING - not found ---> GPIO line < > (line-B-input) hogged as input sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency gpio-453 (line-D-input): hogged as input i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency ** of_unittest_expect WARNING - not found ---> GPIO line < > (line-D-input) hogged as input sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency gpio-447 (line-C-input): hogged as input i2c_qup f9967000.i2c: deferred probe timeout, ignoring dependency sdhci_msm f9824900.sdhci: deferred probe timeout, ignoring dependency ** of_unittest_expect WARNING - not found ---> GPIO line < > (line-C-input) hogged as input sdhci_msm f98a4900.sdhci: deferred probe timeout, ignoring dependency ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2 ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200 ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left ok OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right ok OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller ok OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name ok OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric ok OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail ok OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name -> ### dt-test ### end of unittest - 256 passed, 1 failed

Source Location
The unit tests are located in the Linux kernel source tree
 * drivers/of/unittest.c
 * drivers/of/unittest-data/