diff options
author | Kai Kang <kai.kang@windriver.com> | 2023-04-11 17:09:04 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-04-13 12:00:29 +0100 |
commit | bb9e523291a3cad6e1596ee6a1e715b5e5feba8f (patch) | |
tree | dc793b2615d4dc7d8dbb4051ba0b19e214535eae | |
parent | 316524ab59a5e738c25e062923ee5717d88ae5c7 (diff) | |
download | bitbake-contrib-bb9e523291a3cad6e1596ee6a1e715b5e5feba8f.tar.gz |
bitbake: ConfHandler: Allow variable flag name with a single character
Update regex pattern to allow variable flag name with a single character.
Regression tests have also been updated in `bb.parse` and
`bin/bitbake-selftest -k ParseTest` has been successfully executed.
Eliminate a trailing space as well.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | lib/bb/parse/parse_py/ConfHandler.py | 4 | ||||
-rw-r--r-- | lib/bb/tests/parse.py | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/bb/parse/parse_py/ConfHandler.py b/lib/bb/parse/parse_py/ConfHandler.py index 05c627ec8..7826dee7d 100644 --- a/lib/bb/parse/parse_py/ConfHandler.py +++ b/lib/bb/parse/parse_py/ConfHandler.py @@ -21,7 +21,7 @@ __config_regexp__ = re.compile( r""" ^ (?P<exp>export\s+)? (?P<var>[a-zA-Z0-9\-_+.${}/~:]+?) - (\[(?P<flag>[a-zA-Z0-9\-_+.][a-zA-Z0-9\-_+.@]+)\])? + (\[(?P<flag>[a-zA-Z0-9\-_+.][a-zA-Z0-9\-_+.@]*)\])? \s* ( (?P<colon>:=) | @@ -103,7 +103,7 @@ def include_single_file(parentfn, fn, lineno, data, error_out): # We have an issue where a UI might want to enforce particular settings such as # an empty DISTRO variable. If configuration files do something like assigning # a weak default, it turns out to be very difficult to filter out these changes, -# particularly when the weak default might appear half way though parsing a chain +# particularly when the weak default might appear half way though parsing a chain # of configuration files. We therefore let the UIs hook into configuration file # parsing. This turns out to be a hard problem to solve any other way. confFilters = [] diff --git a/lib/bb/tests/parse.py b/lib/bb/tests/parse.py index d27c7c6f1..a3165d95b 100644 --- a/lib/bb/tests/parse.py +++ b/lib/bb/tests/parse.py @@ -222,6 +222,7 @@ VAR = " \\ at_sign_in_var_flag = """ A[flag@.service] = "nonet" B[flag@.target] = "ntb" +C[f] = "flag" unset A[flag@.service] """ @@ -232,6 +233,7 @@ unset A[flag@.service] self.assertEqual(d.getVar("B"), None) self.assertEqual(d.getVarFlag("A","flag@.service"), None) self.assertEqual(d.getVarFlag("B","flag@.target"), "ntb") + self.assertEqual(d.getVarFlag("C","f"), "flag") def test_parse_invalid_at_sign_in_var_flag(self): invalid_at_sign = self.at_sign_in_var_flag.replace("B[f", "B[@f") |