summaryrefslogtreecommitdiff
path: root/kconfigtest.py
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2012-12-11 11:09:22 +0100
committerUlf Magnusson <ulfalizer@gmail.com>2012-12-11 11:09:22 +0100
commit0aefe4297d8f1c8f5899f201ff1b8bc93ecbbab4 (patch)
treecd24b034dc72b077e266150e77b55ffeab6c1e66 /kconfigtest.py
parentc946100421397ffc02a6613b3366443bac51d1f4 (diff)
Add choice/menu/comment test coverage for get_referenced_symbols().
Diffstat (limited to 'kconfigtest.py')
-rw-r--r--kconfigtest.py78
1 files changed, 60 insertions, 18 deletions
diff --git a/kconfigtest.py b/kconfigtest.py
index 797832f..af63c26 100644
--- a/kconfigtest.py
+++ b/kconfigtest.py
@@ -388,33 +388,75 @@ def run_selftests():
c = kconfiglib.Config("Kconfiglib/tests/Kref")
- def verify_refs(sym_name, refs_no_enclosing, refs_enclosing):
- sym = c[sym_name]
- sym_refs = sym.get_referenced_symbols()
- sym_refs_enclosing = sym.get_referenced_symbols(True)
- verify(len(sym_refs) == len(refs_no_enclosing),
+ # General function for checking get_referenced_symbols() output.
+ # Specialized for symbols below.
+ def verify_refs(item, refs_no_enclosing, refs_enclosing):
+ item_refs = item.get_referenced_symbols()
+ item_refs_enclosing = item.get_referenced_symbols(True)
+
+ # For failure messages
+ if item.is_symbol():
+ item_string = item.get_name()
+ elif item.is_choice():
+ if item.get_name() is None:
+ item_string = "choice"
+ else:
+ item_string = "choice " + item.get_name()
+ elif item.is_menu():
+ item_string = 'menu "{0}"'.format(item.get_title())
+ else:
+ # Comment
+ item_string = 'comment "{0}"'.format(item.get_text())
+
+ verify(len(item_refs) == len(refs_no_enclosing),
"Wrong number of refs excluding enclosing for {0}".
- format(sym.get_name()))
- verify(len(sym_refs_enclosing) == len(refs_enclosing),
+ format(item_string))
+ verify(len(item_refs_enclosing) == len(refs_enclosing),
"Wrong number of refs including enclosing for {0}".
- format(sym.get_name()))
+ format(item_string))
for r in [c[name] for name in refs_no_enclosing]:
- verify(r in sym_refs,
+ verify(r in item_refs,
"{0} should reference {1} when excluding enclosing".
- format(sym.get_name(), r.get_name()))
+ format(item_string, r.get_name()))
for r in [c[name] for name in refs_enclosing]:
- verify(r in sym_refs_enclosing,
+ verify(r in item_refs_enclosing,
"{0} should reference {1} when including enclosing".
- format(sym.get_name(), r.get_name()))
+ format(item_string, r.get_name()))
+
+ # Symbols referenced by symbols
- verify_refs("NO_REF", [], [])
- verify_refs("ONE_REF", ["A"], ["A"])
+ def verify_sym_refs(sym_name, refs_no_enclosing, refs_enclosing):
+ verify_refs(c[sym_name], refs_no_enclosing, refs_enclosing)
+
+ verify_sym_refs("NO_REF", [], [])
+ verify_sym_refs("ONE_REF", ["A"], ["A"])
own_refs = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L",
"M", "N", "O"]
- verify_refs("MANY_REF",
- own_refs,
- own_refs + ["IF_REF_1", "IF_REF_2", "MENU_REF_1",
- "MENU_REF_2"])
+ verify_sym_refs("MANY_REF",
+ own_refs,
+ own_refs + ["IF_REF_1", "IF_REF_2", "MENU_REF_1",
+ "MENU_REF_2"])
+
+ # Symbols referenced by choices
+
+ own_refs = ["CHOICE_REF_4", "CHOICE_REF_5", "CHOICE_REF_6"]
+ verify_refs(c.get_choices()[0],
+ own_refs,
+ own_refs + ["CHOICE_REF_1", "CHOICE_REF_2", "CHOICE_REF_3"])
+
+ # Symbols referenced by menus
+
+ own_refs = ["NO_REF", "MENU_REF_3"]
+ verify_refs(c.get_menus()[1],
+ own_refs,
+ own_refs + ["MENU_REF_1", "MENU_REF_2"])
+
+ # Symbols referenced by comments
+
+ own_refs = ["COMMENT_REF_3", "COMMENT_REF_4", "COMMENT_REF_5"]
+ verify_refs(c.get_comments()[0],
+ own_refs,
+ own_refs + ["COMMENT_REF_1", "COMMENT_REF_2"])
#
# get_selected_symbols() (same test file)