summaryrefslogtreecommitdiff
path: root/testsuite.py
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2018-05-14 18:00:40 +0200
committerUlf Magnusson <ulfalizer@gmail.com>2018-05-16 19:42:56 +0200
commitcbf32e29a130d22bc734b7778e6304ac9df2a3e8 (patch)
tree458699338def9b21680ac958889f51403652362c /testsuite.py
parent0bc5961d8e9f49629e33a7193dc921b064ba1587 (diff)
Expand environment variables in strings directly
Make "$FOO" directly reference the environment variable $FOO in e.g. 'source' statements, instead of the symbol FOO. Use os.path.expandvars() to expand strings (which preserves "$FOO" as-is if no environment variable FOO exists). This gets rid of the 'option env' "bounce" symbols, which are mostly just spam and are buggy in the C tools (dependencies aren't always respected, due to parsing and evaluation getting mixed up). The same change will probably appear soon in the C tools as well. Keep accepting 'option env' to preserve some backwards compatibility, but ignore it when expanding strings. For compatibility with the C tools, bounce symbols will need to be named the same as the environment variables they reference (which is the case for the Linux kernel). This is a compatibility break, so the major version will be bumped to 6 at the next release. The main motivation for adding this now is to allow recording properties on each MenuNode in a clean way. 'option env' symbols interact badly with delayed dependency propagation. Side note: I have a feeling that recording environment variable values might be redundant to trigger rebuilds if sync_deps() is run at each compile. It should detect all changes to symbol values due to environment variables changing value.
Diffstat (limited to 'testsuite.py')
-rw-r--r--testsuite.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/testsuite.py b/testsuite.py
index fbc511b..3f29ae3 100644
--- a/testsuite.py
+++ b/testsuite.py
@@ -808,10 +808,17 @@ g
.format(repr(node), expected_loc, node_loc))
# Expanded in the 'source' statement in Klocation
+
os.environ["TESTS_DIR_FROM_ENV"] = "tests"
os.environ["SUB_DIR_FROM_ENV"] = "sub"
os.environ["srctree"] = "Kconfiglib/"
+ os.environ["_SOURCED"] = "_sourced"
+ os.environ["_RSOURCED"] = "_rsourced"
+ os.environ["_GSOURCED"] = "_gsourced"
+ os.environ["_GRSOURCED"] = "_grsourced"
+
+
# Has symbol with empty help text, so disable warnings
c = Kconfig("tests/Klocation", warn=False)
@@ -830,7 +837,7 @@ g
"tests/sub/Klocation_gsourced2:1",
"tests/sub/Klocation_grsourced1:1",
"tests/sub/Klocation_grsourced2:1",
- "tests/Klocation:78")
+ "tests/Klocation:54")
verify_locations(c.named_choices["CHOICE"].nodes,
"tests/Klocation_sourced:5")
@@ -1258,7 +1265,7 @@ g
"defconfig_list symbol exist")
# Referenced in Kdefconfig_existent(_but_n)
- os.environ["BAR"] = "defconfig_2"
+ os.environ["FOO"] = "defconfig_2"
c = Kconfig("Kconfiglib/tests/Kdefconfig_existent_but_n")
verify(c.defconfig_filename is None,
@@ -1267,7 +1274,7 @@ g
c = Kconfig("Kconfiglib/tests/Kdefconfig_existent")
verify(c.defconfig_filename == "Kconfiglib/tests/defconfig_2",
- "defconfig_filename should return the existent file "
+ "defconfig_filename should return the existing file "
"Kconfiglib/tests/defconfig_2")
# Should also look relative to $srctree if the specified defconfig is a