Skip to content

Commit c6eb665

Browse files
nordicjmkartben
authored andcommitted
tests: lib: devicetree: devices: Add sub-partition check
Adds a sub-partition check to this test Signed-off-by: Jamie McCrae <[email protected]>
1 parent 320e654 commit c6eb665

File tree

2 files changed

+48
-19
lines changed

2 files changed

+48
-19
lines changed

tests/lib/devicetree/devices/app.overlay

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,23 @@
6363
#address-cells = <1>;
6464
#size-cells = <1>;
6565

66-
test_p0: partition@0 {
67-
label = "partition-0";
68-
reg = <0x00000000 0x0000C000>;
69-
};
70-
test_p1: partition@c000 {
71-
label = "partition-1";
72-
reg = <0x0000C000 0x00067000>;
66+
test_p0_p1: partition@0 {
67+
compatible = "fixed-subpartitions";
68+
label = "partition-0-1-outer";
69+
reg = <0x00000000 0x73000>;
70+
ranges = <0x0 0x0 0x73000>;
71+
#address-cells = <1>;
72+
#size-cells = <1>;
73+
74+
test_p0: partition@0 {
75+
label = "partition-0";
76+
reg = <0x00000000 0x0000C000>;
77+
};
78+
79+
test_p1: partition@c000 {
80+
label = "partition-1";
81+
reg = <0x0000C000 0x00067000>;
82+
};
7383
};
7484
};
7585
};

tests/lib/devicetree/devices/src/main.c

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
#define TEST_GPIOX DT_NODELABEL(test_gpiox)
1515
#define TEST_DEVB DT_NODELABEL(test_dev_b)
1616
#define TEST_DEVC DT_NODELABEL(test_dev_c)
17-
#define TEST_PARTITION DT_NODELABEL(test_p0)
17+
#define TEST_PARTITION_OUTER DT_NODELABEL(test_p0_p1)
18+
#define TEST_PARTITION0 DT_NODELABEL(test_p0)
19+
#define TEST_PARTITION1 DT_NODELABEL(test_p1)
1820
#define TEST_GPIO_INJECTED DT_NODELABEL(test_gpio_injected)
1921
#define TEST_NOLABEL DT_PATH(test, i2c_11112222, test_i2c_dev_14)
2022

2123
static const struct device *devlist;
2224
static const struct device *devlist_end;
2325

24-
static device_handle_t init_order[10];
26+
static device_handle_t init_order[12];
2527

