@@ -31,6 +31,51 @@ static struct selftest_results {
31
31
} \
32
32
}
33
33
34
+ static void __init of_selftest_find_node_by_name (void )
35
+ {
36
+ struct device_node * np ;
37
+
38
+ np = of_find_node_by_path ("/testcase-data" );
39
+ selftest (np && !strcmp ("/testcase-data" , np -> full_name ),
40
+ "find /testcase-data failed\n" );
41
+ of_node_put (np );
42
+
43
+ /* Test if trailing '/' works */
44
+ np = of_find_node_by_path ("/testcase-data/" );
45
+ selftest (!np , "trailing '/' on /testcase-data/ should fail\n" );
46
+
47
+ np = of_find_node_by_path ("/testcase-data/phandle-tests/consumer-a" );
48
+ selftest (np && !strcmp ("/testcase-data/phandle-tests/consumer-a" , np -> full_name ),
49
+ "find /testcase-data/phandle-tests/consumer-a failed\n" );
50
+ of_node_put (np );
51
+
52
+ np = of_find_node_by_path ("testcase-alias" );
53
+ selftest (np && !strcmp ("/testcase-data" , np -> full_name ),
54
+ "find testcase-alias failed\n" );
55
+ of_node_put (np );
56
+
57
+ /* Test if trailing '/' works on aliases */
58
+ np = of_find_node_by_path ("testcase-alias/" );
59
+ selftest (!np , "trailing '/' on testcase-alias/ should fail\n" );
60
+
61
+ np = of_find_node_by_path ("testcase-alias/phandle-tests/consumer-a" );
62
+ selftest (np && !strcmp ("/testcase-data/phandle-tests/consumer-a" , np -> full_name ),
63
+ "find testcase-alias/phandle-tests/consumer-a failed\n" );
64
+ of_node_put (np );
65
+
66
+ np = of_find_node_by_path ("/testcase-data/missing-path" );
67
+ selftest (!np , "non-existent path returned node %s\n" , np -> full_name );
68
+ of_node_put (np );
69
+
70
+ np = of_find_node_by_path ("missing-alias" );
71
+ selftest (!np , "non-existent alias returned node %s\n" , np -> full_name );
72
+ of_node_put (np );
73
+
74
+ np = of_find_node_by_path ("testcase-alias/missing-path" );
75
+ selftest (!np , "non-existent alias with relative path returned node %s\n" , np -> full_name );
76
+ of_node_put (np );
77
+ }
78
+
34
79
static void __init of_selftest_dynamic (void )
35
80
{
36
81
struct device_node * np ;
@@ -484,6 +529,7 @@ static int __init of_selftest(void)
484
529
of_node_put (np );
485
530
486
531
pr_info ("start of selftest - you will see error messages\n" );
532
+ of_selftest_find_node_by_name ();
487
533
of_selftest_dynamic ();
488
534
of_selftest_parse_phandle_with_args ();
489
535
of_selftest_property_match_string ();
0 commit comments