From: Ilpo Järvinen Subject: [PATCH] kconfig: Test that the largest of selects is taken DO NOT APPLY WITHOUT FIXING KCONFIG CODE FIRST!!! With dual select, the largest selection should be taken. Test with indepedent selectors and ones which depends on each other. Signed-off-by: Ilpo Järvinen --- scripts/kconfig/tests/dual_select/Kconfig | 40 +++++++++++++++++++++++ scripts/kconfig/tests/dual_select/__init__.py | 8 +++++ scripts/kconfig/tests/dual_select/defconfig | 7 ++++ scripts/kconfig/tests/dual_select/expected_config | 10 ++++++ 4 files changed, 65 insertions(+) create mode 100644 scripts/kconfig/tests/dual_select/Kconfig create mode 100644 scripts/kconfig/tests/dual_select/__init__.py create mode 100644 scripts/kconfig/tests/dual_select/defconfig create mode 100644 scripts/kconfig/tests/dual_select/expected_config diff --git a/scripts/kconfig/tests/dual_select/Kconfig b/scripts/kconfig/tests/dual_select/Kconfig new file mode 100644 index 000000000000..776ddc4e8bf9 --- /dev/null +++ b/scripts/kconfig/tests/dual_select/Kconfig @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: GPL-2.0 + +config MODULES + bool "Enable loadable module support" + modules + default y + +config A1 + tristate "A1" +# indepedendent tristate selects tristate +config B1 + tristate "B1" + select A1 +# bool selects lib +config C1 + bool "C1" + select A1 + +config A2 + tristate "A2" +config B2 + tristate "B2" + select A2 +# tristate depends on tristate and selects tristate +config C2 + tristate "C2" + depends on B2 + select A2 + + +config A3 + tristate "A3" +config B3 + tristate "B3" + select A3 +# bool depends on tristate and selects tristate +config C3 + bool "C3" + depends on B3 + select A3 diff --git a/scripts/kconfig/tests/dual_select/__init__.py b/scripts/kconfig/tests/dual_select/__init__.py new file mode 100644 index 000000000000..613d801014e8 --- /dev/null +++ b/scripts/kconfig/tests/dual_select/__init__.py @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: GPL-2.0 +""" +Test dual select should select the largest selection. +""" + +def test(conf): + assert conf.defconfig('defconfig') == 0 + assert conf.config_contains('expected_config') diff --git a/scripts/kconfig/tests/dual_select/defconfig b/scripts/kconfig/tests/dual_select/defconfig new file mode 100644 index 000000000000..fa0475fa74ab --- /dev/null +++ b/scripts/kconfig/tests/dual_select/defconfig @@ -0,0 +1,7 @@ +CONFIG_MODULES=y +CONFIG_B1=m +CONFIG_C1=y +CONFIG_B2=y +CONFIG_C2=m +CONFIG_B3=m +CONFIG_C3=y diff --git a/scripts/kconfig/tests/dual_select/expected_config b/scripts/kconfig/tests/dual_select/expected_config new file mode 100644 index 000000000000..1c06356d8b1c --- /dev/null +++ b/scripts/kconfig/tests/dual_select/expected_config @@ -0,0 +1,10 @@ +CONFIG_MODULES=y +CONFIG_A1=y +CONFIG_B1=m +CONFIG_C1=y +CONFIG_A2=y +CONFIG_B2=y +CONFIG_C2=m +CONFIG_A3=y +CONFIG_B3=m +CONFIG_C3=y -- tg: (80e54e84911a..) kconfig/dual-select-case (depends on: master)