Lines Matching +full:data +full:- +full:independent
1 .. SPDX-License-Identifier: GPL-2.0
12 This document explains how the test data required for executing OF unittest
13 is attached to the live tree dynamically, independent of the machine's
18 (1) Documentation/devicetree/usage-model.rst
23 from the unflattened device tree data structure. This interface is used by
32 kernel code as a result of intentionally bad unittest data. This has led
34 of a test or whether there is a real problem that is independent of unittest.
45 from 'scripts/dtc/of_unittest_expect --help'.
48 3. Test-data
51 The Device Tree Source file (drivers/of/unittest-data/testcases.dts) contains
52 the test data required for executing the unit tests automated in
55 drivers/of/unittest-data/tests-*.dtsi
78 3.1. Adding the test data
79 -------------------------
81 Un-flattened device tree structure:
83 Un-flattened device tree consists of connected device_node(s) in form of a tree
95 Figure 1, describes a generic structure of machine's un-flattened device tree
104 child1 -> sibling2 -> sibling3 -> sibling4 -> null
108 | | child31 -> sibling32 -> null
112 | child21 -> sibling22 -> sibling23 -> null
116 child11 -> sibling12 -> sibling13 -> sibling14 -> null
120 null null child131 -> null
124 Figure 1: Generic structure of un-flattened device tree
127 Before executing OF unittest, it is required to attach the test data to
129 at first it reads the flattened device tree data linked into the kernel image
132 __dtb_testcases_begin - address marking the start of test data blob
133 __dtb_testcases_end - address marking the end of test data blob
137 then it attaches the unflattened test data tree to the live tree, else it
141 live tree as explained below. To explain the same, the test data tree described
146 testcase-data
148 test-child0 -> test-sibling1 -> test-sibling2 -> test-sibling3 -> null
150 test-child01 null null null
153 Figure 2: Example test data tree to be attached to live tree.
162 data node is attached to the live tree above (Figure 1), the final structure is
167 testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null
170 | | child31 -> sibling32 -> null
174 | child21 -> sibling22 -> sibling23 -> null
178 child11 -> sibling12 -> sibling13 -> sibling14 -> null
182 child131 -> null
185 -----------------------------------------------------------------------
189 testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null
193 test-sibling3 -> test-sibling2 -> test-sibling1 -> test-child0 -> null
195 null null null test-child01
198 Figure 3: Live device tree structure after attaching the testcase-data.
201 Astute readers would have noticed that test-child0 node becomes the last
203 test-child0 the test-sibling1 is attached that pushes the child node
204 (i.e. test-child0) to become a sibling and makes itself a child node,
213 3.2. Removing the test data
214 ---------------------------