Re: [PATCH v4 11/11] lib/test_printf: Add tests for %pfw printk modifier
From: Sakari Ailus
Date: Wed Sep 04 2019 - 10:04:06 EST
Hi Petr,
Thanks for the comments.
On Tue, Sep 03, 2019 at 03:38:41PM +0200, Petr Mladek wrote:
> On Mon 2019-09-02 11:32:40, Sakari Ailus wrote:
> > Add a test for the %pfw printk modifier using software nodes.
> >
> > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> > ---
> > lib/test_printf.c | 37 +++++++++++++++++++++++++++++++++++++
> > 1 file changed, 37 insertions(+)
> >
> > diff --git a/lib/test_printf.c b/lib/test_printf.c
> > index 944eb50f38625..9c6d716979fb1 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
> > @@ -588,6 +590,40 @@ 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 = "/second/third";
> > + const char * const full_name_second = "/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[ARRAY_SIZE(softnodes) - 3]));
>
> "ARRAY_SIZE(softnodes) - 3" is quite cryptic.
> Is there any particular reason to use it instead of &softnodes[1] ?
I'm fine using a direct index, rather than refer to entries from the top
downwards.
>
> And is it expected that it does not print the "/first" parent?
Heikki actually commented on an issue related to the "root" nodes. I'll
reply to his comment, on the 5th patch of the set.
>
> > + test(full_name, "%pfw",
> > + software_node_fwnode(&softnodes[ARRAY_SIZE(softnodes) - 2]));
> > + test(full_name, "%pfwf",
> > + software_node_fwnode(&softnodes[ARRAY_SIZE(softnodes) - 2]));
> > + test(second_name, "%pfwP",
> > + software_node_fwnode(&softnodes[ARRAY_SIZE(softnodes) - 3]));
> > + test(third_name, "%pfwP",
> > + software_node_fwnode(&softnodes[ARRAY_SIZE(softnodes) - 2]));
> > +
> > + software_node_unregister_nodes(softnodes);
> > +}
>
> Anyway, thanks for the tests.
You're welcome!
--
Kind regards,
Sakari Ailus
sakari.ailus@xxxxxxxxxxxxxxx