lkml.org 
[lkml]   [2018]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH 12/14] kconfig: test: check visibility of tristate choice values in y choice
    On Tue, Feb 6, 2018 at 1:34 AM, Masahiro Yamada
    <yamada.masahiro@socionext.com> 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@socionext.com>
    > ---
    >
    > .../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@gmail.com>

    \
     
     \ /
      Last update: 2018-02-08 01:14    [W:7.148 / U:1.332 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site