Masahiro Yamada
022a4bf6b5
kconfig: tests: add framework for Kconfig unit testing
...
Many parts in Kconfig are so cryptic and need refactoring. However,
its complexity prevents us from moving forward. There are several
naive corner cases where it is difficult to notice breakage. If
those are covered by unit tests, we will be able to touch the code
with more confidence.
Here is a simple test framework based on pytest. The conftest.py
provides a fixture useful to run commands such as 'oldaskconfig' etc.
and to compare the resulted .config, stdout, stderr with expectations.
How to add test cases?
----------------------
For each test case, you should create a subdirectory under
scripts/kconfig/tests/ (so test cases are separated from each other).
Every test case directory should contain the following files:
- __init__.py: describes test functions
- Kconfig: the top level Kconfig file for the test
To do a useful job, test cases generally need additional data like
input .config and information about expected results.
How to run tests?
-----------------
You need python3 and pytest. Then, run "make testconfig". O= option
is supported. If V=1 is given, detailed logs captured during tests
are displayed.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-03-26 02:04:01 +09:00
..
basic
fixdep: do not ignore kconfig.h
2018-03-05 23:48:29 +09:00
coccinelle
Coccinelle: memdup: Fix typo in warning messages
2018-03-03 00:41:24 +09:00
dtc
DeviceTree for 4.15:
2017-11-14 18:25:40 -08:00
gcc-plugins
gcc-plugins: Use dynamic initializers
2018-02-05 17:27:46 -08:00
gdb
scripts/gdb/linux/tasks.py: fix get_thread_info
2018-01-19 10:09:41 -08:00
genksyms
genksyms: drop *.hash.c from .gitignore
2018-01-13 21:50:13 +09:00
kconfig
kconfig: tests: add framework for Kconfig unit testing
2018-03-26 02:04:01 +09:00
ksymoops
Fix dead URLs to ftp.kernel.org
2017-03-28 16:16:52 +02:00
mod
Modules updates for v4.16
2018-02-07 14:29:34 -08:00
package
kbuild: pkg: make out-of-tree rpm/deb-pkg build immediately fail
2017-12-13 00:07:00 +09:00
selinux
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
tracing
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
.gitignore
Docs: clean up some DocBook loose ends
2017-06-23 14:17:38 -06:00
adjust_autoksyms.sh
asn1_compiler.c
bloat-o-meter
scripts/bloat-o-meter: fix typos in help
2018-03-09 01:12:31 +09:00
bootgraph.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
check_00index.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
check_extable.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkincludes.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkkconfigsymbols.py
checkpatch.pl
checkpatch: kconfig: prefer 'help' over '---help---'
2018-03-26 02:03:57 +09:00
checkstack.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checksyscalls.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkversion.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cleanfile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cleanpatch
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
coccicheck
Coccinelle: coccicheck: fix typo
2018-02-02 00:21:47 +09:00
config
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
conmakehash.c
const_structs.checkpatch
decode_stacktrace.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
decodecode
scripts/decodecode: make it take multiline Code line
2018-01-31 17:18:34 -08:00
depmod.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
diffconfig
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
documentation-file-ref-check
Documentation: add script and build target to check for broken file references
2017-10-12 11:07:42 -06:00
export_report.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
extract-cert.c
extract-ikconfig
extract-module-sig.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
extract-sys-certs.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
extract-vmlinux
extract_xc3028.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
faddr2line
scripts/faddr2line: fix CROSS_COMPILE unset error
2017-12-14 16:00:48 -08:00
find-unused-docs.sh
scripts: Add a script to find unused documentation
2017-10-23 08:01:37 -06:00
gcc-goto.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-ld
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-plugin.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-version.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-x86_32-has-stack-protector.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-x86_64-has-stack-protector.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gen_initramfs_list.sh
Kbuild misc updates for 4.13
2017-07-07 15:09:09 -07:00
get_dvb_firmware
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
get_maintainer.pl
get_maintainer: add more --self-test options
2017-11-17 16:10:01 -08:00
gfp-translate
headerdep.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers_check.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers_install.sh
Merge branch 'linus' into locking/core, to resolve conflicts
2017-11-07 10:32:44 +01:00
insert-sys-cert.c
kallsyms.c
kbuild/kallsyms: trivial typo fix
2018-03-02 09:20:56 +09:00
Kbuild.include
kbuild: create directory for make cache only when necessary
2017-11-16 09:07:32 +09:00
kernel-doc
scripts: kernel_doc: better handle show warnings logic
2018-01-01 12:49:07 -07:00
ld-version.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
leaking_addresses.pl
leaking_addresses: add SigIgn to false positives
2017-11-14 09:29:27 +11:00
Lindent
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
link-vmlinux.sh
kbuild: drop superfluous GCC_PLUGINS_CFLAGS assignment
2018-03-02 09:20:56 +09:00
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.asm-generic
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.build
objtool, retpolines: Integrate objtool with retpoline support more closely
2018-02-21 16:54:32 +01:00
Makefile.clean
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.dtbinst
DeviceTree for 4.15:
2017-11-14 18:25:40 -08:00
Makefile.extrawarn
Kbuild: suppress packed-not-aligned warning for default setting only
2018-01-18 09:37:53 +09:00
Makefile.gcc-plugins
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.headersinst
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.host
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.kasan
kasan: rework Kconfig settings
2018-02-06 18:32:47 -08:00
Makefile.kcov
Makefile: support flag -fsanitizer-coverage=trace-cmp
2017-11-17 16:10:04 -08:00
Makefile.lib
kbuild: Handle builtin dtb file names containing hyphens
2018-03-09 01:14:38 +09:00
Makefile.modbuiltin
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.modinst
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.modpost
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.modsign
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.ubsan
lib/ubsan: remove returns-nonnull-attribute checks
2018-02-06 18:32:46 -08:00
makelst
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
markup_oops.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
mkcompile_h
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
mkmakefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
mksysmap
mkuboot.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
module-common.lds
module: set .init_array alignment to 8
2017-03-13 09:40:28 -07:00
namespace.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
objdiff
scripts: objdiff: Ignore debug info when comparing
2017-03-11 11:13:38 +09:00
parse-maintainers.pl
parse-maintainers: add ability to specify filenames
2017-11-17 16:10:01 -08:00
patch-kernel
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
pnmtologo.c
profile2linkerlist.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
prune-kernel
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
recordmcount.c
ftrace: Allow for function tracing to record init functions on boot up
2017-03-24 20:51:49 -04:00
recordmcount.h
recordmcount.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
setlocalversion
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
show_delta
sign-file.c
sign-file: fix build error in sign-file.c with libressl
2017-02-10 12:43:47 +11:00
sortextable.c
sortextable.h
spelling.txt
spelling.txt: add "unnecessary" typo variants
2017-11-17 16:10:00 -08:00
sphinx-pre-install
docs-rst: don't require adjustbox anymore
2017-09-08 10:02:55 -06:00
stackdelta
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
stackusage
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tags.sh
scripts/tags.sh: change find_other_sources() for include directories
2018-01-31 17:18:34 -08:00
unifdef.c
ver_linux
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xen-hypercalls.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xz_wrap.sh