summaryrefslogtreecommitdiff
path: root/testsuite.py
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2018-01-28 10:02:20 +0100
committerUlf Magnusson <ulfalizer@gmail.com>2018-01-28 10:56:57 +0100
commit9c309400fca07f15d8f4b116c12fa58f97d8043a (patch)
treed7537af3e0da66e7e9335f563b8dcdb69c601388 /testsuite.py
parent13c563637ebb87e2442adf6b12ab4931adb18268 (diff)
Add some post-parsing warnings
These are easiest to check after parsing, since a symbol/choice can be defined in multiple locations: - Warn if a symbol or choice defined without a type. Also warn for choice value symbols defined without a type, even if they automatically get their type from the choice. This feature isn't well-known and probably not used deliberately. - Warn if a choice is defined without a prompt - Warn of a choice default symbol is not contained in the choice Also move _name_and_loc_str() from the symbol class to the global scope and generalize it to be able to handle choices.
Diffstat (limited to 'testsuite.py')
-rw-r--r--testsuite.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/testsuite.py b/testsuite.py
index a250c6e..083568d 100644
--- a/testsuite.py
+++ b/testsuite.py
@@ -801,19 +801,19 @@ g
verify_locations(c.syms["SINGLE_DEF"].nodes, "tests/Klocation:4")
verify_locations(c.syms["MULTI_DEF"].nodes,
- "tests/Klocation:6",
- "tests/Klocation:29",
+ "tests/Klocation:7",
+ "tests/Klocation:31",
"tests/Klocation_included:3",
- "tests/Klocation:45")
+ "tests/Klocation:47")
verify_locations(c.named_choices["CHOICE"].nodes,
"tests/Klocation_included:5")
verify_locations([c.syms["MENU_HOOK"].nodes[0].next],
- "tests/Klocation_included:10")
+ "tests/Klocation_included:12")
verify_locations([c.syms["COMMENT_HOOK"].nodes[0].next],
- "tests/Klocation_included:15")
+ "tests/Klocation_included:18")
# Test recursive 'source' detection
@@ -1520,7 +1520,11 @@ g
print("Testing choice semantics")
- c = Kconfig("Kconfiglib/tests/Kchoice")
+ # Would warn for choice value symbols defined without a type, even
+ # though the type is automatically derived. This is probably more
+ # helpful than ignoring those cases, as this feature isn't used
+ # deliberately anywhere from what I've seen.
+ c = Kconfig("Kconfiglib/tests/Kchoice", warn=False)
for name in "BOOL", "BOOL_OPT", "BOOL_M", "DEFAULTS":
verify(c.named_choices[name].orig_type == BOOL,