Skip to content

Commit

Permalink
kconfig: tests: test if new symbols in choice are asked
Browse files Browse the repository at this point in the history
If new choice values are added with new dependency, and they become
visible during user configuration, oldconfig should recognize them
as (NEW), and ask the user for choice.

This issue was fixed by commit 5d09598 ("kconfig: fix new choices
being skipped upon config update").

This is a subtle corner case.  Add a test case to avoid breakage.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Ulf Magnusson <ulfalizer@gmail.com>
  • Loading branch information
Masahiro Yamada committed Mar 25, 2018
1 parent 49ac3c0 commit b76960c
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 0 deletions.
37 changes: 37 additions & 0 deletions scripts/kconfig/tests/new_choice_with_dep/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
config A
bool "A"
help
This is a new symbol.

choice
prompt "Choice ?"
depends on A
help
"depends on A" has been newly added.

config CHOICE_B
bool "Choice B"

config CHOICE_C
bool "Choice C"
help
This is a new symbol, so should be asked.

endchoice

choice
prompt "Choice2 ?"

config CHOICE_D
bool "Choice D"

config CHOICE_E
bool "Choice E"

config CHOICE_F
bool "Choice F"
depends on A
help
This is a new symbol, so should be asked.

endchoice
14 changes: 14 additions & 0 deletions scripts/kconfig/tests/new_choice_with_dep/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"""
Ask new choice values when they become visible.
If new choice values are added with new dependency, and they become
visible during user configuration, oldconfig should recognize them
as (NEW), and ask the user for choice.
Related Linux commit: 5d09598d488f081e3be23f885ed65cbbe2d073b5
"""


def test(conf):
assert conf.oldconfig('config', 'y') == 0
assert conf.stdout_contains('expected_stdout')
3 changes: 3 additions & 0 deletions scripts/kconfig/tests/new_choice_with_dep/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CONFIG_CHOICE_B=y
# CONFIG_CHOICE_D is not set
CONFIG_CHOICE_E=y
10 changes: 10 additions & 0 deletions scripts/kconfig/tests/new_choice_with_dep/expected_stdout
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
A (A) [N/y/?] (NEW) y
Choice ?
> 1. Choice B (CHOICE_B)
2. Choice C (CHOICE_C) (NEW)
choice[1-2?]:
Choice2 ?
1. Choice D (CHOICE_D)
> 2. Choice E (CHOICE_E)
3. Choice F (CHOICE_F) (NEW)
choice[1-3?]:

0 comments on commit b76960c

Please sign in to comment.