edtlib: add tests to check Range property
This adds some tests in test_edtlib.py and test.dts to check all common possible combination of ranges property usage and handling by edtlib. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
This commit is contained in:
parent
cd6a5648d7
commit
2f4a6646cf
2 changed files with 141 additions and 0 deletions
|
@ -123,6 +123,110 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// 'ranges'
|
||||||
|
//
|
||||||
|
|
||||||
|
ranges-zero-cells {
|
||||||
|
#address-cells = <0>;
|
||||||
|
|
||||||
|
node {
|
||||||
|
#address-cells = <0>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
ranges;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ranges-zero-parent-cells {
|
||||||
|
#address-cells = <0>;
|
||||||
|
|
||||||
|
node {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
ranges = <0xA>,
|
||||||
|
<0x1A>,
|
||||||
|
<0x2A>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ranges-one-address-cells {
|
||||||
|
#address-cells = <0>;
|
||||||
|
|
||||||
|
node {
|
||||||
|
reg = <1>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
|
||||||
|
ranges = <0xA 0xB>,
|
||||||
|
<0x1A 0x1B>,
|
||||||
|
<0x2A 0x2B>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ranges-one-address-two-size-cells {
|
||||||
|
#address-cells = <0>;
|
||||||
|
|
||||||
|
node {
|
||||||
|
reg = <1>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
|
||||||
|
ranges = <0xA 0xB 0xC>,
|
||||||
|
<0x1A 0x1B 0x1C>,
|
||||||
|
<0x2A 0x2B 0x2C>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ranges-two-address-cells {
|
||||||
|
#address-cells = <1>;
|
||||||
|
|
||||||
|
node@1 {
|
||||||
|
reg = <1 2>;
|
||||||
|
|
||||||
|
ranges = <0xA 0xB 0xC 0xD>,
|
||||||
|
<0x1A 0x1B 0x1C 0x1D>,
|
||||||
|
<0x2A 0x2B 0x2C 0x2D>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ranges-two-address-two-size-cells {
|
||||||
|
#address-cells = <1>;
|
||||||
|
|
||||||
|
node@1 {
|
||||||
|
reg = <1 2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
|
||||||
|
ranges = <0xA 0xB 0xC 0xD 0xE>,
|
||||||
|
<0x1A 0x1B 0x1C 0x1D 0x1E>,
|
||||||
|
<0x2A 0x2B 0x2C 0x2D 0x1D>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ranges-three-address-cells {
|
||||||
|
node@1 {
|
||||||
|
reg = <0 1 2>;
|
||||||
|
#address-cells = <3>;
|
||||||
|
|
||||||
|
ranges = <0xA 0xB 0xC 0xD 0xE 0xF>,
|
||||||
|
<0x1A 0x1B 0x1C 0x1D 0x1E 0x1F>,
|
||||||
|
<0x2A 0x2B 0x2C 0x2D 0x2E 0x2F>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ranges-three-address-two-size-cells {
|
||||||
|
node@1 {
|
||||||
|
reg = <0 1 2>;
|
||||||
|
#address-cells = <3>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
|
||||||
|
ranges = <0xA 0xB 0xC 0xD 0xE 0xF 0x10>,
|
||||||
|
<0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 0x110>,
|
||||||
|
<0x2A 0x2B 0x2C 0x2D 0x2E 0x2F 0x210>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// 'reg'
|
// 'reg'
|
||||||
//
|
//
|
||||||
|
|
|
@ -78,6 +78,43 @@ def test_interrupts():
|
||||||
assert str(edt.get_node("/interrupt-map-bitops-test/node@70000000E").interrupts) == \
|
assert str(edt.get_node("/interrupt-map-bitops-test/node@70000000E").interrupts) == \
|
||||||
f"[<ControllerAndData, controller: <Node /interrupt-map-bitops-test/controller in 'test.dts', binding {filenames[2]}>, data: OrderedDict([('one', 3), ('two', 2)])>]"
|
f"[<ControllerAndData, controller: <Node /interrupt-map-bitops-test/controller in 'test.dts', binding {filenames[2]}>, data: OrderedDict([('one', 3), ('two', 2)])>]"
|
||||||
|
|
||||||
|
def test_ranges():
|
||||||
|
'''Tests for the ranges property'''
|
||||||
|
with from_here():
|
||||||
|
edt = edtlib.EDT("test.dts", ["test-bindings"])
|
||||||
|
|
||||||
|
assert str(edt.get_node("/reg-ranges/parent").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x1, child-bus-addr: 0x1, parent-bus-cells: 0x2, parent-bus-addr: 0xa0000000b, length-cells 0x1, length 0x1>, <Range, child-bus-cells: 0x1, child-bus-addr: 0x2, parent-bus-cells: 0x2, parent-bus-addr: 0xc0000000d, length-cells 0x1, length 0x2>, <Range, child-bus-cells: 0x1, child-bus-addr: 0x4, parent-bus-cells: 0x2, parent-bus-addr: 0xe0000000f, length-cells 0x1, length 0x1>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/reg-nested-ranges/grandparent").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x2, child-bus-addr: 0x0, parent-bus-cells: 0x3, parent-bus-addr: 0x30000000000000000, length-cells 0x2, length 0x200000002>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/reg-nested-ranges/grandparent/parent").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x1, child-bus-addr: 0x0, parent-bus-cells: 0x2, parent-bus-addr: 0x200000000, length-cells 0x1, length 0x2>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/ranges-zero-cells/node").ranges) == "[]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/ranges-zero-parent-cells/node").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x1, child-bus-addr: 0xa, parent-bus-cells: 0x0, length-cells 0x0>, <Range, child-bus-cells: 0x1, child-bus-addr: 0x1a, parent-bus-cells: 0x0, length-cells 0x0>, <Range, child-bus-cells: 0x1, child-bus-addr: 0x2a, parent-bus-cells: 0x0, length-cells 0x0>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/ranges-one-address-cells/node").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x1, child-bus-addr: 0xa, parent-bus-cells: 0x0, length-cells 0x1, length 0xb>, <Range, child-bus-cells: 0x1, child-bus-addr: 0x1a, parent-bus-cells: 0x0, length-cells 0x1, length 0x1b>, <Range, child-bus-cells: 0x1, child-bus-addr: 0x2a, parent-bus-cells: 0x0, length-cells 0x1, length 0x2b>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/ranges-one-address-two-size-cells/node").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x1, child-bus-addr: 0xa, parent-bus-cells: 0x0, length-cells 0x2, length 0xb0000000c>, <Range, child-bus-cells: 0x1, child-bus-addr: 0x1a, parent-bus-cells: 0x0, length-cells 0x2, length 0x1b0000001c>, <Range, child-bus-cells: 0x1, child-bus-addr: 0x2a, parent-bus-cells: 0x0, length-cells 0x2, length 0x2b0000002c>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/ranges-two-address-cells/node@1").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x2, child-bus-addr: 0xa0000000b, parent-bus-cells: 0x1, parent-bus-addr: 0xc, length-cells 0x1, length 0xd>, <Range, child-bus-cells: 0x2, child-bus-addr: 0x1a0000001b, parent-bus-cells: 0x1, parent-bus-addr: 0x1c, length-cells 0x1, length 0x1d>, <Range, child-bus-cells: 0x2, child-bus-addr: 0x2a0000002b, parent-bus-cells: 0x1, parent-bus-addr: 0x2c, length-cells 0x1, length 0x2d>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/ranges-two-address-two-size-cells/node@1").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x2, child-bus-addr: 0xa0000000b, parent-bus-cells: 0x1, parent-bus-addr: 0xc, length-cells 0x2, length 0xd0000000e>, <Range, child-bus-cells: 0x2, child-bus-addr: 0x1a0000001b, parent-bus-cells: 0x1, parent-bus-addr: 0x1c, length-cells 0x2, length 0x1d0000001e>, <Range, child-bus-cells: 0x2, child-bus-addr: 0x2a0000002b, parent-bus-cells: 0x1, parent-bus-addr: 0x2c, length-cells 0x2, length 0x2d0000001d>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/ranges-three-address-cells/node@1").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x3, child-bus-addr: 0xa0000000b0000000c, parent-bus-cells: 0x2, parent-bus-addr: 0xd0000000e, length-cells 0x1, length 0xf>, <Range, child-bus-cells: 0x3, child-bus-addr: 0x1a0000001b0000001c, parent-bus-cells: 0x2, parent-bus-addr: 0x1d0000001e, length-cells 0x1, length 0x1f>, <Range, child-bus-cells: 0x3, child-bus-addr: 0x2a0000002b0000002c, parent-bus-cells: 0x2, parent-bus-addr: 0x2d0000002e, length-cells 0x1, length 0x2f>]"
|
||||||
|
|
||||||
|
assert str(edt.get_node("/ranges-three-address-two-size-cells/node@1").ranges) == \
|
||||||
|
"[<Range, child-bus-cells: 0x3, child-bus-addr: 0xa0000000b0000000c, parent-bus-cells: 0x2, parent-bus-addr: 0xd0000000e, length-cells 0x2, length 0xf00000010>, <Range, child-bus-cells: 0x3, child-bus-addr: 0x1a0000001b0000001c, parent-bus-cells: 0x2, parent-bus-addr: 0x1d0000001e, length-cells 0x2, length 0x1f00000110>, <Range, child-bus-cells: 0x3, child-bus-addr: 0x2a0000002b0000002c, parent-bus-cells: 0x2, parent-bus-addr: 0x2d0000002e, length-cells 0x2, length 0x2f00000210>]"
|
||||||
|
|
||||||
def test_reg():
|
def test_reg():
|
||||||
'''Tests for the regs property'''
|
'''Tests for the regs property'''
|
||||||
with from_here():
|
with from_here():
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue