lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGS_qxqNwVcymkG6-8Kv72oZc9aDqjFjBBmjr+f+mOVKT1bGvA@mail.gmail.com>
Date:   Thu, 30 Mar 2023 15:20:52 -0700
From:   Daniel Latypov <dlatypov@...gle.com>
To:     Rae Moar <rmoar@...gle.com>
Cc:     brendanhiggins@...gle.com, davidgow@...gle.com,
        skhan@...uxfoundation.org, kunit-dev@...glegroups.com,
        linux-kernel@...r.kernel.org, linux-kselftest@...r.kernel.org
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@...gle.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