tools: binman: ftest.py: Add testcase for bootph-* propagation

Add a testcase to ensure that scan_and_prop_bootph() actually
propagates bootph-* properties to supernodes.

Signed-off-by: Moteen Shah <m-shah@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Moteen Shah 2025-05-16 17:11:48 +05:30 committed by Tom Rini
parent d85d15fdfe
commit 1b5e41964c
2 changed files with 45 additions and 0 deletions

View File

@ -8011,5 +8011,29 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
self._DoTestFile('346_remove_template.dts',
force_missing_bintools='openssl',)
def testBootphPropagation(self):
"""Test that bootph-* properties are propagated correctly to supernodes"""
_, _, _, out_dtb_fname = self._DoReadFileDtb(
'347_bootph_prop.dts', use_real_dtb=True, update_dtb=True)
dtb = fdt.Fdt(out_dtb_fname)
dtb.Scan()
root = dtb.GetRoot()
parent_node = root.FindNode('dummy-parent')
subnode1 = parent_node.FindNode('subnode-1')
subnode2 = subnode1.FindNode('subnode-2')
subnode3 = subnode1.FindNode('subnode-3')
subnode4 = subnode3.FindNode('subnode-4')
self.assertIn('bootph-some-ram', subnode1.props,
"Child node is missing 'bootph-some-ram' property")
self.assertIn('bootph-all', subnode1.props,
"Child node is missing 'bootph-all' property")
self.assertIn('bootph-some-ram', parent_node.props,
"Parent node is missing 'bootph-some-ram' property")
self.assertIn('bootph-all', parent_node.props,
"Parent node is missing 'bootph-all' property")
self.assertEqual(len(subnode4.props), 0,
"subnode shouldn't have any properties")
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,21 @@
// SPDX-License-Identifier: GPL-2.0+
/dts-v1/;
/ {
dummy-parent {
subnode-1 {
subnode-2 {
bootph-all;
};
subnode-3 {
bootph-some-ram;
subnode-4 {
};
};
};
};
binman: binman {
};
};