1 // SPDX-License-Identifier: GPL-2.0+
2 
3 #include <common.h>
4 #include <dm.h>
5 #include <dm/test.h>
6 #include <test/ut.h>
7 
dm_test_ofnode_get_property_by_prop(struct unit_test_state * uts)8 static int dm_test_ofnode_get_property_by_prop(struct unit_test_state *uts)
9 {
10 	ofnode node;
11 	struct ofprop prop;
12 	const void *value;
13 	const char *propname;
14 	int res, len, count = 0;
15 
16 	node = ofnode_path("/cros-ec/flash");
17 	for (res = ofnode_get_first_property(node, &prop);
18 	     !res;
19 	     res = ofnode_get_next_property(&prop)) {
20 		value = ofnode_get_property_by_prop(&prop, &propname, &len);
21 		ut_assertnonnull(value);
22 		switch (count) {
23 		case 0:
24 			ut_asserteq_str("image-pos", propname);
25 			ut_asserteq(4, len);
26 			break;
27 		case 1:
28 			ut_asserteq_str("size", propname);
29 			ut_asserteq(4, len);
30 			break;
31 		case 2:
32 			ut_asserteq_str("erase-value", propname);
33 			ut_asserteq(4, len);
34 			break;
35 		case 3:
36 			/* only for plat */
37 			ut_asserteq_str("name", propname);
38 			ut_asserteq(6, len);
39 			ut_asserteq_str("flash", value);
40 			break;
41 		default:
42 			break;
43 		}
44 		count++;
45 	}
46 
47 	return 0;
48 }
49 DM_TEST(dm_test_ofnode_get_property_by_prop,
50 	UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
51