From 5d693b2e66451aedfd694ffde4dba7d4b74afa46 Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Fri, 5 Jan 2018 20:37:00 +0100 Subject: Don't write out 'option env' symbols to C header Oversight. SYMBOL_AUTO (env_var) being set indirectly clears SYMBOL_WRITE (_write_to_conf) in sym_calc_value(). The .config case was already fine due to an explicit env_var check. Even non-visible env. symbols ended up in the header, due to 'option env' internally adding a default. Disallow user values altogether on 'option env' symbols, even if specified manually. This matches the C implementation. Add a warning too. --- testsuite.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'testsuite.py') diff --git a/testsuite.py b/testsuite.py index e7168a6..932ee6a 100644 --- a/testsuite.py +++ b/testsuite.py @@ -1233,6 +1233,24 @@ g format(s.name)) + print("Testing 'option env' semantics") + + os.environ["ENV_VAR"] = "ENV_VAR value" + + # References undefined env. var. and tries to assign 'option env' variable, + # so disable warnings + c = Kconfig("Kconfiglib/tests/Kmisc", warn=False) + + # Verify that 'option env' symbols can't be assigned user values, and that + # 'option env' is treated like a default + assign_and_verify_user_value("FROM_ENV", "foo", None, False) + assign_and_verify_user_value("FROM_ENV_MISSING", "foo", None, False) + verify_value("FROM_ENV", "ENV_VAR value") + verify_value("FROM_ENV_MISSING", "missing") + + verify_value("FROM_ENV_WEIRD", "weird") + + print("Testing defined vs undefined symbols") for name in "A", "B", "C", "D", "BOOL", "TRISTATE", "STRING", "INT", "HEX": -- cgit v1.2.3