Message ID | 1520932332-2449-1-git-send-email-yamada.masahiro@socionext.com |
---|---|
Headers | show |
Series | Add Kconfig unit tests | expand |
2018-03-13 18:12 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>: > I am applying various cleanups to Kconfig these days. > > However, I fear regressions. I have been thinking of unit-tests. > > There are various cryptic parts in Kconfig and corner cases where > it is difficult to notice breakage. If unit-tests cover those, > I will be able to apply changes more confidently. > > This series introduces a unit-tests. The framework is written based > on pytest. Also, this is written in Python 3. Python 2 will retire > in 2020. So, I believe new python tools should be written in Python 3. > > This is my Python 3 and pytest versions. > > $ python3 --version > Python 3.5.2 > $ python3 -m pytest --version > This is pytest version 3.4.1, imported from /home/masahiro/.local/lib/python3.5/site-packages/pytest.py > > How to use? > ----------- > > Please make sure Python3 and pytest are installed on your system. > > Then, run "make testconfig" > > The result looks like as follows: > > $ make testconfig > python3 -B -m pytest ./scripts/kconfig/tests \ > -o cache_dir=/home/masahiro/workspace/bsp/linux-yamada/scripts/kconfig/tests/.cache \ > > ================================= test session starts ================================= > platform linux -- Python 3.5.2, pytest-3.4.1, py-1.5.2, pluggy-0.6.0 -- /usr/bin/python3 > cachedir: scripts/kconfig/tests/.cache > rootdir: /home/masahiro/workspace/bsp/linux-yamada/scripts/kconfig/tests, inifile: pytest.ini > collected 14 items > > scripts/kconfig/tests/auto_submenu/__init__.py::test PASSED [ 7%] > scripts/kconfig/tests/choice/__init__.py::test_oldask0 PASSED [ 14%] > scripts/kconfig/tests/choice/__init__.py::test_oldask1 PASSED [ 21%] > scripts/kconfig/tests/choice/__init__.py::test_allyes PASSED [ 28%] > scripts/kconfig/tests/choice/__init__.py::test_allmod PASSED [ 35%] > scripts/kconfig/tests/choice/__init__.py::test_allno PASSED [ 42%] > scripts/kconfig/tests/choice/__init__.py::test_alldef PASSED [ 50%] > scripts/kconfig/tests/choice_value_with_m_dep/__init__.py::test PASSED [ 57%] > scripts/kconfig/tests/err_recursive_inc/__init__.py::test PASSED [ 64%] > scripts/kconfig/tests/inter_choice/__init__.py::test PASSED [ 71%] > scripts/kconfig/tests/new_choice_with_dep/__init__.py::test PASSED [ 78%] > scripts/kconfig/tests/no_write_if_dep_unmet/__init__.py::test PASSED [ 85%] > scripts/kconfig/tests/rand_nested_choice/__init__.py::test PASSED [ 92%] > scripts/kconfig/tests/warn_recursive_dep/__init__.py::test PASSED [100%] > > > Masahiro Yamada (11): > kbuild: add PYTHON2 and PYTHON3 variables > kconfig: tests: add framework for Kconfig unit testing > kconfig: tests: add basic choice tests > kconfig: tests: test automatic submenu creation > kconfig: tests: test if new symbols in choice are asked > kconfig: tests: check unneeded "is not set" with unmet dependency > kconfig: tests: check visibility of tristate choice values in y choice > kconfig: tests: test defconfig when two choices interact > kconfig: tests: test randconfig for choice in choice > kconfig: tests: test if recursive dependencies are detected > kconfig: tests: test if recursive inclusion is detected > All applied to linux-kbuild/kconfig. -- Best Regards Masahiro Yamada