We've seen a cryptic:
"ERROR: Fatal errors occurred in subprocesses, tracebacks printed above"
message from oe-selftest with no other traceback information. Improve the
traceback logging to try and give a better indication of any errors that is
ocurring.
(From OE-Core rev:
521dd3d00979a27b6932e58d5497de68abac26e1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
for p in launched:
p.join()
if errors:
+ msg = ""
for (e, tb) in errors:
- bb.error(str(tb))
- bb.fatal("Fatal errors occurred in subprocesses, tracebacks printed above")
+ msg = msg + str(e) + ": " + str(tb) + "\n"
+ bb.fatal("Fatal errors occurred in subprocesses:\n%s" % msg)
return results
def squashspaces(string):
def dummyerror(msg):
print("ERROR: %s" % msg)
+ def dummyfatal(msg):
+ print("ERROR: %s" % msg)
+ raise bb.BBHandledException()
@contextmanager
def captured_output():
d = bb.data_smart.DataSmart()
bb.error = dummyerror
+ bb.fatal = dummyfatal
# Assert the function returns the right results
result = multiprocess_launch(testfunction, ["3", "4", "5", "6"], d, extraargs=(d,))