diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2012-12-11 11:09:22 +0100 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2012-12-11 11:09:22 +0100 |
| commit | 0aefe4297d8f1c8f5899f201ff1b8bc93ecbbab4 (patch) | |
| tree | cd24b034dc72b077e266150e77b55ffeab6c1e66 /kconfigtest.py | |
| parent | c946100421397ffc02a6613b3366443bac51d1f4 (diff) | |
Add choice/menu/comment test coverage for get_referenced_symbols().
Diffstat (limited to 'kconfigtest.py')
| -rw-r--r-- | kconfigtest.py | 78 |
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) |
