Commit ce91ce5d authored by Tristan Van Berkom's avatar Tristan Van Berkom

Merge branch 'tristan/error-message-regression' into 'master'

sandbox/sandbox.py: Display failed commands in the detail string

See merge request !1081
parents d34a4fd1 d212cdfa
Pipeline #43785719 failed with stage
in 655 minutes and 3 seconds
......@@ -262,8 +262,8 @@ class PlatformError(BstError):
# Raised when errors are encountered by the sandbox implementation
#
class SandboxError(BstError):
def __init__(self, message, reason=None):
super().__init__(message, domain=ErrorDomain.SANDBOX, reason=reason)
def __init__(self, message, detail=None, reason=None):
super().__init__(message, detail=detail, domain=ErrorDomain.SANDBOX, reason=reason)
# ArtifactError
......
......@@ -86,10 +86,11 @@ class SandboxCommandError(SandboxError):
Args:
message (str): The error message to report to the user
detail (str): The detailed error string
collect (str): An optional directory containing partial install contents
"""
def __init__(self, message, *, collect=None):
super().__init__(message, reason='command-failed')
def __init__(self, message, *, detail=None, collect=None):
super().__init__(message, detail=detail, reason='command-failed')
self.collect = collect
......@@ -599,8 +600,8 @@ class _SandboxBatch():
if exitcode != 0:
cmdline = ' '.join(shlex.quote(cmd) for cmd in command.command)
label = command.label or cmdline
raise SandboxCommandError("Command '{}' failed with exitcode {}".format(label, exitcode),
collect=self.collect)
raise SandboxCommandError("Command failed with exitcode {}".format(exitcode),
detail=label, collect=self.collect)
def execute_call(self, call):
call.callback()
......
......@@ -59,4 +59,4 @@ def test_sandbox_bwrap_return_subprocess(cli, tmpdir, datafiles):
result = cli.run(project=project, args=['build', element_name])
result.assert_task_error(error_domain=ErrorDomain.SANDBOX, error_reason="command-failed")
assert "sandbox-bwrap/command-exit-42.bst|Command 'exit 42' failed with exitcode 42" in result.stderr
assert "sandbox-bwrap/command-exit-42.bst|Command failed with exitcode 42" in result.stderr
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment