summaryrefslogtreecommitdiff
path: root/testsuite.py
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite.py')
-rw-r--r--testsuite.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/testsuite.py b/testsuite.py
index b5f0388..802234e 100644
--- a/testsuite.py
+++ b/testsuite.py
@@ -2459,6 +2459,39 @@ config PRINT_ME_TOO
])
+ print("Testing user-defined preprocessor functions")
+
+ # Make Kconfiglib/tests/kconfigfunctions.py importable
+ sys.path.insert(0, "Kconfiglib/tests")
+
+ c = Kconfig("Kconfiglib/tests/Kuserfunctions")
+
+ verify_variable("add-zero", "$(add)", "0", True)
+ verify_variable("add-one", "$(add,1)", "1", True)
+ verify_variable("add-three", "$(add,1,-1,2,1)", "3", True)
+
+ verify_variable("one-one", "$(one,foo bar)", "onefoo barfoo bar", True)
+
+ verify_variable("one-or-more-one", "$(one-or-more,foo)", "foo + ", True)
+ verify_variable("one-or-more-three", "$(one-or-more,foo,bar,baz)",
+ "foo + bar,baz", True)
+
+ def verify_bad_argno(name):
+ try:
+ c.variables[name].expanded_value
+ except KconfigError:
+ pass
+ else:
+ fail("Expected '{}' expansion to flag wrong number of arguments, "
+ "didn't".format(name))
+
+ verify_bad_argno("one-zero")
+ verify_bad_argno("one-two")
+ verify_bad_argno("one-or-more-zero")
+
+ sys.path.pop(0)
+
+
print("Testing KCONFIG_STRICT")
os.environ["KCONFIG_STRICT"] = "y"