diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2019-05-25 13:52:09 +0200 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2019-05-25 16:18:29 +0200 |
| commit | bb33eed5cc6bdce2b65aa570ecd9a400bcd9c180 (patch) | |
| tree | d0a1a5681a6ec5d9ac25407e9594aa6022fb5969 /testsuite.py | |
| parent | e81a77bdb0687b62f91d7dc4d5b84b443808c0a7 (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.py | 121 |
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... |
