Re: [PATCH v2 4/5] nitro_enclaves: test: Use kunit_test_suite() macro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 21.06.2022 11:53, David Gow wrote:

The kunit_test_suite() macro previously conflicted with module_init,
making it unsuitable for use in the nitro_enclaves test. Now that it's
fixed, we can use it instead of a custom call into internal KUnit
functions to run the test.

As a side-effect, this means that the test results are properly included
with other suites when built-in. To celebrate, enable the test by
default when KUNIT_ALL_TESTS is set (and NITRO_ENCLAVES enabled).

The nitro_enclave tests can now be run via kunit_tool with:
         ./tools/testing/kunit/kunit.py run --arch=x86_64 \
         --kconfig_add CONFIG_PCI=y --kconfig_add CONFIG_SMP=y \
         --kconfig_add CONFIG_HOTPLUG_CPU=y \
         --kconfig_add CONFIG_VIRT_DRIVERS=y \
         --kconfig_add CONFIG_NITRO_ENCLAVES=y \
         'ne_misc_dev_test'

(This is a pretty long command, so it may be worth adding a .kunitconfig
file at some point, instead.)

Acked-by: Paraschiv, Andra-Irina <andraprs@xxxxxxxxxx>
Signed-off-by: David Gow <davidgow@xxxxxxxxxx>
---

Changes since v1:
https://lore.kernel.org/linux-kselftest/20220618090310.1174932-5-davidgow@xxxxxxxxxx/
- Move the mistakenly-added thunderbolt Kconfig to the previous patch
   (Thanks Andra)
- Add Andra's Acked-by tag.

---
  drivers/virt/nitro_enclaves/Kconfig           |  5 ++--
  drivers/virt/nitro_enclaves/ne_misc_dev.c     | 27 -------------------
  .../virt/nitro_enclaves/ne_misc_dev_test.c    |  5 +---
  3 files changed, 4 insertions(+), 33 deletions(-)

Reviewed-by: Andra Paraschiv <andraprs@xxxxxxxxxx>

Thank you, David, for the patch updates.

Added Greg to the list of mail recipients, to be aware of this patch changes, given that the Nitro Enclaves kernel driver is tracked via the char-misc tree.

Thanks,
Andra


diff --git a/drivers/virt/nitro_enclaves/Kconfig b/drivers/virt/nitro_enclaves/Kconfig
index 2d3d98158121..ce91add81401 100644
--- a/drivers/virt/nitro_enclaves/Kconfig
+++ b/drivers/virt/nitro_enclaves/Kconfig
@@ -16,8 +16,9 @@ config NITRO_ENCLAVES
           The module will be called nitro_enclaves.

  config NITRO_ENCLAVES_MISC_DEV_TEST
-       bool "Tests for the misc device functionality of the Nitro Enclaves"
-       depends on NITRO_ENCLAVES && KUNIT=y
+       bool "Tests for the misc device functionality of the Nitro Enclaves" if !KUNIT_ALL_TESTS
+       depends on NITRO_ENCLAVES && KUNIT
+       default KUNIT_ALL_TESTS
         help
           Enable KUnit tests for the misc device functionality of the Nitro
           Enclaves. Select this option only if you will boot the kernel for
diff --git a/drivers/virt/nitro_enclaves/ne_misc_dev.c b/drivers/virt/nitro_enclaves/ne_misc_dev.c
index 20c881b6a4b6..241b94f62e56 100644
--- a/drivers/virt/nitro_enclaves/ne_misc_dev.c
+++ b/drivers/virt/nitro_enclaves/ne_misc_dev.c
@@ -1759,35 +1759,10 @@ static long ne_ioctl(struct file *file, unsigned int cmd, unsigned long arg)

  #if defined(CONFIG_NITRO_ENCLAVES_MISC_DEV_TEST)
  #include "ne_misc_dev_test.c"
-
-static inline int ne_misc_dev_test_init(void)
-{
-       return __kunit_test_suites_init(ne_misc_dev_test_suites);
-}
-
-static inline void ne_misc_dev_test_exit(void)
-{
-       __kunit_test_suites_exit(ne_misc_dev_test_suites);
-}
-#else
-static inline int ne_misc_dev_test_init(void)
-{
-       return 0;
-}
-
-static inline void ne_misc_dev_test_exit(void)
-{
-}
  #endif

  static int __init ne_init(void)
  {
-       int rc = 0;
-
-       rc = ne_misc_dev_test_init();
-       if (rc < 0)
-               return rc;
-
         mutex_init(&ne_cpu_pool.mutex);

         return pci_register_driver(&ne_pci_driver);
@@ -1798,8 +1773,6 @@ static void __exit ne_exit(void)
         pci_unregister_driver(&ne_pci_driver);

         ne_teardown_cpu_pool();
-
-       ne_misc_dev_test_exit();
  }

  module_init(ne_init);
diff --git a/drivers/virt/nitro_enclaves/ne_misc_dev_test.c b/drivers/virt/nitro_enclaves/ne_misc_dev_test.c
index 265797bed0ea..74df43b925be 100644
--- a/drivers/virt/nitro_enclaves/ne_misc_dev_test.c
+++ b/drivers/virt/nitro_enclaves/ne_misc_dev_test.c
@@ -151,7 +151,4 @@ static struct kunit_suite ne_misc_dev_test_suite = {
         .test_cases = ne_misc_dev_test_cases,
  };

-static struct kunit_suite *ne_misc_dev_test_suites[] = {
-       &ne_misc_dev_test_suite,
-       NULL
-};
+kunit_test_suite(ne_misc_dev_test_suite);
--
2.37.0.rc0.104.g0611611a94-goog




Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux