Messages in this thread | | | From | Daniel Latypov <> | Date | Thu, 30 Mar 2023 15:20:52 -0700 | Subject | Re: [PATCH v1] kunit: add tests for using current KUnit test field |
| |
I've got a few minor comments below, but this otherwise looks good. I like the idea of testing knuit_fail_current_test().
On Thu, Mar 30, 2023 at 3:05 PM Rae Moar <rmoar@google.com> wrote: > > +static void kunit_current_kunit_test_field(struct kunit *test) > +{ > + struct kunit *current_test; > + > + /* Check to ensure the result of current->kunit_test > + * is equivalent to current test. > + */ > + current_test = current->kunit_test; > + KUNIT_EXPECT_PTR_EQ(test, test, current_test);
Perhaps we can combine this and the next test case down to static void kunit_current_test(struct kunit *test) { /* There are two different ways of getting the current test */ KUNIT_EXPECT_PTR_EQ(test, test, current->kunit_test); KUNIT_EXPECT_PTR_EQ(test, test, kunit_get_current_test()); } ?
> +} > + > +static void kunit_current_get_current_test(struct kunit *test) > +{ > + struct kunit *current_test1, *current_test2; > + > + /* Check to ensure the result of kunit_get_current_test() > + * is equivalent to current test. > + */ > + current_test1 = kunit_get_current_test(); > + KUNIT_EXPECT_PTR_EQ(test, test, current_test1); > + > + /* Check to ensure the result of kunit_get_current_test() > + * is equivalent to current->kunit_test. > + */ > + current_test2 = current->kunit_test; > + KUNIT_EXPECT_PTR_EQ(test, current_test1, current_test2);
> +} > + > +static void kunit_current_fail_current_test(struct kunit *test) > +{ > + struct kunit fake; > + > + /* Initialize fake test and set as current->kunit_test. */
Nit: I think the code is self-explanatory enough that we can drop this comment.
> + kunit_init_test(&fake, "fake test", NULL); > + KUNIT_EXPECT_EQ(test, fake.status, KUNIT_SUCCESS); > + current->kunit_test = &fake; > + > + /* Fail current test and expect status of fake test to be failed. */
Nit: I think this comment could also be dropped or maybe shortened to kunit_fail_current_test("This should make `fake` fail");
or /* Now kunit_fail_current_test() should modify `fake`, not `test` */ kunit_fail_current_test("This should make `fake` fail");
> + kunit_fail_current_test("This test is supposed to fail."); > + KUNIT_EXPECT_EQ(test, fake.status, (enum kunit_status)KUNIT_FAILURE); > +
Hmm, should we try calling kunit_cleanup(&fake); ?
Right now this does resource cleanups, but we might have other state to cleanup for our `fake` test object in the future.
Daniel
| |