From 697d043fa9c2408be0a64d45f7158e6eb52fab4a Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Sun, 9 Dec 2012 04:32:49 +0100 Subject: Add selftests for get_referenced_symbols(). --- kconfigtest.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/kconfigtest.py b/kconfigtest.py index fe69a94..3f47afb 100644 --- a/kconfigtest.py +++ b/kconfigtest.py @@ -275,6 +275,37 @@ def run_selftests(): assert_true(menu_2.get_symbols(True) == [F, G, H], "Wrong recursive symbols in second menu") + # + # get_referenced_symbols() + # + + c = kconfiglib.Config("Kconfiglib/tests/Kref") + def assert_refs(sym, refs_no_enclosing, refs_enclosing): + sym = c[sym] + sym_refs = sym.get_referenced_symbols() + sym_refs_enclosing = sym.get_referenced_symbols(True) + assert_true(len(sym_refs) == len(refs_no_enclosing), + "Wrong number of refs excluding enclosing for {0}".\ + format(sym.get_name())) + assert_true(len(sym_refs_enclosing) == len(refs_enclosing), + "Wrong number of refs including enclosing for {0}".\ + format(sym.get_name())) + for r in [c[ref] for ref in refs_no_enclosing]: + assert_true(r in sym_refs, + "{0} should reference {1} when excluding enclosing".\ + format(sym.get_name(), r.get_name())) + for r in [c[ref] for ref in refs_enclosing]: + assert_true(r in sym_refs_enclosing, + "{0} should reference {1} when including enclosing".\ + format(sym.get_name(), r.get_name())) + assert_refs("NO_REF", [], []) + assert_refs("ONE_REF", ["A"], ["A"]) + own_refs = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"] + assert_refs("MANY_REF", + own_refs, + own_refs + ["IF_REF_1", "IF_REF_2", "MENU_REF_1", + "MENU_REF_2"]) + # # Object dependencies # @@ -307,6 +338,11 @@ def run_selftests(): assert_dependent("S", ["A", "B", "C"]) print + if _all_ok: + print "All selftests passed" + else: + print "Some selftests failed" + print def run_compatibility_tests(): """Runs tests on configurations from the kernel. Tests compability with the -- cgit v1.2.3