kconfig: tests: test automatic submenu creation
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>
This commit is contained in:
parent
1903c51190
commit
49ac3c0c3a
3 changed files with 72 additions and 0 deletions
50
scripts/kconfig/tests/auto_submenu/Kconfig
Normal file
50
scripts/kconfig/tests/auto_submenu/Kconfig
Normal file
|
@ -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
scripts/kconfig/tests/auto_submenu/__init__.py
Normal file
12
scripts/kconfig/tests/auto_submenu/__init__.py
Normal file
|
@ -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
scripts/kconfig/tests/auto_submenu/expected_stdout
Normal file
10
scripts/kconfig/tests/auto_submenu/expected_stdout
Normal file
|
@ -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)
|
Loading…
Reference in a new issue