]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
kunit: tool: test: Don't rely on implicit working directory change
authorThomas Weißschuh <thomas.weissschuh@linutronix.de>
Wed, 7 Jan 2026 01:59:34 +0000 (09:59 +0800)
committerShuah Khan <skhan@linuxfoundation.org>
Wed, 7 Jan 2026 17:00:47 +0000 (10:00 -0700)
If no kunitconfig_paths are passed to LinuxSourceTree() it falls back to
DEFAULT_KUNITCONFIG_PATH. This resolution only works when the current
working directory is the root of the source tree. This works by chance
when running the full testsuite through the default unittest runner, as
some tests will change the current working directory as a side-effect of
'kunit.main()'. When running a single testcase or using pytest, which
resets the working directory for each test, this assumption breaks.

Explicitly specify an empty kunitconfig for the affected tests.

Link: https://lore.kernel.org/r/20260107015936.2316047-2-davidgow@google.com
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/kunit/kunit_tool_test.py

index 30ac1cb6c8ed6160d0a44fac3e7ab038c9c54ab6..238a31a5cc291854bb8738f22e04c65bcbaeb11c 100755 (executable)
@@ -477,7 +477,8 @@ class LinuxSourceTreeTest(unittest.TestCase):
                want_kconfig = kunit_config.Kconfig()
                want_kconfig.add_entry('NOT_REAL', 'y')
 
-               tree = kunit_kernel.LinuxSourceTree('', kconfig_add=['CONFIG_NOT_REAL=y'])
+               tree = kunit_kernel.LinuxSourceTree('', kunitconfig_paths=[os.devnull],
+                                                   kconfig_add=['CONFIG_NOT_REAL=y'])
                self.assertTrue(want_kconfig.is_subset_of(tree._kconfig), msg=tree._kconfig)
 
        def test_invalid_arch(self):
@@ -489,7 +490,7 @@ class LinuxSourceTreeTest(unittest.TestCase):
                        return subprocess.Popen(['echo "hi\nbye"'], shell=True, text=True, stdout=subprocess.PIPE)
 
                with tempfile.TemporaryDirectory('') as build_dir:
-                       tree = kunit_kernel.LinuxSourceTree(build_dir)
+                       tree = kunit_kernel.LinuxSourceTree(build_dir, kunitconfig_paths=[os.devnull])
                        mock.patch.object(tree._ops, 'start', side_effect=fake_start).start()
 
                        with self.assertRaises(ValueError):