|  | *** Settings *** | 
|  |  | 
|  | Documentation  Compare processor speed in turbo and non-turbo modes. | 
|  |  | 
|  | # Test Parameters: | 
|  | # OPENBMC_HOST   The BMC host name or IP address. | 
|  | # OS_HOST        The OS host name or IP Address. | 
|  | # OS_USERNAME    The OS login userid (usually root). | 
|  | # OS_PASSWORD    The password for the OS login. | 
|  |  | 
|  | Resource        ../syslib/utils_os.robot | 
|  | Resource        ../lib/boot_utils.robot | 
|  | Library         ../syslib/utils_keywords.py | 
|  | Variables       ../data/variables.py | 
|  | Library         ../lib/bmc_ssh_utils.py | 
|  | Resource        ../lib/connection_client.robot | 
|  | Resource        ../lib/resource.txt | 
|  | Resource        ../lib/rest_client.robot | 
|  | Resource        ../lib/utils.robot | 
|  |  | 
|  |  | 
|  | Test Setup      Pre Test Case Execution | 
|  | Test Teardown   Post Test Case Execution | 
|  |  | 
|  |  | 
|  | *** Test Cases *** | 
|  |  | 
|  | Turbo And Non-Turbo Processor Speed Test | 
|  | [Documentation]  Compare processor turbo and non-turbo speeds. | 
|  | [Tags]  Turbo_And_Non-Turbo_Processor_Speed_Test | 
|  |  | 
|  | Set Turbo Setting Via REST  True | 
|  | ${mode}=  Read Turbo Setting Via REST | 
|  | Should Be Equal  ${mode}  True | 
|  | ...  msg=Issued call to set Turbo mode but it was not set. | 
|  |  | 
|  | # The OS governor determines the maximum processor speed at boot-up time. | 
|  | REST Power On  stack_mode=skip | 
|  | ${proc_speed_turbo}=  Get Processor Max Speed Setting | 
|  |  | 
|  | Smart Power Off | 
|  |  | 
|  | Set Turbo Setting Via REST  False | 
|  | ${mode}=  Read Turbo Setting Via REST | 
|  | Should Be Equal  ${mode}  False | 
|  | ...  msg=Issued call to disable Turbo mode but it was not disabled. | 
|  |  | 
|  | REST Power On  stack_mode=skip | 
|  | ${proc_speed_non_turbo}=  Get Processor Max Speed Setting | 
|  |  | 
|  | Rprintn | 
|  | Rpvars  proc_speed_turbo  proc_speed_non_turbo | 
|  |  | 
|  | ${err_msg}=  Catenate  Reported turbo processor speed should be | 
|  | ...  greater than non-turbo speed. | 
|  | Should Be True  ${proc_speed_turbo} > ${proc_speed_non_turbo} | 
|  | ...  msg=${err_msg} | 
|  |  | 
|  |  | 
|  | *** Keywords *** | 
|  |  | 
|  | Get Processor Max Speed Setting | 
|  | [Documentation]  Get processor maximum speed setting from the OS. | 
|  | # - On the OS run: ppc64_cpu --frequency | 
|  | # - Return the maximum frequency value reported. | 
|  | # The command ppc64_cpu is provided in both Ubuntu and RHEL on Power. | 
|  |  | 
|  | ${command}=  Set Variable | 
|  | ...  ppc64_cpu --frequency | grep max | cut -f 2 | cut -d ' ' -f 1 | 
|  | # The ppc64_cpu --frequency command returns min, max, and average | 
|  | # cpu frequencies. For example, | 
|  | # min:    2.500 GHz (cpu 143) | 
|  | # max:    2.700 GHz (cpu 1) | 
|  | # avg:    2.600 GHz | 
|  | # The ${command} selects the max: line, selects only the | 
|  | # 2.700 GHz (cpu 1) part, then selects the 2.700 number. | 
|  |  | 
|  | # Get the maximum processor frequency reported. | 
|  | ${output}  ${stderr}  ${rc}=  OS Execute Command | 
|  | ...  ${command}  print_out=${1} | 
|  |  | 
|  | ${frequency}=  Convert To Number  ${output} | 
|  | [Return]  ${frequency} | 
|  |  | 
|  |  | 
|  | Pre Test Case Execution | 
|  | [Documentation]  Do the pre test setup. | 
|  | # Save the initial system turbo setting. | 
|  | # Start (setup) console logging. | 
|  |  | 
|  | ${initial_turbo_setting}=  Read Turbo Setting Via REST | 
|  | Set Suite Variable  ${initial_turbo_setting}  children=true | 
|  | Start SOL Console Logging | 
|  |  | 
|  |  | 
|  | Post Test Case Execution | 
|  | [Documentation]  Do the post test teardown. | 
|  | # - Restore original turbo setting on the system. | 
|  | # - Capture FFDC on test failure. | 
|  | # - Power off the OS and close all open SSH connections. | 
|  |  | 
|  | Set Turbo Setting Via REST  ${initial_turbo_setting} | 
|  |  | 
|  | FFDC On Test Case Fail | 
|  | Smart Power Off | 
|  | Close All Connections |