1*** Settings ***
2Documentation  Make a general hardware stress in a partition with all the
3...  resources available.
4
5# Test Parameters:
6# TYPE                EEH error function to use, default is 4.
7# OPENBMC_HOST        The BMC host name or IP address.
8# OS_HOST             The OS host name or IP Address.
9# OS_USERNAME         The OS login userid (usually root).
10# OS_PASSWORD         The password for the OS login.
11# HTX_DURATION        Duration of HTX run (e.g. "24 hours", "8 hours").
12# HTX_INTERVAL        The time delay between consecutive checks of HTX
13#                     status, for example, 30 minutes.
14#                     In summary: Run HTX for $HTX_DURATION, checking
15#                     every $HTX_INTERVAL.
16# HTX_MDT_PROFILE     MDT profile to be executed (e.g. "mdt.bu, net.mdt, etc")
17#                     default is "mdt.bu".
18# bootme_period       Bootme period where the system will be rebooting. (e.g.
19#                     "3") 3 = 1 hour period.
20
21# Expected result:
22# HTX runs mdt.bu and doesn't log errors during the acceptance execution.
23
24# Glossary:
25# MDT:
26#   Master device table is a collection of hardware devices on the system for
27#   which HTX exercisers can be run.
28# build_net:
29#   Script that configures every network port when connected to a loop. This
30#   skips the communication port to always keep it available.
31# mdt.bu:
32#   Default mdt file. Collection of all HTX exercisers. Aim is to test entire
33#   system concurrently.
34# HTX error log file /tmp/htxerr
35#   Records all the errors that occur. If there's no error during the test, it
36#   should be empty.
37# bootme:
38#   This configures the cron to reboot the system and re-run the HTX profile.
39
40Library         SSHLibrary
41Library         String
42Library         ../lib/bmc_ssh_utils.py
43Resource        ../lib/resource.robot
44Resource        ../lib/os_utilities.robot
45Resource        ../lib/bmc_network_utils.robot
46Resource        ../lib/bmc_redfish_resource.robot
47
48Suite Setup     Suite Setup Execution
49Suite Teardown  Collect HTX Log Files
50Test Teardown   FFDC On Test Case Fail
51
52Test Tags      Boot_Acceptance
53
54*** Variables ***
55
56${HTX_DURATION}     8 hours
57${HTX_INTERVAL}     35 minutes
58${HTX_MDT_PROFILE}  mdt.bu
59${bootme_period}    3
60
61*** Test Cases ***
62
63Test Acceptance Boot
64    [Documentation]  Stress every controller connected via PCI in an OS with
65    ...  every resource available (CPU, RAM, storage, ethernet controllers,
66    ...  etc).
67    [Tags]  Test_Acceptance_Boot
68
69    Run Build Net
70    Run MDT Profile  ${HTX_MDT_PROFILE}
71    Run Soft Bootme
72    Repeat Keyword  ${HTX_DURATION}  Run Keywords
73    ...  Wait Until Keyword Succeeds  15 min  30 sec  Is OS Booted
74    ...  AND
75    ...  OS Execute Command  uptime
76    ...  AND
77    ...  Run Key U  sleep \ ${HTX_INTERVAL}
78    ...  AND
79    ...  Check HTX Run Status
80    ...  AND
81    ...  Wait Until Keyword Succeeds  20 min  10 sec  Is Host Off
82    Wait Until Keyword Succeeds  15 min  15 sec  Is OS Booted
83    Shutdown Bootme
84    Shutdown HTX Exerciser
85
86*** Keywords ***
87Suite Setup Execution
88    [Documentation]  Do setup tasks.
89
90    Redfish Power On  stack_mode=normal
91    Tool Exist  htxcmdline
92    Create Default MDT Profile
93