1*** Settings ***
2Documentation  This file is resourced by obmc_boot_test.py to set initial
3...            variable values, etc.
4
5Resource  ../lib/openbmc_ffdc.robot
6Library   ../lib/state.py
7
8Library   ../lib/obmc_boot_test.py
9Library   Collections
10
11*** Variables ***
12# Initialize program parameters variables.
13# Create parm_list containing all of our program parameters.  This is used by
14# 'Rqprint Pgm Header'
15@{parm_list}                openbmc_nickname  openbmc_host  openbmc_username
16...  openbmc_password  os_host  os_username  os_password  pdu_host
17...  pdu_username  pdu_password  pdu_slot_no  openbmc_serial_host
18...  openbmc_serial_port  stack_mode  boot_stack  boot_list  max_num_tests
19...  plug_in_dir_paths  status_file_path  openbmc_model  boot_pass  boot_fail
20...  ffdc_dir_path_style  ffdc_check  ffdc_only  ffdc_function_list
21...  state_change_timeout  power_on_timeout  power_off_timeout
22...  boot_fail_threshold  delete_errlogs  call_post_stack_plug  test_mode
23...  quiet  debug
24
25# Initialize each program parameter.
26${openbmc_host}             ${EMPTY}
27${openbmc_nickname}         ${openbmc_host}
28${openbmc_username}         root
29${openbmc_password}         0penBmc
30${os_host}                  ${EMPTY}
31${os_username}              root
32${os_password}              P@ssw0rd
33${pdu_host}                 ${EMPTY}
34${pdu_username}             admin
35${pdu_password}             admin
36${pdu_slot_no}              ${EMPTY}
37${openbmc_serial_host}      ${EMPTY}
38${openbmc_serial_port}      ${EMPTY}
39${stack_mode}               normal
40${boot_stack}               ${EMPTY}
41${boot_list}                ${EMPTY}
42${max_num_tests}            0
43${plug_in_dir_paths}        ${EMPTY}
44${status_file_path}         ${EMPTY}
45${openbmc_model}            ${EMPTY}
46# The reason boot_pass and boot_fail are parameters is that it is possible to
47# be called by a program that has already done some tests.  This allows us to
48# keep the grand total.
49${boot_pass}                ${0}
50${boot_fail}                ${0}
51${ffdc_dir_path_style}      ${EMPTY}
52${ffdc_check}               ${EMPTY}
53${ffdc_only}                ${0}
54${ffdc_function_list}       ${EMPTY}
55${state_change_timeout}     3 mins
56${power_on_timeout}         14 mins
57${power_off_timeout}        2 mins
58# If the number of boot failures, exceeds boot_fail_threshold, this program
59# returns non-zero.
60${boot_fail_threshold}      ${0}
61${delete_errlogs}           ${0}
62# This variable indicates whether post_stack plug-in processing should be done.
63${call_post_stack_plug}     ${1}
64${test_mode}                0
65${quiet}                    0
66${debug}                    0
67
68# Flag variables.
69# test_really_running is needed by DB_Logging plug-in.
70${test_really_running}      ${1}
71
72
73*** Keywords ***
74OBMC Boot Test
75    [Documentation]  Run the OBMC boot test.
76    [Teardown]  OBMC Boot Test Teardown
77    [Arguments]  ${pos_arg1}=${EMPTY}  &{arguments}
78
79    # Note: If I knew how to specify a keyword teardown in python, I would
80    # rename the "OBMC Boot Test Py" python function to "OBMC Boot Test" and
81    # do away with this robot keyword.
82
83    Run Keyword If  '${pos_arg1}' != '${EMPTY}'
84    ...  Set To Dictionary  ${arguments}  loc_boot_stack=${pos_arg1}
85
86    OBMC Boot Test Py  &{arguments}
87