edtlib: test "last modified" semantic for included property specs
Make sure the property specs answered by the Binding.prop2specs API do not all claim (PropertySpec.path) they were last modified by the top-level binding. Signed-off-by: Christophe Dufaza <chris@openmarl.org>
This commit is contained in:
parent
8181bb513e
commit
70eaa61cb0
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
properties:
|
||||||
|
x:
|
||||||
|
type: int
|
||||||
|
y:
|
||||||
|
type: int
|
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
include: base.yaml
|
||||||
|
|
||||||
|
properties:
|
||||||
|
x:
|
||||||
|
required: true
|
|
@ -0,0 +1,21 @@
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Top-level binding file for testing included property spec paths.
|
||||||
|
|
||||||
|
base.yaml: specifies properties "x" and "y"
|
||||||
|
modified.yaml: includes base.yaml, modifies property "x"
|
||||||
|
top.yaml (this file): includes modified.yaml, specifies property "p"
|
||||||
|
|
||||||
|
From the top-level binding, we expect:
|
||||||
|
- "x" was last modified in modified.yaml
|
||||||
|
- "y" was last modified in base.yaml
|
||||||
|
- "p" was last modified in top.yaml
|
||||||
|
|
||||||
|
compatible: top-level
|
||||||
|
|
||||||
|
include: modified.yaml
|
||||||
|
|
||||||
|
properties:
|
||||||
|
p:
|
||||||
|
type: int
|
|
@ -365,6 +365,18 @@ def test_include_filters():
|
||||||
assert set(child.prop2specs.keys()) == {'child-prop-1', 'child-prop-2',
|
assert set(child.prop2specs.keys()) == {'child-prop-1', 'child-prop-2',
|
||||||
'x', 'z'} # root level 'y' is blocked
|
'x', 'z'} # root level 'y' is blocked
|
||||||
|
|
||||||
|
def test_include_paths():
|
||||||
|
'''Test "last modified" semantic for included bindings paths.'''
|
||||||
|
|
||||||
|
fname2path = {'base.yaml': 'test-bindings-include/base.yaml',
|
||||||
|
'modified.yaml': 'test-bindings-include/modified.yaml'}
|
||||||
|
|
||||||
|
with from_here():
|
||||||
|
top = edtlib.Binding('test-bindings-include/top.yaml', fname2path)
|
||||||
|
|
||||||
|
assert 'modified.yaml' == os.path.basename(top.prop2specs["x"].path)
|
||||||
|
assert 'base.yaml' == os.path.basename(top.prop2specs["y"].path)
|
||||||
|
assert 'top.yaml' == os.path.basename(top.prop2specs["p"].path)
|
||||||
|
|
||||||
def test_bus():
|
def test_bus():
|
||||||
'''Test 'bus:' and 'on-bus:' in bindings'''
|
'''Test 'bus:' and 'on-bus:' in bindings'''
|
||||||
|
|
Loading…
Reference in a new issue