2628
static int dev_init(const struct device *dev)
2729
{
@@ -46,8 +48,12 @@ DEVICE_DT_DEFINE(TEST_GPIOX, dev_init, NULL,
4648
NULL, NULL, POST_KERNEL, 40, NULL);
4749
DEVICE_DT_DEFINE(TEST_DEVC, dev_init, NULL,
4850
NULL, NULL, POST_KERNEL, 50, NULL);
49-
DEVICE_DT_DEFINE(TEST_PARTITION, dev_init, NULL,
51+
DEVICE_DT_DEFINE(TEST_PARTITION_OUTER, dev_init, NULL,
5052
NULL, NULL, POST_KERNEL, 60, NULL);
53+
DEVICE_DT_DEFINE(TEST_PARTITION0, dev_init, NULL,
54+
NULL, NULL, POST_KERNEL, 61, NULL);
55+
DEVICE_DT_DEFINE(TEST_PARTITION1, dev_init, NULL,
56+
NULL, NULL, POST_KERNEL, 62, NULL);
5157
/* Device with both an existing and missing injected dependency */
5258
DEVICE_DT_DEFINE(TEST_GPIO_INJECTED, dev_init, NULL,
5359
NULL, NULL, POST_KERNEL, 70, NULL, DT_DEP_ORD(TEST_DEVB), 999);
@@ -76,8 +82,12 @@ ZTEST(devicetree_devices, test_init_get)
7682
DEVICE_DT_GET(TEST_GPIOX), NULL);
7783
zassert_equal(DEVICE_INIT_DT_GET(TEST_DEVC)->dev,
7884
DEVICE_DT_GET(TEST_DEVC), NULL);
79-
zassert_equal(DEVICE_INIT_DT_GET(TEST_PARTITION)->dev,
80-
DEVICE_DT_GET(TEST_PARTITION), NULL);
85+
zassert_equal(DEVICE_INIT_DT_GET(TEST_PARTITION_OUTER)->dev,
86+
DEVICE_DT_GET(TEST_PARTITION_OUTER), NULL);
87+
zassert_equal(DEVICE_INIT_DT_GET(TEST_PARTITION0)->dev,
88+
DEVICE_DT_GET(TEST_PARTITION0), NULL);
89+
zassert_equal(DEVICE_INIT_DT_GET(TEST_PARTITION1)->dev,
90+
DEVICE_DT_GET(TEST_PARTITION1), NULL);
8191
zassert_equal(DEVICE_INIT_DT_GET(TEST_GPIO_INJECTED)->dev,
8292
DEVICE_DT_GET(TEST_GPIO_INJECTED), NULL);
8393
zassert_equal(DEVICE_INIT_GET(manual_dev)->dev,
@@ -92,7 +102,9 @@ ZTEST(devicetree_devices, test_init_get)
92102
zassert_equal(DEVICE_DT_GET(TEST_DEVB)->ops.init, dev_init);
93103
zassert_equal(DEVICE_DT_GET(TEST_GPIOX)->ops.init, dev_init);
94104
zassert_equal(DEVICE_DT_GET(TEST_DEVC)->ops.init, dev_init);
95-
zassert_equal(DEVICE_DT_GET(TEST_PARTITION)->ops.init, dev_init);
105+
zassert_equal(DEVICE_DT_GET(TEST_PARTITION_OUTER)->ops.init, dev_init);
106+
zassert_equal(DEVICE_DT_GET(TEST_PARTITION0)->ops.init, dev_init);
107+
zassert_equal(DEVICE_DT_GET(TEST_PARTITION1)->ops.init, dev_init);
96108
zassert_equal(DEVICE_DT_GET(TEST_GPIO_INJECTED)->ops.init, dev_init);
97109
zassert_equal(DEVICE_GET(manual_dev)->ops.init, dev_init);
98110
zassert_equal(DEVICE_DT_GET(TEST_NOLABEL)->ops.init, dev_init);
@@ -106,10 +118,12 @@ ZTEST(devicetree_devices, test_init_order)
106118
zassert_equal(init_order[3], DEV_HDL(TEST_DEVB));
107119
zassert_equal(init_order[4], DEV_HDL(TEST_GPIOX));
108120
zassert_equal(init_order[5], DEV_HDL(TEST_DEVC));
109-
zassert_equal(init_order[6], DEV_HDL(TEST_PARTITION));
110-
zassert_equal(init_order[7], DEV_HDL(TEST_GPIO_INJECTED));
111-
zassert_equal(init_order[8], DEV_HDL_NAME(manual_dev));
112-
zassert_equal(init_order[9], DEV_HDL(TEST_NOLABEL));
121+
zassert_equal(init_order[6], DEV_HDL(TEST_PARTITION_OUTER));
122+
zassert_equal(init_order[7], DEV_HDL(TEST_PARTITION0));
123+
zassert_equal(init_order[8], DEV_HDL(TEST_PARTITION1));
124+
zassert_equal(init_order[9], DEV_HDL(TEST_GPIO_INJECTED));
125+
zassert_equal(init_order[10], DEV_HDL_NAME(manual_dev));
126+
zassert_equal(init_order[11], DEV_HDL(TEST_NOLABEL));
113127
}
114128

115129
static bool check_handle(device_handle_t hdl,
@@ -321,12 +335,17 @@ ZTEST(devicetree_devices, test_supports)
321335
zassert_true(check_handle(DEV_HDL(TEST_NOLABEL), hdls, nhdls));
322336

323337
/* Support forwarding (intermediate missing devicetree node)
324-
* TEST_DEVC: TEST_PARTITION
338+
* TEST_DEVC: TEST_PARTITION_OUTER: TEST_PARTITION0 TEST_PARTITION1
325339
*/
326340
dev = DEVICE_DT_GET(TEST_DEVC);
327341
hdls = device_supported_handles_get(dev, &nhdls);
328342
zassert_equal(nhdls, 1);
329-
zassert_true(check_handle(DEV_HDL(TEST_PARTITION), hdls, nhdls));
343+
zassert_true(check_handle(DEV_HDL(TEST_PARTITION_OUTER), hdls, nhdls));
344+
dev = DEVICE_DT_GET(TEST_PARTITION_OUTER);
345+
hdls = device_supported_handles_get(dev, &nhdls);
346+
zassert_equal(nhdls, 2);
347+
zassert_true(check_handle(DEV_HDL(TEST_PARTITION0), hdls, nhdls));
348+
zassert_true(check_handle(DEV_HDL(TEST_PARTITION1), hdls, nhdls));
330349
}
331350

332351
void *devicetree_devices_setup(void)

0 commit comments

Comments
 (0)