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 Check HTX mdt Status and error. 84 ${status}= Execute Command On OS 85 ... htxcmdline -status -mdt ${HTX_MDT_PROFILE} 86 Log ${status} 87 Rprint Timen ${status} 88 89 ${errlog}= Execute Command On OS htxcmdline -geterrlog 90 Log ${errlog} 91 Rprint Timen ${errlog} 92 93 Should Contain ${errlog} file </tmp/htxerr> is empty 94 95 96Create Default MDT Profile 97 [Documentation] Create default mdt.bu profile and run. 98 99 Rprint Timen Create HTX mdt profile. 100 101 ${profile}= Execute Command On OS htxcmdline -createmdt 102 Rprint Timen ${profile} 103 Should Contain ${profile} mdts are created successfully 104 105 106Run MDT Profile 107 [Documentation] Load user pre-defined MDT profile. 108 109 Rprint Timen Start HTX mdt profile execution. 110 ${htx_run}= Execute Command On OS 111 ... htxcmdline -run -mdt ${HTX_MDT_PROFILE} 112 Rprint Timen ${htx_run} 113 Should Contain ${htx_run} Activated 114 115 116Shutdown HTX Exerciser 117 [Documentation] Shut down HTX exerciser run. 118 119 Rprint Timen Shutdown HTX Run 120 ${shutdown}= Execute Command On OS 121 ... htxcmdline -shutdown -mdt ${HTX_MDT_PROFILE} 122 Rprint Timen ${shutdown} 123 Should Contain ${shutdown} shutdown successfully 124 125 126Pre Test Case Execution 127 [Documentation] Do the initial test setup. 128 # 1. Check if HTX tool exist. 129 # 2. Power on 130 131 Boot To OS 132 HTX Tool Exist 133 134 # Shutdown if HTX is running. 135 ${status}= Run Keyword And Return Status Is HTX Running 136 Run Keyword If '${status}' == 'True' 137 ... Shutdown HTX Exerciser 138 139 140Post Test Case Execution 141 [Documentation] Do the post test teardown. 142 # 1. Shut down HTX exerciser if test Failed. 143 # 2. Capture FFDC on test failure. 144 # 3. Close all open SSH connections. 145 146 # Keep HTX running if user set HTX_KEEP_RUNNING to 1. 147 Run Keyword If '${TEST_STATUS}' == 'FAIL' and ${HTX_KEEP_RUNNING} == ${0} 148 ... Shutdown HTX Exerciser 149 150 FFDC On Test Case Fail 151 Close All Connections 152