Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee236610 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

kconfig: tests: check visibility of tristate choice values in y choice



If tristate choice values depend on symbols set to 'm', they should be
hidden when the choice containing them is changed from 'm' to 'y'
(i.e. exclusive choice).

This issue was fixed by commit fa64e5f6 ("kconfig/symbol.c: handle
choice_values that depend on 'm' symbols").

Add a test case to avoid regression.

For the input in this unit test, there is a room for argument if
"# CONFIG_CHOICE1 is not set" should be written to the .config file.

After commit fa64e5f6, this line was written to the .config file.

With commit cb67ab2c ("kconfig: do not write choice values when
their dependency becomes n"), it is not written now.

In this test, "# CONFIG_CHOICE1 is not set" is don't care.

Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: default avatarUlf Magnusson <ulfalizer@gmail.com>
parent 930c429a
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
config MODULES
	def_bool y
	option modules

config DEP
	tristate
	default m

choice
	prompt "Tristate Choice"

config CHOICE0
	tristate "Choice 0"

config CHOICE1
	tristate "Choice 1"
	depends on DEP

endchoice
+15 −0
Original line number Diff line number Diff line
"""
Hide tristate choice values with mod dependency in y choice.

If tristate choice values depend on symbols set to 'm', they should be
hidden when the choice containing them is changed from 'm' to 'y'
(i.e. exclusive choice).

Related Linux commit: fa64e5f6a35efd5e77d639125d973077ca506074
"""


def test(conf):
    assert conf.oldaskconfig('config', 'y') == 0
    assert conf.config_contains('expected_config')
    assert conf.stdout_contains('expected_stdout')
+2 −0
Original line number Diff line number Diff line
CONFIG_CHOICE0=m
CONFIG_CHOICE1=m
+3 −0
Original line number Diff line number Diff line
CONFIG_MODULES=y
CONFIG_DEP=m
CONFIG_CHOICE0=y
+4 −0
Original line number Diff line number Diff line
Tristate Choice [M/y/?] y
Tristate Choice
> 1. Choice 0 (CHOICE0)
choice[1]: 1