diff options
author | Sakari Ailus <sakari.ailus@linux.intel.com> | 2019-10-03 14:32:19 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2019-10-11 11:26:55 +0200 |
commit | f1ce39df508de4a4abd83daa3e589ccea46b1480 (patch) | |
tree | 8786e5f9b469daf905b13c677db1d46ee15390b9 /lib/test_printf.c | |
parent | lib/vsprintf: Add %pfw conversion specifier for printing fwnode names (diff) | |
download | linux-f1ce39df508de4a4abd83daa3e589ccea46b1480.tar.xz linux-f1ce39df508de4a4abd83daa3e589ccea46b1480.zip |
lib/test_printf: Add tests for %pfw printk modifier
Add a test for the %pfw printk modifier using software nodes.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'lib/test_printf.c')
-rw-r--r-- | lib/test_printf.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/test_printf.c b/lib/test_printf.c index 5d94cbff2120..422b847db424 100644 --- a/lib/test_printf.c +++ b/lib/test_printf.c @@ -22,6 +22,8 @@ #include <linux/gfp.h> #include <linux/mm.h> +#include <linux/property.h> + #include "../tools/testing/selftests/kselftest_module.h" #define BUF_SIZE 256 @@ -593,6 +595,35 @@ flags(void) kfree(cmp_buffer); } +static void __init fwnode_pointer(void) +{ + const struct software_node softnodes[] = { + { .name = "first", }, + { .name = "second", .parent = &softnodes[0], }, + { .name = "third", .parent = &softnodes[1], }, + { NULL /* Guardian */ } + }; + const char * const full_name = "first/second/third"; + const char * const full_name_second = "first/second"; + const char * const second_name = "second"; + const char * const third_name = "third"; + int rval; + + rval = software_node_register_nodes(softnodes); + if (rval) { + pr_warn("cannot register softnodes; rval %d\n", rval); + return; + } + + test(full_name_second, "%pfw", software_node_fwnode(&softnodes[1])); + test(full_name, "%pfw", software_node_fwnode(&softnodes[2])); + test(full_name, "%pfwf", software_node_fwnode(&softnodes[2])); + test(second_name, "%pfwP", software_node_fwnode(&softnodes[1])); + test(third_name, "%pfwP", software_node_fwnode(&softnodes[2])); + + software_node_unregister_nodes(softnodes); +} + static void __init test_pointer(void) { @@ -615,6 +646,7 @@ test_pointer(void) bitmap(); netdev_features(); flags(); + fwnode_pointer(); } static void __init selftest(void) |