diff mbox series

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

Message ID 20220621085345.603820-5-davidgow@google.com (mailing list archive)
State New, archived
Headers show
Series Rework KUnit test execution in modules | expand

Commit Message

David Gow June 21, 2022, 8:53 a.m. UTC
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@amazon.com>
Signed-off-by: David Gow <davidgow@google.com>
---

Changes since v1:
https://lore.kernel.org/linux-kselftest/20220618090310.1174932-5-davidgow@google.com/
- 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(-)

Comments

Paraschiv, Andra-Irina June 21, 2022, 3:57 p.m. UTC | #1
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@amazon.com>
> Signed-off-by: David Gow <davidgow@google.com>
> ---
> 
> Changes since v1:
> https://lore.kernel.org/linux-kselftest/20220618090310.1174932-5-davidgow@google.com/
> - 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@amazon.com>

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.
diff mbox series

Patch

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);