On Thu, 7 Dec 2023 at 05:07, Kees Cook keescook@chromium.org wrote:
On Tue, Dec 05, 2023 at 03:31:34PM +0800, davidgow@google.com wrote:
Using struct root_device to create fake devices for tests is something of a hack. The new struct kunit_device is meant for this purpose, so use it instead.
Signed-off-by: David Gow davidgow@google.com
lib/fortify_kunit.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/fortify_kunit.c b/lib/fortify_kunit.c index c8c33cbaae9e..f7a1fce8849b 100644 --- a/lib/fortify_kunit.c +++ b/lib/fortify_kunit.c @@ -16,6 +16,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <kunit/test.h> +#include <kunit/device.h> #include <linux/device.h> #include <linux/slab.h> #include <linux/string.h> @@ -269,7 +270,7 @@ DEFINE_ALLOC_SIZE_TEST_PAIR(kvmalloc) size_t len; \ \ /* Create dummy device for devm_kmalloc()-family tests. */ \
dev = root_device_register(dev_name); \
dev = kunit_device_register(test, dev_name); \ KUNIT_ASSERT_FALSE_MSG(test, IS_ERR(dev), \ "Cannot register test device\n"); \ \
@@ -303,7 +304,7 @@ DEFINE_ALLOC_SIZE_TEST_PAIR(kvmalloc) checker(len, devm_kmemdup(dev, "Ohai", len, gfp), \ devm_kfree(dev, p)); \ \
device_unregister(dev); \
kunit_device_unregister(test, dev); \
} while (0) DEFINE_ALLOC_SIZE_TEST_PAIR(devm_kmalloc)
Acked-by: Kees Cook keescook@chromium.org
(As an aside; shouldn't this get automatically cleaned up like other kunit resources, though?)
We can't just get rid of the {kunit_,}device_unregister() here, because otherwise we'd have several devices with the same name during the test.
So, yes, these get automatically cleaned up, but the test would have to be restructured to either give each device a different name, or split the tests up further.
-- David