Commit 1903c511 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

kconfig: tests: add basic choice tests



The calculation of 'choice' is a bit complicated part in Kconfig.

The behavior of 'y' choice is intuitive.  If choice values are tristate,
the choice can be 'm' where each value can be enabled independently.
Also, if a choice is marked as 'optional', the whole choice can be
invisible.

Test basic functionality of choice.

Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: default avatarUlf Magnusson <ulfalizer@gmail.com>
parent 022a4bf6
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
config MODULES
	bool "Enable loadable module support"
	option modules
	default y

choice
	prompt "boolean choice"
	default BOOL_CHOICE1

config BOOL_CHOICE0
	bool "choice 0"

config BOOL_CHOICE1
	bool "choice 1"

endchoice

choice
	prompt "optional boolean choice"
	optional
	default OPT_BOOL_CHOICE1

config OPT_BOOL_CHOICE0
	bool "choice 0"

config OPT_BOOL_CHOICE1
	bool "choice 1"

endchoice

choice
	prompt "tristate choice"
	default TRI_CHOICE1

config TRI_CHOICE0
	tristate "choice 0"

config TRI_CHOICE1
	tristate "choice 1"

endchoice

choice
	prompt "optional tristate choice"
	optional
	default OPT_TRI_CHOICE1

config OPT_TRI_CHOICE0
	tristate "choice 0"

config OPT_TRI_CHOICE1
	tristate "choice 1"

endchoice
+40 −0
Original line number Diff line number Diff line
"""
Basic choice tests.

The handling of 'choice' is a bit complicated part in Kconfig.

The behavior of 'y' choice is intuitive.  If choice values are tristate,
the choice can be 'm' where each value can be enabled independently.
Also, if a choice is marked as 'optional', the whole choice can be
invisible.
"""


def test_oldask0(conf):
    assert conf.oldaskconfig() == 0
    assert conf.stdout_contains('oldask0_expected_stdout')


def test_oldask1(conf):
    assert conf.oldaskconfig('oldask1_config') == 0
    assert conf.stdout_contains('oldask1_expected_stdout')


def test_allyes(conf):
    assert conf.allyesconfig() == 0
    assert conf.config_contains('allyes_expected_config')


def test_allmod(conf):
    assert conf.allmodconfig() == 0
    assert conf.config_contains('allmod_expected_config')


def test_allno(conf):
    assert conf.allnoconfig() == 0
    assert conf.config_contains('allno_expected_config')


def test_alldef(conf):
    assert conf.alldefconfig() == 0
    assert conf.config_contains('alldef_expected_config')
+5 −0
Original line number Diff line number Diff line
CONFIG_MODULES=y
# CONFIG_BOOL_CHOICE0 is not set
CONFIG_BOOL_CHOICE1=y
# CONFIG_TRI_CHOICE0 is not set
# CONFIG_TRI_CHOICE1 is not set
+9 −0
Original line number Diff line number Diff line
CONFIG_MODULES=y
# CONFIG_BOOL_CHOICE0 is not set
CONFIG_BOOL_CHOICE1=y
# CONFIG_OPT_BOOL_CHOICE0 is not set
CONFIG_OPT_BOOL_CHOICE1=y
CONFIG_TRI_CHOICE0=m
CONFIG_TRI_CHOICE1=m
CONFIG_OPT_TRI_CHOICE0=m
CONFIG_OPT_TRI_CHOICE1=m
+5 −0
Original line number Diff line number Diff line
# CONFIG_MODULES is not set
# CONFIG_BOOL_CHOICE0 is not set
CONFIG_BOOL_CHOICE1=y
# CONFIG_TRI_CHOICE0 is not set
CONFIG_TRI_CHOICE1=y
Loading