From 066f44b1617f3d25d66d41340205b3b585086eaa Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Wed, 12 Apr 2023 15:32:42 +0800 Subject: bitbake: event: add bb.event.ParseError Add bb.event.ParseError to let error-report can catch this kind of error. (Bitbake rev: 316524ab59a5e738c25e062923ee5717d88ae5c7) Signed-off-by: Mingli Yu Signed-off-by: Richard Purdie --- bitbake/lib/bb/cooker.py | 5 +++-- bitbake/lib/bb/event.py | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 1797a1d4ca..c8ff3ce085 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -2223,7 +2223,7 @@ class CookerParser(object): self.results = itertools.chain(self.results, self.parse_generator()) - def shutdown(self, clean=True): + def shutdown(self, clean=True, eventmsg="Parsing halted due to errors"): if not self.toparse: return if self.haveshutdown: @@ -2238,6 +2238,7 @@ class CookerParser(object): bb.event.fire(event, self.cfgdata) else: + bb.event.fire(bb.event.ParseError(eventmsg), self.cfgdata) bb.error("Parsing halted due to errors, see error messages above") # Cleanup the queue before call process.join(), otherwise there might be @@ -2355,7 +2356,7 @@ class CookerParser(object): except bb.parse.ParseError as exc: self.error += 1 logger.error(str(exc)) - self.shutdown(clean=False) + self.shutdown(clean=False, eventmsg=str(exc)) return False except bb.data_smart.ExpansionError as exc: self.error += 1 diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index 37cc630c63..0d0e0a68aa 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py @@ -856,3 +856,11 @@ class FindSigInfoResult(Event): def __init__(self, result): Event.__init__(self) self.result = result + +class ParseError(Event): + """ + Event to indicate parse failed + """ + def __init__(self, msg): + super().__init__() + self._msg = msg -- cgit v1.2.3-54-g00ecf