1*** Settings *** 2Documentation Stress the system using HTX exerciser. 3 4Resource ../syslib/utils_os.robot 5Library ../lib/gen_robot_print.py 6 7Test Setup Pre Test Case Execution 8Test Teardown Post Test Case Execution 9 10*** Variables **** 11 12${stack_mode} skip 13 14# Default duration and interval of HTX exerciser to run. 15${HTX_DURATION} 2 hours 16${HTX_INTERVAL} 15 min 17 18# Default hardbootme loop times HTX exerciser to run. 19${HTX_LOOP} 4 20 21# User-defined halt on error. 22${HTX_KEEP_RUNNING} ${0} 23 24# User-defined MDT profile. 25# There are a few stanzas in the HTX test exerciser that need to be removed 26# temporarily and manually built and executed. 27${HTX_MDT_PROFILE} mdt.bu 28 29*** Test Cases *** 30 31Hard Bootme Test 32 [Documentation] Stress the system using HTX exerciser. 33 [Tags] Hard_Bootme_Test 34 35 Rprintn 36 Rpvars HTX_DURATION HTX_INTERVAL 37 38 Repeat Keyword ${HTX_LOOP} times Start HTX Exerciser 39 40 41*** Keywords *** 42 43Start HTX Exerciser 44 [Documentation] Start HTX exerciser. 45 # Test Flow: 46 # - Power on 47 # - Establish SSH connection session 48 # - Create HTX mdt profile 49 # - Run HTX exerciser 50 # - Check HTX status for errors 51 # - Power off 52 53 Boot To OS 54 55 # Post Power off and on, the OS SSH session needs to be established. 56 Login To OS 57 58 Run Keyword If '${HTX_MDT_PROFILE}' == 'mdt.bu' 59 ... Create Default MDT Profile 60 61 Run MDT Profile 62 63 Loop HTX Health Check 64 65 Shutdown HTX Exerciser 66 67 Power Off Host 68 69 Rprint Timen HTX Test ran for: ${HTX_DURATION} 70 71 72Loop HTX Health Check 73 [Documentation] Run until HTX exerciser fails. 74 75 Repeat Keyword ${HTX_DURATION} 76 ... Run Keywords Check HTX Run Status 77 ... AND Sleep ${HTX_INTERVAL} 78 79 80Check HTX Run Status 81 [Documentation] Get HTX exerciser status and check for error. 82 83 Rprint Timen Collect HTX status and error log files. 84 Run Key U Collect HTX Log Files 85 86 Rprint Timen Check HTX mdt Status and error. 87 ${status}= Execute Command On OS 88 ... htxcmdline -status -mdt ${HTX_MDT_PROFILE} 89 Log ${status} 90 Rprint Timen ${status} 91 92 ${errlog}= Execute Command On OS htxcmdline -geterrlog 93 Log ${errlog} 94 Rprint Timen ${errlog} 95 96 Should Contain ${errlog} file </tmp/htxerr> is empty 97 98 99Create Default MDT Profile 100 [Documentation] Create default mdt.bu profile and run. 101 102 Rprint Timen Create HTX mdt profile. 103 104 ${profile}= Execute Command On OS htxcmdline -createmdt 105 Rprint Timen ${profile} 106 Should Contain ${profile} mdts are created successfully 107 108 109Run MDT Profile 110 [Documentation] Load user pre-defined MDT profile. 111 112 Rprint Timen Start HTX mdt profile execution. 113 ${htx_run}= Execute Command On OS 114 ... htxcmdline -run -mdt ${HTX_MDT_PROFILE} 115 Rprint Timen ${htx_run} 116 Should Contain ${htx_run} Activated 117 118 119Shutdown HTX Exerciser 120 [Documentation] Shut down HTX exerciser run. 121 122 Rprint Timen Shutdown HTX Run 123 ${shutdown}= Execute Command On OS 124 ... htxcmdline -shutdown -mdt ${HTX_MDT_PROFILE} 125 Rprint Timen ${shutdown} 126 Should Contain ${shutdown} shutdown successfully 127 128 129Pre Test Case Execution 130 [Documentation] Do the initial test setup. 131 # 1. Check if HTX tool exist. 132 # 2. Power on 133 134 Boot To OS 135 Tool Exist htxcmdline 136 137 # Shutdown if HTX is running. 138 ${status}= Run Keyword And Return Status Is HTX Running 139 Run Keyword If '${status}' == 'True' 140 ... Shutdown HTX Exerciser 141 142 143Post Test Case Execution 144 [Documentation] Do the post test teardown. 145 # 1. Shut down HTX exerciser if test Failed. 146 # 2. Capture FFDC on test failure. 147 # 3. Close all open SSH connections. 148 149 # Keep HTX running if user set HTX_KEEP_RUNNING to 1. 150 Run Keyword If '${TEST_STATUS}' == 'FAIL' and ${HTX_KEEP_RUNNING} == ${0} 151 ... Shutdown HTX Exerciser 152 153 FFDC On Test Case Fail 154 Close All Connections 155