1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * KUnit tests for OF APIs 4 */ 5 #include <linux/module.h> 6 #include <linux/of.h> 7 8 #include <kunit/test.h> 9 10 /* 11 * Test that the root node "/" can be found by path. 12 */ 13 static void of_dtb_root_node_found_by_path(struct kunit *test) 14 { 15 struct device_node *np; 16 17 np = of_find_node_by_path("/"); 18 KUNIT_EXPECT_NOT_ERR_OR_NULL(test, np); 19 of_node_put(np); 20 } 21 22 /* 23 * Test that the 'of_root' global variable is always populated when DT code is 24 * enabled. Remove this test once of_root is removed from global access. 25 */ 26 static void of_dtb_root_node_populates_of_root(struct kunit *test) 27 { 28 KUNIT_EXPECT_NOT_ERR_OR_NULL(test, of_root); 29 } 30 31 static struct kunit_case of_dtb_test_cases[] = { 32 KUNIT_CASE(of_dtb_root_node_found_by_path), 33 KUNIT_CASE(of_dtb_root_node_populates_of_root), 34 {} 35 }; 36 37 static int of_dtb_test_init(struct kunit *test) 38 { 39 if (!IS_ENABLED(CONFIG_OF_EARLY_FLATTREE)) 40 kunit_skip(test, "requires CONFIG_OF_EARLY_FLATTREE"); 41 42 return 0; 43 } 44 45 /* 46 * Test suite to confirm a DTB is loaded. 47 */ 48 static struct kunit_suite of_dtb_suite = { 49 .name = "of_dtb", 50 .test_cases = of_dtb_test_cases, 51 .init = of_dtb_test_init, 52 }; 53 54 kunit_test_suites( 55 &of_dtb_suite, 56 ); 57 MODULE_DESCRIPTION("KUnit tests for OF APIs"); 58 MODULE_LICENSE("GPL"); 59