diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2018-05-14 18:00:40 +0200 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2018-05-16 19:42:56 +0200 |
| commit | cbf32e29a130d22bc734b7778e6304ac9df2a3e8 (patch) | |
| tree | 458699338def9b21680ac958889f51403652362c /testsuite.py | |
| parent | 0bc5961d8e9f49629e33a7193dc921b064ba1587 (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.py | 13 |
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 |
