mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-03 18:23:34 +00:00
test: Decode exceptions only with sandbox
When a real board fails we don't want to decode the exception. Reserve that behaviour for sandbox. Also avoid raising a new exception on failure - just re-raise the existing one. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
ceffbfb629
commit
190933fbb5
2 changed files with 7 additions and 5 deletions
|
@ -58,7 +58,7 @@ class ConsoleSandbox(ConsoleBase):
|
||||||
if self.use_dtb:
|
if self.use_dtb:
|
||||||
cmd += ['-d', self.config.dtb]
|
cmd += ['-d', self.config.dtb]
|
||||||
cmd += self.sandbox_flags
|
cmd += self.sandbox_flags
|
||||||
return Spawn(cmd, cwd=self.config.source_dir)
|
return Spawn(cmd, cwd=self.config.source_dir, decode_signal=True)
|
||||||
|
|
||||||
def restart_uboot_with_flags(self, flags, expect_reset=False, use_dtb=True):
|
def restart_uboot_with_flags(self, flags, expect_reset=False, use_dtb=True):
|
||||||
"""Run U-Boot with the given command-line flags
|
"""Run U-Boot with the given command-line flags
|
||||||
|
|
|
@ -24,18 +24,20 @@ class Spawn:
|
||||||
output: accumulated output from expect()
|
output: accumulated output from expect()
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, args, cwd=None):
|
def __init__(self, args, cwd=None, decode_signal=False):
|
||||||
"""Spawn (fork/exec) the sub-process.
|
"""Spawn (fork/exec) the sub-process.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
args: array of processs arguments. argv[0] is the command to
|
args: array of processs arguments. argv[0] is the command to
|
||||||
execute.
|
execute.
|
||||||
cwd: the directory to run the process in, or None for no change.
|
cwd: the directory to run the process in, or None for no change.
|
||||||
|
decode_signal (bool): True to indicate the exception number when
|
||||||
|
something goes wrong
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Nothing.
|
Nothing.
|
||||||
"""
|
"""
|
||||||
|
self.decode_signal = decode_signal
|
||||||
self.waited = False
|
self.waited = False
|
||||||
self.exit_code = 0
|
self.exit_code = 0
|
||||||
self.exit_info = ''
|
self.exit_info = ''
|
||||||
|
@ -197,12 +199,12 @@ class Spawn:
|
||||||
# With sandbox, try to detect when U-Boot exits when it
|
# With sandbox, try to detect when U-Boot exits when it
|
||||||
# shouldn't and explain why. This is much more friendly than
|
# shouldn't and explain why. This is much more friendly than
|
||||||
# just dying with an I/O error
|
# just dying with an I/O error
|
||||||
if err.errno == 5: # Input/output error
|
if self.decode_signal and err.errno == 5: # I/O error
|
||||||
alive, _, info = self.checkalive()
|
alive, _, info = self.checkalive()
|
||||||
if alive:
|
if alive:
|
||||||
raise err
|
raise err
|
||||||
raise ValueError('U-Boot exited with %s' % info)
|
raise ValueError('U-Boot exited with %s' % info)
|
||||||
raise err
|
raise
|
||||||
if self.logfile_read:
|
if self.logfile_read:
|
||||||
self.logfile_read.write(c)
|
self.logfile_read.write(c)
|
||||||
self.buf += c
|
self.buf += c
|
||||||
|
|
Loading…
Add table
Reference in a new issue