On Thu, 11 Jan 2024 at 02:55, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > > The kunit_device_register() function doesn't return NULL, it returns > error pointers. Change the KUNIT_ASSERT_NOT_NULL() to check for > ERR_OR_NULL(). > > Fixes: d03c720e03bd ("kunit: Add APIs for managing devices") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > --- Nice catch, thanks! Reviewed-by: David Gow <davidgow@xxxxxxxxxx> > It's a pity that there isn't a KUNIT_ASSERT_NOT_ERR_PTR() macro... I think we'll add one, but I'm not yet totally convinced that it would be better than using ASSERT_NOT_ERR_OR_NULL() in cases like this, where we're: 1. In a test; and, 2. using the pointer afterwards, expecting it to be valid (dereferencing it and/or passing it to functions which will) This is largely because it'd be nicer, if the pointer is NULL (due to a bug), to get a more explicit assertion failure, rather than a crash. It does make the test code less indicative of how the APIs are meant to be used elsewhere, though, and annoys the static analysis, though. Thoughts? -- David > lib/kunit/kunit-test.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/kunit/kunit-test.c b/lib/kunit/kunit-test.c > index c4259d910356..f7980ef236a3 100644 > --- a/lib/kunit/kunit-test.c > +++ b/lib/kunit/kunit-test.c > @@ -720,7 +720,7 @@ static void kunit_device_cleanup_test(struct kunit *test) > long action_was_run = 0; > > test_device = kunit_device_register(test, "my_device"); > - KUNIT_ASSERT_NOT_NULL(test, test_device); > + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, test_device); > > /* Add an action to verify cleanup. */ > devm_add_action(test_device, test_dev_action, &action_was_run); > -- > 2.43.0 >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature