From 68043b21a2fdf09d91996977d5408e92a23fe3e8 Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Wed, 13 Jun 2018 01:33:15 +0200 Subject: Add MenuNode function that returns referenced items MenuNode.referenced() returns all symbols (and choices, for choice symbols) referenced in the properties (prompt, defaults, selects, ranges, etc.) and property conditions of the menu node. Handy e.g. when generating cross-references. --- testsuite.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'testsuite.py') diff --git a/testsuite.py b/testsuite.py index 1f1bc32..5c12bc0 100644 --- a/testsuite.py +++ b/testsuite.py @@ -1009,8 +1009,36 @@ g ) + print("Testing MenuNode.referenced()") + + c = Kconfig("Kconfiglib/tests/Kreferenced", warn=False) + + def verify_deps(item, *dep_names): + verify_equal(tuple(sorted(item.name for item in item.referenced())), + dep_names) + + verify_deps(c.syms["NO_REFS"].nodes[0], "y") + + verify_deps(c.syms["JUST_DEPENDS_ON_REFS"].nodes[0], "A", "B") + + verify_deps(c.syms["LOTS_OF_REFS"].nodes[0], + *(chr(n) for n in range(ord('A'), ord('Z') + 1))) + + verify_deps(c.syms["INT_REFS"].nodes[0], + "A", "B", "C", "D", "E", "F", "G", "H", "y") + + verify_deps(c.syms["CHOICE_REF"].nodes[0], "CHOICE") + + verify_deps(c.menus[0], "A", "B", "C", "D") + + verify_deps(c.comments[0], "A", "B") + + print("Testing split_expr()") + c = Kconfig("Kconfiglib/tests/empty") + c.disable_warnings() + def verify_split(to_split, op, operand_strs): # The same hackage as in Kconfig.eval_string() c._line = "if " + to_split -- cgit v1.2.3