Commit 2a6526c4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'linux_kselftest-kunit-fixes-6.8-rc3' of...

Merge tag 'linux_kselftest-kunit-fixes-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest

Pull kunit fixes from Shuah Khan:
 "NULL vs IS_ERR() bug fixes, documentation update, MAINTAINERS file
  update to add Rae Moar as a reviewer, and a fix to run test suites
  only after module initialization completes"

* tag 'linux_kselftest-kunit-fixes-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
  Documentation: KUnit: Update the instructions on how to test static functions
  kunit: run test suites only after module initialization completes
  MAINTAINERS: kunit: Add Rae Moar as a reviewer
  kunit: device: Fix a NULL vs IS_ERR() check in init()
  kunit: Fix a NULL vs IS_ERR() bug
parents d1d873a9 1a9f2c77
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -671,8 +671,23 @@ Testing Static Functions
------------------------

If we do not want to expose functions or variables for testing, one option is to
conditionally ``#include`` the test file at the end of your .c file. For
example:
conditionally export the used symbol. For example:

.. code-block:: c

	/* In my_file.c */

	VISIBLE_IF_KUNIT int do_interesting_thing();
	EXPORT_SYMBOL_IF_KUNIT(do_interesting_thing);

	/* In my_file.h */

	#if IS_ENABLED(CONFIG_KUNIT)
		int do_interesting_thing(void);
	#endif

Alternatively, you could conditionally ``#include`` the test file at the end of
your .c file. For example:

.. code-block:: c

+1 −0
Original line number Diff line number Diff line
@@ -11725,6 +11725,7 @@ F: fs/smb/server/
KERNEL UNIT TESTING FRAMEWORK (KUnit)
M:	Brendan Higgins <brendanhiggins@google.com>
M:	David Gow <davidgow@google.com>
R:	Rae Moar <rmoar@google.com>
L:	linux-kselftest@vger.kernel.org
L:	kunit-dev@googlegroups.com
S:	Maintained
+2 −2
Original line number Diff line number Diff line
@@ -45,8 +45,8 @@ int kunit_bus_init(void)
	int error;

	kunit_bus_device = root_device_register("kunit");
	if (!kunit_bus_device)
		return -ENOMEM;
	if (IS_ERR(kunit_bus_device))
		return PTR_ERR(kunit_bus_device);

	error = bus_register(&kunit_bus_type);
	if (error)
+4 −0
Original line number Diff line number Diff line
@@ -146,6 +146,10 @@ void kunit_free_suite_set(struct kunit_suite_set suite_set)
	kfree(suite_set.start);
}

/*
 * Filter and reallocate test suites. Must return the filtered test suites set
 * allocated at a valid virtual address or NULL in case of error.
 */
struct kunit_suite_set
kunit_filter_suites(const struct kunit_suite_set *suite_set,
		    const char *filter_glob,
+1 −1
Original line number Diff line number Diff line
@@ -720,7 +720,7 @@ static void kunit_device_cleanup_test(struct kunit *test)
	long action_was_run = 0;

	test_device = kunit_device_register(test, "my_device");
	KUNIT_ASSERT_NOT_NULL(test, test_device);
	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, test_device);

	/* Add an action to verify cleanup. */
	devm_add_action(test_device, test_dev_action, &action_was_run);
Loading