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.
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,))