misc:minor basic kunit tests
authorVimal Agrawal <vimal.agrawal@sophos.com>
Mon, 21 Oct 2024 13:39:26 +0000 (13:39 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Jan 2025 12:18:10 +0000 (13:18 +0100)
basic kunit tests for misc minor

Signed-off-by: Vimal Agrawal <vimal.agrawal@sophos.com>
Reviewed-by: Dirk VanDerMerwe <dirk.vandermerwe@sophos.com>
Link: https://lore.kernel.org/r/20241021133926.23774-1-vimal.agrawal@sophos.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/Makefile
drivers/misc/misc_minor_kunit.c [new file with mode: 0644]
lib/Kconfig.debug

index 40bf953185c773afa91f7784a286ae0752bb0b53..545aad06d088563aaddf7d2f3b82d995e817fde0 100644 (file)
@@ -22,6 +22,7 @@ obj-$(CONFIG_SENSORS_BH1770)  += bh1770glc.o
 obj-$(CONFIG_SENSORS_APDS990X) += apds990x.o
 obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
 obj-$(CONFIG_KGDB_TESTS)       += kgdbts.o
+obj-$(CONFIG_TEST_MISC_MINOR)  += misc_minor_kunit.o
 obj-$(CONFIG_SGI_XP)           += sgi-xp/
 obj-$(CONFIG_SGI_GRU)          += sgi-gru/
 obj-$(CONFIG_SMPRO_ERRMON)     += smpro-errmon.o
diff --git a/drivers/misc/misc_minor_kunit.c b/drivers/misc/misc_minor_kunit.c
new file mode 100644 (file)
index 0000000..293e0fb
--- /dev/null
@@ -0,0 +1,69 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <kunit/test.h>
+#include <kunit/test-bug.h>
+#include <linux/module.h>
+#include <linux/miscdevice.h>
+
+/* dynamic minor (2) */
+static struct miscdevice dev_dynamic_minor = {
+       .minor  = 2,
+       .name   = "dev_dynamic_minor",
+};
+
+/* static minor (LCD_MINOR) */
+static struct miscdevice dev_static_minor = {
+       .minor  = LCD_MINOR,
+       .name   = "dev_static_minor",
+};
+
+/* misc dynamic minor */
+static struct miscdevice dev_misc_dynamic_minor = {
+       .minor  = MISC_DYNAMIC_MINOR,
+       .name   = "dev_misc_dynamic_minor",
+};
+
+static void kunit_dynamic_minor(struct kunit *test)
+{
+       int ret;
+
+       ret = misc_register(&dev_dynamic_minor);
+       KUNIT_EXPECT_EQ(test, 0, ret);
+       KUNIT_EXPECT_EQ(test, 2, dev_dynamic_minor.minor);
+       misc_deregister(&dev_dynamic_minor);
+}
+
+static void kunit_static_minor(struct kunit *test)
+{
+       int ret;
+
+       ret = misc_register(&dev_static_minor);
+       KUNIT_EXPECT_EQ(test, 0, ret);
+       KUNIT_EXPECT_EQ(test, LCD_MINOR, dev_static_minor.minor);
+       misc_deregister(&dev_static_minor);
+}
+
+static void kunit_misc_dynamic_minor(struct kunit *test)
+{
+       int ret;
+
+       ret = misc_register(&dev_misc_dynamic_minor);
+       KUNIT_EXPECT_EQ(test, 0, ret);
+       misc_deregister(&dev_misc_dynamic_minor);
+}
+
+static struct kunit_case test_cases[] = {
+       KUNIT_CASE(kunit_dynamic_minor),
+       KUNIT_CASE(kunit_static_minor),
+       KUNIT_CASE(kunit_misc_dynamic_minor),
+       {}
+};
+
+static struct kunit_suite test_suite = {
+       .name = "misc_minor_test",
+       .test_cases = test_cases,
+};
+kunit_test_suite(test_suite);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Vimal Agrawal");
+MODULE_DESCRIPTION("misc minor testing");
index f3d72370587936fa373129cc9b246f15dac907be..6d00ebb9a399124361b254e98173bc6d3c7bd87e 100644 (file)
@@ -2479,6 +2479,17 @@ config TEST_RHASHTABLE
 config TEST_IDA
        tristate "Perform selftest on IDA functions"
 
+config TEST_MISC_MINOR
+       tristate "Basic misc minor Kunit test" if !KUNIT_ALL_TESTS
+       depends on KUNIT
+       default KUNIT_ALL_TESTS
+       help
+         Kunit test for the misc minor.
+         It tests misc minor functions for dynamic and misc dynamic minor.
+         This include misc_xxx functions
+
+         If unsure, say N.
+
 config TEST_PARMAN
        tristate "Perform selftest on priority array manager"
        depends on PARMAN