Skip to content

Commit

Permalink
kconfig: tests: test automatic submenu creation
Browse files Browse the repository at this point in the history
If a symbols has dependency on the preceding symbol, the menu entry
should become the submenu of the preceding one, and displayed with
deeper indentation.

This is done by restructuring the menu tree in menu_finalize().
It is a bit complicated computation, so let's add a test case.

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 1903c51 commit 49ac3c0
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 0 deletions.
50 changes: 50 additions & 0 deletions scripts/kconfig/tests/auto_submenu/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
config A
bool "A"
default y

config A0
bool "A0"
depends on A
default y
help
This depends on A, so should be a submenu of A.

config A0_0
bool "A1_0"
depends on A0
help
Submenus are created recursively.
This should be a submenu of A0.

config A1
bool "A1"
depends on A
default y
help
This should line up with A0.

choice
prompt "choice"
depends on A1
help
Choice should become a submenu as well.

config A1_0
bool "A1_0"

config A1_1
bool "A1_1"

endchoice

config B
bool "B"
help
This is independent of A.

config C
bool "C"
depends on A
help
This depends on A, but not a consecutive item, so can/should not
be a submenu.
12 changes: 12 additions & 0 deletions scripts/kconfig/tests/auto_submenu/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""
Create submenu for symbols that depend on the preceding one.
If a symbols has dependency on the preceding symbol, the menu entry
should become the submenu of the preceding one, and displayed with
deeper indentation.
"""


def test(conf):
assert conf.oldaskconfig() == 0
assert conf.stdout_contains('expected_stdout')
10 changes: 10 additions & 0 deletions scripts/kconfig/tests/auto_submenu/expected_stdout
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
A (A) [Y/n/?] (NEW)
A0 (A0) [Y/n/?] (NEW)
A1_0 (A0_0) [N/y/?] (NEW)
A1 (A1) [Y/n/?] (NEW)
choice
> 1. A1_0 (A1_0) (NEW)
2. A1_1 (A1_1) (NEW)
choice[1-2?]:
B (B) [N/y/?] (NEW)
C (C) [N/y/?] (NEW)

0 comments on commit 49ac3c0

Please sign in to comment.