summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/parse/parse_py/BBHandler.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2022-07-01 17:52:52 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-07-04 22:52:36 +0100
commitbc6d96e69684253a7236594cb0af2738be06b7a9 (patch)
tree808dd13032bcbecf4ecd62c5a493bfeda289ae57 /bitbake/lib/bb/parse/parse_py/BBHandler.py
parent04467fb51c6816e7373e0bbbe983a97972c6312f (diff)
downloadpoky-bc6d96e69684253a7236594cb0af2738be06b7a9.tar.gz
bitbake: ConfHandler/BBHandler: Improve comment error messages and add tests
Currently if you trigger one of the comment errors, the newline characters are stripped and the line numbers are incorrect. In one case it prints the empty line which is also unhelpful. Rework the code around these errors so the line numbers are correct and the lines in question are more clearly displayed complete with newlines so the user can more clearly see the error. I also added a couple of simplistic test cases to ensure that errors are raised by the two known comment format errors. [YOCTO #11904] (Bitbake rev: 712da71b24445c814d79a206ce26188def8fce0a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/parse/parse_py/BBHandler.py')
-rw-r--r--bitbake/lib/bb/parse/parse_py/BBHandler.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py
index ee9bd760ce..68415735fd 100644
--- a/bitbake/lib/bb/parse/parse_py/BBHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py
@@ -178,10 +178,10 @@ def feeder(lineno, s, fn, root, statements, eof=False):
178 178
179 if s and s[0] == '#': 179 if s and s[0] == '#':
180 if len(__residue__) != 0 and __residue__[0][0] != "#": 180 if len(__residue__) != 0 and __residue__[0][0] != "#":
181 bb.fatal("There is a comment on line %s of file %s (%s) which is in the middle of a multiline expression.\nBitbake used to ignore these but no longer does so, please fix your metadata as errors are likely as a result of this change." % (lineno, fn, s)) 181 bb.fatal("There is a comment on line %s of file %s:\n'''\n%s\n'''\nwhich is in the middle of a multiline expression. This syntax is invalid, please correct it." % (lineno, fn, s))
182 182
183 if len(__residue__) != 0 and __residue__[0][0] == "#" and (not s or s[0] != "#"): 183 if len(__residue__) != 0 and __residue__[0][0] == "#" and (not s or s[0] != "#"):
184 bb.fatal("There is a confusing multiline, partially commented expression on line %s of file %s (%s).\nPlease clarify whether this is all a comment or should be parsed." % (lineno, fn, s)) 184 bb.fatal("There is a confusing multiline partially commented expression on line %s of file %s:\n%s\nPlease clarify whether this is all a comment or should be parsed." % (lineno - len(__residue__), fn, "\n".join(__residue__)))
185 185
186 if s and s[-1] == '\\': 186 if s and s[-1] == '\\':
187 __residue__.append(s[:-1]) 187 __residue__.append(s[:-1])