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*** Test Cases *** 25 26Hard Bootme Test 27 [Documentation] Stress the system using HTX exerciser. 28 [Tags] Hard_Bootme_Test 29 30 Rprintn 31 Rpvars HTX_DURATION HTX_INTERVAL 32 33 Repeat Keyword ${HTX_LOOP} times Start HTX Exerciser 34 35 36*** Keywords *** 37 38Start HTX Exerciser 39 [Documentation] Start HTX exerciser. 40 # Test Flow: 41 # - Power on 42 # - Establish SSH connection session 43 # - Create HTX mdt profile 44 # - Run HTX exerciser 45 # - Check HTX status for errors 46 # - Power off 47 48 Boot To OS 49 50 # Post Power off and on, the OS SSH session needs to be established. 51 Login To OS 52 53 Rprint Timen Create HTX mdt profile. 54 ${profile}= Execute Command On OS htxcmdline -createmdt 55 Rprint Timen ${profile} 56 Should Contain ${profile} mdts are created successfully 57 58 Rprint Timen Start HTX mdt profile execution. 59 ${htx_run}= Execute Command On OS htxcmdline -run -mdt mdt.bu 60 Rprint Timen ${htx_run} 61 Should Contain ${htx_run} Activated 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 71Loop HTX Health Check 72 [Documentation] Run until HTX exerciser fails. 73 74 Repeat Keyword ${HTX_DURATION} 75 ... Run Keywords Check HTX Run Status 76 ... AND Sleep ${HTX_INTERVAL} 77 78 79Check HTX Run Status 80 [Documentation] Get HTX exerciser status and check for error. 81 82 Rprint Timen Check HTX mdt Status and error. 83 ${status}= Execute Command On OS htxcmdline -status -mdt mdt.bu 84 Log ${status} 85 Rprint Timen ${status} 86 87 ${errlog}= Execute Command On OS htxcmdline -geterrlog 88 Log ${errlog} 89 Rprint Timen ${errlog} 90 91 Should Contain ${errlog} file </tmp/htxerr> is empty 92 93 94Shutdown HTX Exerciser 95 [Documentation] Shut down HTX exerciser run. 96 97 Rprint Timen Shutdown HTX Run 98 ${shutdown}= Execute Command On OS htxcmdline -shutdown -mdt mdt.bu 99 Rprint Timen ${shutdown} 100 Should Contain ${shutdown} shutdown successfully 101 102 103Pre Test Case Execution 104 [Documentation] Do the initial test setup. 105 # 1. Check if HTX tool exist. 106 # 2. Power on 107 108 Boot To OS 109 HTX Tool Exist 110 111 112Post Test Case Execution 113 [Documentation] Do the post test teardown. 114 # 1. Shut down HTX exerciser if test Failed. 115 # 2. Capture FFDC on test failure. 116 # 3. Close all open SSH connections. 117 118 # Keep HTX running if user set HTX_KEEP_RUNNING to 1. 119 Run Keyword If '${TEST_STATUS}' == 'FAIL' and ${HTX_KEEP_RUNNING} == ${0} 120 ... Shutdown HTX Exerciser 121 122 FFDC On Test Case Fail 123 Close All Connections 124 125