' If given a directory, (e.g. lib/kunit), "/.kunitconfig" '
                             'will get  automatically appended.',
                             metavar='kunitconfig')
+       parser.add_argument('--kconfig_add',
+                            help='Additional Kconfig options to append to the '
+                            '.kunitconfig, e.g. CONFIG_KASAN=y. Can be repeated.',
+                           action='append')
 
        parser.add_argument('--arch',
                            help=('Specifies the architecture to run tests under. '
                if not linux:
                        linux = kunit_kernel.LinuxSourceTree(cli_args.build_dir,
                                        kunitconfig_path=cli_args.kunitconfig,
+                                       kconfig_add=cli_args.kconfig_add,
                                        arch=cli_args.arch,
                                        cross_compile=cli_args.cross_compile,
                                        qemu_config_path=cli_args.qemu_config)
                if not linux:
                        linux = kunit_kernel.LinuxSourceTree(cli_args.build_dir,
                                        kunitconfig_path=cli_args.kunitconfig,
+                                       kconfig_add=cli_args.kconfig_add,
                                        arch=cli_args.arch,
                                        cross_compile=cli_args.cross_compile,
                                        qemu_config_path=cli_args.qemu_config)
                if not linux:
                        linux = kunit_kernel.LinuxSourceTree(cli_args.build_dir,
                                        kunitconfig_path=cli_args.kunitconfig,
+                                       kconfig_add=cli_args.kconfig_add,
                                        arch=cli_args.arch,
                                        cross_compile=cli_args.cross_compile,
                                        qemu_config_path=cli_args.qemu_config)
                if not linux:
                        linux = kunit_kernel.LinuxSourceTree(cli_args.build_dir,
                                        kunitconfig_path=cli_args.kunitconfig,
+                                       kconfig_add=cli_args.kconfig_add,
                                        arch=cli_args.arch,
                                        cross_compile=cli_args.cross_compile,
                                        qemu_config_path=cli_args.qemu_config)
 
              build_dir: str,
              load_config=True,
              kunitconfig_path='',
+             kconfig_add: Optional[List[str]]=None,
              arch=None,
              cross_compile=None,
              qemu_config_path=None) -> None:
                                shutil.copyfile(DEFAULT_KUNITCONFIG_PATH, kunitconfig_path)
 
                self._kconfig = kunit_config.parse_file(kunitconfig_path)
+               if kconfig_add:
+                       kconfig = kunit_config.parse_from_string('\n'.join(kconfig_add))
+                       self._kconfig.merge_in_entries(kconfig)
+
 
        def clean(self) -> bool:
                try:
 
                                pass
                        kunit_kernel.LinuxSourceTree('', kunitconfig_path=dir)
 
+       def test_kconfig_add(self):
+               tree = kunit_kernel.LinuxSourceTree('', kconfig_add=['CONFIG_NOT_REAL=y'])
+               self.assertIn(kunit_config.KconfigEntry('NOT_REAL', 'y'), tree._kconfig.entries())
+
        def test_invalid_arch(self):
                with self.assertRaisesRegex(kunit_kernel.ConfigError, 'not a valid arch, options are.*x86_64'):
                        kunit_kernel.LinuxSourceTree('', arch='invalid')
                # Just verify that we parsed and initialized it correctly here.
                mock_linux_init.assert_called_once_with('.kunit',
                                                        kunitconfig_path='mykunitconfig',
+                                                       kconfig_add=None,
                                                        arch='um',
                                                        cross_compile=None,
                                                        qemu_config_path=None)
                # Just verify that we parsed and initialized it correctly here.
                mock_linux_init.assert_called_once_with('.kunit',
                                                        kunitconfig_path='mykunitconfig',
+                                                       kconfig_add=None,
+                                                       arch='um',
+                                                       cross_compile=None,
+                                                       qemu_config_path=None)
+
+       @mock.patch.object(kunit_kernel, 'LinuxSourceTree')
+       def test_run_kconfig_add(self, mock_linux_init):
+               mock_linux_init.return_value = self.linux_source_mock
+               kunit.main(['run', '--kconfig_add=CONFIG_KASAN=y', '--kconfig_add=CONFIG_KCSAN=y'])
+               # Just verify that we parsed and initialized it correctly here.
+               mock_linux_init.assert_called_once_with('.kunit',
+                                                       kunitconfig_path=None,
+                                                       kconfig_add=['CONFIG_KASAN=y', 'CONFIG_KCSAN=y'],
                                                        arch='um',
                                                        cross_compile=None,
                                                        qemu_config_path=None)