1*** Settings ***
2Documentation  Do random repeated boots based on the state of the BMC machine.
3
4Library   state.py
5Library   obmc_boot_test.py
6
7Resource  openbmc_ffdc.robot
8
9*** Variables ***
10# Initialize program parameters variables.
11# Create parm_list containing all of our program parameters.  This is used by
12# 'Rqprint Pgm Header'
13@{parm_list}                openbmc_nickname  openbmc_host  openbmc_username
14...  openbmc_password  os_host  os_username  os_password  pdu_host
15...  pdu_username  pdu_password  pdu_slot_no  openbmc_serial_host
16...  openbmc_serial_port  boot_stack  boot_list  max_num_tests
17...  plug_in_dir_paths  status_file_path  openbmc_model  boot_pass  boot_fail
18...  ffdc_dir_path_style  ffdc_check  state_change_timeout  power_on_timeout
19...  power_off_timeout  test_mode  quiet  debug
20
21# Initialize each program parameter.
22${openbmc_host}             ${EMPTY}
23${openbmc_nickname}         ${openbmc_host}
24${openbmc_username}         root
25${openbmc_password}         0penBmc
26${os_host}                  ${EMPTY}
27${os_username}              root
28${os_password}              P@ssw0rd
29${pdu_host}                 ${EMPTY}
30${pdu_username}             admin
31${pdu_password}             admin
32${pdu_slot_no}              ${EMPTY}
33${openbmc_serial_host}      ${EMPTY}
34${openbmc_serial_port}      ${EMPTY}
35${boot_stack}               ${EMPTY}
36${boot_list}                ${EMPTY}
37${max_num_tests}            0
38${plug_in_dir_paths}        ${EMPTY}
39${status_file_path}         ${EMPTY}
40${openbmc_model}            ${EMPTY}
41# The reason boot_pass and boot_fail are parameters is that it is possible to
42# be called by a program that has already done some tests.  This allows us to
43# keep the grand total.
44${boot_pass}                ${0}
45${boot_fail}                ${0}
46${ffdc_dir_path_style}      ${EMPTY}
47${ffdc_check}               ${EMPTY}
48${state_change_timeout}     1 min
49${power_on_timeout}         14 mins
50${power_off_timeout}        2 mins
51${test_mode}                0
52${quiet}                    0
53${debug}                    0
54
55# Flag variables.
56# test_really_running is needed by DB_Logging plug-in.
57${test_really_running}      ${1}
58
59*** Test Cases ***
60General Boot Testing
61    [Documentation]  Performs repeated boot tests.
62    [Tags]  General_boot_testing
63    [Teardown]  Test Teardown
64
65    # Call the Main keyword to prevent any dots from appearing in the console
66    # due to top level keywords.
67    Main
68
69*** Keywords ***
70###############################################################################
71Main
72    [Teardown]  Main Keyword Teardown
73
74    # This is the "Main" keyword.  The advantages of having this keyword vs
75    # just putting the code in the *** Test Cases *** table are:
76    # 1) You won't get a green dot in the output every time you run a keyword.
77
78    Main Py
79
80###############################################################################
81