test/py: Add test support for three stage boot
Current pytest only support upto 2 stage boot; Some boards like TI K3 am6/J7 boards use 3 stage boot. This patch adds u_boot_spl2 to be able to handle the 3-stage boot case. User needs to set "env__spl2_skipped" in u_boot_boardenv config file to use this support. By default it is set to TRUE. Signed-off-by: Yan Liu <yan-liu@ti.com> Signed-off-by: Yan Liu <yan-liu@ti.com>
This commit is contained in:
parent
44758771ee
commit
c9db1a103c
@ -17,6 +17,7 @@ import u_boot_spawn
|
|||||||
|
|
||||||
# Regexes for text we expect U-Boot to send to the console.
|
# Regexes for text we expect U-Boot to send to the console.
|
||||||
pattern_u_boot_spl_signon = re.compile('(U-Boot SPL \\d{4}\\.\\d{2}[^\r\n]*\\))')
|
pattern_u_boot_spl_signon = re.compile('(U-Boot SPL \\d{4}\\.\\d{2}[^\r\n]*\\))')
|
||||||
|
pattern_u_boot_spl2_signon = re.compile('(U-Boot SPL \\d{4}\\.\\d{2}[^\r\n]*\\))')
|
||||||
pattern_u_boot_main_signon = re.compile('(U-Boot \\d{4}\\.\\d{2}[^\r\n]*\\))')
|
pattern_u_boot_main_signon = re.compile('(U-Boot \\d{4}\\.\\d{2}[^\r\n]*\\))')
|
||||||
pattern_stop_autoboot_prompt = re.compile('Hit any key to stop autoboot: ')
|
pattern_stop_autoboot_prompt = re.compile('Hit any key to stop autoboot: ')
|
||||||
pattern_unknown_command = re.compile('Unknown command \'.*\' - try \'help\'')
|
pattern_unknown_command = re.compile('Unknown command \'.*\' - try \'help\'')
|
||||||
@ -28,6 +29,7 @@ PAT_RE = 1
|
|||||||
|
|
||||||
bad_pattern_defs = (
|
bad_pattern_defs = (
|
||||||
('spl_signon', pattern_u_boot_spl_signon),
|
('spl_signon', pattern_u_boot_spl_signon),
|
||||||
|
('spl2_signon', pattern_u_boot_spl2_signon),
|
||||||
('main_signon', pattern_u_boot_main_signon),
|
('main_signon', pattern_u_boot_main_signon),
|
||||||
('stop_autoboot_prompt', pattern_stop_autoboot_prompt),
|
('stop_autoboot_prompt', pattern_stop_autoboot_prompt),
|
||||||
('unknown_command', pattern_unknown_command),
|
('unknown_command', pattern_unknown_command),
|
||||||
@ -353,12 +355,20 @@ class ConsoleBase(object):
|
|||||||
'n') == 'y'
|
'n') == 'y'
|
||||||
env_spl_skipped = self.config.env.get('env__spl_skipped',
|
env_spl_skipped = self.config.env.get('env__spl_skipped',
|
||||||
False)
|
False)
|
||||||
|
env_spl2_skipped = self.config.env.get('env__spl2_skipped',
|
||||||
|
True)
|
||||||
if config_spl and config_spl_serial_support and not env_spl_skipped:
|
if config_spl and config_spl_serial_support and not env_spl_skipped:
|
||||||
m = self.p.expect([pattern_u_boot_spl_signon] +
|
m = self.p.expect([pattern_u_boot_spl_signon] +
|
||||||
self.bad_patterns)
|
self.bad_patterns)
|
||||||
if m != 0:
|
if m != 0:
|
||||||
raise Exception('Bad pattern found on SPL console: ' +
|
raise Exception('Bad pattern found on SPL console: ' +
|
||||||
self.bad_pattern_ids[m - 1])
|
self.bad_pattern_ids[m - 1])
|
||||||
|
if not env_spl2_skipped:
|
||||||
|
m = self.p.expect([pattern_u_boot_spl2_signon] +
|
||||||
|
self.bad_patterns)
|
||||||
|
if m != 0:
|
||||||
|
raise Exception('Bad pattern found on SPL2 console: ' +
|
||||||
|
self.bad_pattern_ids[m - 1])
|
||||||
m = self.p.expect([pattern_u_boot_main_signon] + self.bad_patterns)
|
m = self.p.expect([pattern_u_boot_main_signon] + self.bad_patterns)
|
||||||
if m != 0:
|
if m != 0:
|
||||||
raise Exception('Bad pattern found on console: ' +
|
raise Exception('Bad pattern found on console: ' +
|
||||||
|
Loading…
Reference in New Issue
Block a user