summaryrefslogtreecommitdiff
path: root/testsuite.py
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2019-05-25 13:52:09 +0200
committerUlf Magnusson <ulfalizer@gmail.com>2019-05-25 16:18:29 +0200
commitbb33eed5cc6bdce2b65aa570ecd9a400bcd9c180 (patch)
treed0a1a5681a6ec5d9ac25407e9594aa6022fb5969 /testsuite.py
parente81a77bdb0687b62f91d7dc4d5b84b443808c0a7 (diff)
Strip direct deps. from property conditions in Symbol/Choice/MenuNode.__str__()
Commit e81a77b ("Consistently put direct deps. last when propagating") makes the position of the direct deps. in property conditions predictable after dependency propagation, making it easy to strip them as needed. Use this to implement MenuNode.orig_{prompt,defaults,selects,implies,ranges}, which work like the non-orig_* versions but omit the direct deps. Use those in turn to omit the direct deps in Symbol/Choice.__str__(). The direct deps. (with propagated parent deps.) can still be seen after 'depends on ...', so there is no loss of information. This unclutters Kconfig definitions shown in menuconfig/guiconfig and in any generated documentation. The old output also had duplicated dependencies, though it doesn't matter for evaluation. Before: config A bool prompt "A" if DEP default y if FOO && DEP depends on DEP After: config A bool prompt "A" default y if FOO depends on DEP
Diffstat (limited to 'testsuite.py')
-rw-r--r--testsuite.py121
1 files changed, 82 insertions, 39 deletions
diff --git a/testsuite.py b/testsuite.py
index c1690d3..f3f2b42 100644
--- a/testsuite.py
+++ b/testsuite.py
@@ -557,7 +557,7 @@ config ADVANCED
config ADVANCED
tristate
- prompt "prompt 4" if VIS && DEP4 && DEP3
+ prompt "prompt 4" if VIS
depends on DEP4 && DEP3
""")
@@ -590,7 +590,7 @@ config ADVANCED
config ADVANCED
tristate
- prompt "prompt 4" if [VIS] && [DEP4] && [DEP3]
+ prompt "prompt 4" if [VIS]
depends on [DEP4] && [DEP3]
""")
@@ -645,39 +645,39 @@ config OPTIONS
verify_str(c.syms["CORRECT_PROP_LOCS_BOOL"], """
config CORRECT_PROP_LOCS_BOOL
bool
- prompt "prompt 1" if LOC_1
- default DEFAULT_1 if LOC_1
- default DEFAULT_2 if LOC_1
- select SELECT_1 if LOC_1
- select SELECT_2 if LOC_1
- imply IMPLY_1 if LOC_1
- imply IMPLY_2 if LOC_1
+ prompt "prompt 1"
+ default DEFAULT_1
+ default DEFAULT_2
+ select SELECT_1
+ select SELECT_2
+ imply IMPLY_1
+ imply IMPLY_2
depends on LOC_1
help
help 1
menuconfig CORRECT_PROP_LOCS_BOOL
bool
- prompt "prompt 2" if LOC_2
- default DEFAULT_3 if LOC_2
- default DEFAULT_4 if LOC_2
- select SELECT_3 if LOC_2
- select SELECT_4 if LOC_2
- imply IMPLY_3 if LOC_2
- imply IMPLY_4 if LOC_2
+ prompt "prompt 2"
+ default DEFAULT_3
+ default DEFAULT_4
+ select SELECT_3
+ select SELECT_4
+ imply IMPLY_3
+ imply IMPLY_4
depends on LOC_2
help
help 2
config CORRECT_PROP_LOCS_BOOL
bool
- prompt "prompt 3" if LOC_3
- default DEFAULT_5 if LOC_3
- default DEFAULT_6 if LOC_3
- select SELECT_5 if LOC_3
- select SELECT_6 if LOC_3
- imply IMPLY_5 if LOC_3
- imply IMPLY_6 if LOC_3
+ prompt "prompt 3"
+ default DEFAULT_5
+ default DEFAULT_6
+ select SELECT_5
+ select SELECT_6
+ imply IMPLY_5
+ imply IMPLY_6
depends on LOC_3
help
help 2
@@ -686,28 +686,28 @@ config CORRECT_PROP_LOCS_BOOL
verify_str(c.syms["CORRECT_PROP_LOCS_INT"], """
config CORRECT_PROP_LOCS_INT
int
- range 1 2 if LOC_1
- range 3 4 if LOC_1
+ range 1 2
+ range 3 4
depends on LOC_1
config CORRECT_PROP_LOCS_INT
int
- range 5 6 if LOC_2
- range 7 8 if LOC_2
+ range 5 6
+ range 7 8
depends on LOC_2
""")
verify_custom_str(c.syms["CORRECT_PROP_LOCS_INT"], """
config CORRECT_PROP_LOCS_INT
int
- range [1] [2] if [LOC_1]
- range [3] [4] if [LOC_1]
+ range [1] [2]
+ range [3] [4]
depends on [LOC_1]
config CORRECT_PROP_LOCS_INT
int
- range [5] [6] if [LOC_2]
- range [7] [8] if [LOC_2]
+ range [5] [6]
+ range [7] [8]
depends on [LOC_2]
""")
@@ -733,34 +733,34 @@ choice
verify_str(c.named_choices["CORRECT_PROP_LOCS_CHOICE"], """
choice CORRECT_PROP_LOCS_CHOICE
bool
- default CHOICE_3 if LOC_1
+ default CHOICE_3
depends on LOC_1
choice CORRECT_PROP_LOCS_CHOICE
bool
- default CHOICE_4 if LOC_2
+ default CHOICE_4
depends on LOC_2
choice CORRECT_PROP_LOCS_CHOICE
bool
- default CHOICE_5 if LOC_3
+ default CHOICE_5
depends on LOC_3
""")
verify_custom_str(c.named_choices["CORRECT_PROP_LOCS_CHOICE"], """
choice CORRECT_PROP_LOCS_CHOICE
bool
- default [CHOICE_3] if [LOC_1]
+ default [CHOICE_3]
depends on [LOC_1]
choice CORRECT_PROP_LOCS_CHOICE
bool
- default [CHOICE_4] if [LOC_2]
+ default [CHOICE_4]
depends on [LOC_2]
choice CORRECT_PROP_LOCS_CHOICE
bool
- default [CHOICE_5] if [LOC_3]
+ default [CHOICE_5]
depends on [LOC_3]
""")
@@ -798,6 +798,49 @@ comment "advanced comment"
""")
+ print("Testing MenuNode.orig_*")
+
+ # Just test some corner cases here. These are already tested above. Use
+ # MenuNode.__str__() as a proxy.
+
+ verify_str(c.syms["DEP_REM_CORNER_CASES"], """
+config DEP_REM_CORNER_CASES
+ bool
+ default A
+ depends on "n"
+
+config DEP_REM_CORNER_CASES
+ bool
+ default B if "n"
+
+config DEP_REM_CORNER_CASES
+ bool
+ default C
+ depends on "m" && MODULES
+
+config DEP_REM_CORNER_CASES
+ bool
+ default D if A
+
+config DEP_REM_CORNER_CASES
+ bool
+ default E if !E1
+ default F if F1 = F2
+ default G if G1 || H1
+ depends on !H
+
+config DEP_REM_CORNER_CASES
+ bool
+ default H
+ depends on "foo" = "bar"
+
+config DEP_REM_CORNER_CASES
+ bool
+ prompt "prompt" if FOO || BAR
+ depends on BAZ && QAZ
+""")
+
+
print("Testing Symbol.__repr__()")
def verify_repr(item, s):
@@ -2349,14 +2392,14 @@ config G
config H
bool
- prompt "H" if I && <choice>
+ prompt "H"
depends on I && <choice>
...depends on the choice symbol I (defined at Kconfiglib/tests/Kdeploop10:41), with definition...
config I
bool
- prompt "I" if <choice>
+ prompt "I"
depends on <choice>
...depends on <choice> (defined at Kconfiglib/tests/Kdeploop10:38), with definition...