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 */ 13static 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 */ 26static void of_dtb_root_node_populates_of_root(struct kunit *test) 27{ 28 KUNIT_EXPECT_NOT_ERR_OR_NULL(test, of_root); 29} 30 31static 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 37static 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 */ 48static 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 54kunit_test_suites( 55 &of_dtb_suite, 56); 57MODULE_LICENSE("GPL"); 58