forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
of: Add KUnit test to confirm DTB is loaded
Add a KUnit test that confirms a DTB has been loaded, i.e. there is a root node, and that the of_have_populated_dt() API works properly. We skip the test when CONFIG_OF_EARLY_FLATREE=n because in that case we know architecture code hasn't called unflatten_(and_copy_)?device_tree() which would populate some sort of root node. Cc: Rob Herring <[email protected]> Cc: Frank Rowand <[email protected]> Reviewed-by: David Gow <[email protected]> Cc: Brendan Higgins <[email protected]> Signed-off-by: Stephen Boyd <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Herring <[email protected]>
- Loading branch information
1 parent
d1eabd2
commit 893ecc6
Showing
4 changed files
with
71 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
CONFIG_KUNIT=y | ||
CONFIG_OF=y | ||
CONFIG_OF_KUNIT_TEST=y |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
/* | ||
* KUnit tests for OF APIs | ||
*/ | ||
#include <linux/module.h> | ||
#include <linux/of.h> | ||
|
||
#include <kunit/test.h> | ||
|
||
/* | ||
* Test that the root node "/" can be found by path. | ||
*/ | ||
static void of_dtb_root_node_found_by_path(struct kunit *test) | ||
{ | ||
struct device_node *np; | ||
|
||
np = of_find_node_by_path("/"); | ||
KUNIT_EXPECT_NOT_ERR_OR_NULL(test, np); | ||
of_node_put(np); | ||
} | ||
|
||
/* | ||
* Test that the 'of_root' global variable is always populated when DT code is | ||
* enabled. Remove this test once of_root is removed from global access. | ||
*/ | ||
static void of_dtb_root_node_populates_of_root(struct kunit *test) | ||
{ | ||
KUNIT_EXPECT_NOT_ERR_OR_NULL(test, of_root); | ||
} | ||
|
||
static struct kunit_case of_dtb_test_cases[] = { | ||
KUNIT_CASE(of_dtb_root_node_found_by_path), | ||
KUNIT_CASE(of_dtb_root_node_populates_of_root), | ||
{} | ||
}; | ||
|
||
static int of_dtb_test_init(struct kunit *test) | ||
{ | ||
if (!IS_ENABLED(CONFIG_OF_EARLY_FLATTREE)) | ||
kunit_skip(test, "requires CONFIG_OF_EARLY_FLATTREE"); | ||
|
||
return 0; | ||
} | ||
|
||
/* | ||
* Test suite to confirm a DTB is loaded. | ||
*/ | ||
static struct kunit_suite of_dtb_suite = { | ||
.name = "of_dtb", | ||
.test_cases = of_dtb_test_cases, | ||
.init = of_dtb_test_init, | ||
}; | ||
|
||
kunit_test_suites( | ||
&of_dtb_suite, | ||
); | ||
MODULE_LICENSE("GPL"); |