On Tue, Feb 6, 2018 at 1:34 AM, Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote: > 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 fa64e5f6a35e ("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 fa64e5f6a35e, this line was written to the .config file. > > Then, it is not written after my fix "kconfig: do not write choice > values when their dependency becomes n". > > In this test, "# CONFIG_CHOICE1 is not set" is don't care. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > --- > > .../kconfig/tests/choice_value_with_m_dep/Kconfig | 20 ++++++++++++++++++++ > .../tests/choice_value_with_m_dep/__init__.py | 15 +++++++++++++++ > scripts/kconfig/tests/choice_value_with_m_dep/config | 2 ++ > .../tests/choice_value_with_m_dep/expected_config | 3 +++ > .../tests/choice_value_with_m_dep/expected_stdout | 4 ++++ > 5 files changed, 44 insertions(+) > create mode 100644 scripts/kconfig/tests/choice_value_with_m_dep/Kconfig > create mode 100644 scripts/kconfig/tests/choice_value_with_m_dep/__init__.py > create mode 100644 scripts/kconfig/tests/choice_value_with_m_dep/config > create mode 100644 scripts/kconfig/tests/choice_value_with_m_dep/expected_config > create mode 100644 scripts/kconfig/tests/choice_value_with_m_dep/expected_stdout > > diff --git a/scripts/kconfig/tests/choice_value_with_m_dep/Kconfig b/scripts/kconfig/tests/choice_value_with_m_dep/Kconfig > new file mode 100644 > index 0000000..dbc49e2 > --- /dev/null > +++ b/scripts/kconfig/tests/choice_value_with_m_dep/Kconfig > @@ -0,0 +1,20 @@ > +config MODULES > + bool > + default 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 > diff --git a/scripts/kconfig/tests/choice_value_with_m_dep/__init__.py b/scripts/kconfig/tests/choice_value_with_m_dep/__init__.py > new file mode 100644 > index 0000000..ec71777 > --- /dev/null > +++ b/scripts/kconfig/tests/choice_value_with_m_dep/__init__.py > @@ -0,0 +1,15 @@ > +""" > +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') > diff --git a/scripts/kconfig/tests/choice_value_with_m_dep/config b/scripts/kconfig/tests/choice_value_with_m_dep/config > new file mode 100644 > index 0000000..3a126b7 > --- /dev/null > +++ b/scripts/kconfig/tests/choice_value_with_m_dep/config > @@ -0,0 +1,2 @@ > +CONFIG_CHOICE0=m > +CONFIG_CHOICE1=m > diff --git a/scripts/kconfig/tests/choice_value_with_m_dep/expected_config b/scripts/kconfig/tests/choice_value_with_m_dep/expected_config > new file mode 100644 > index 0000000..4d07b44 > --- /dev/null > +++ b/scripts/kconfig/tests/choice_value_with_m_dep/expected_config > @@ -0,0 +1,3 @@ > +CONFIG_MODULES=y > +CONFIG_DEP=m > +CONFIG_CHOICE0=y > diff --git a/scripts/kconfig/tests/choice_value_with_m_dep/expected_stdout b/scripts/kconfig/tests/choice_value_with_m_dep/expected_stdout > new file mode 100644 > index 0000000..5eac85d > --- /dev/null > +++ b/scripts/kconfig/tests/choice_value_with_m_dep/expected_stdout > @@ -0,0 +1,4 @@ > +Tristate Choice [M/y/?] > +Tristate Choice > +> 1. Choice 0 (CHOICE0) > +choice[1]: 1 > -- > 2.7.4 > Reviewed-by: Ulf Magnusson <ulfalizer@xxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html