| *** Settings *** |
| Documentation Event notification test cases. |
| |
| Library ../lib/gen_cmd.py |
| Library ../lib/var_funcs.py |
| Library ../lib/gen_robot_valid.py |
| Library ../lib/gen_robot_keyword.py |
| Resource ../lib/resource.robot |
| Resource ../lib/openbmc_ffdc.robot |
| Resource ../lib/rest_client.robot |
| |
| Test Setup Printn |
| |
| Test Teardown FFDC On Test Case Fail |
| |
| *** Test Cases *** |
| |
| Subscribe And Verify Event Notification |
| [Documentation] Subscribe and verify event notification. |
| [Tags] Subscribe_And_Verify_Event_Notification |
| [Teardown] Run Keyword And Ignore Error Kill Cmd ${popen} |
| |
| ${cmd_buf}= Catenate event_notification_util.py --quiet=1 --host=${OPENBMC_HOST} |
| ... --password=${OPENBMC_PASSWORD} --dbus_path=${CONTROL_HOST_URI}power_cap |
| ${popen}= Shell Cmd ${cmd_buf} return_stderr=1 fork=1 |
| Rprint Vars popen.pid |
| Qprint Timen Allow child event_notification_util.py job to begin to wait for the event notification. |
| Run Key U Sleep \ 5 seconds |
| |
| # Get current reading for debug. |
| ${original_power_cap_settings}= Read Properties ${CONTROL_HOST_URI}power_cap quiet=1 |
| Rprint Vars original_power_cap_settings |
| |
| # Set power limit out of range. |
| ${power_cap}= Evaluate random.randint(1000, 3000) modules=random |
| Rprint Vars original_power_cap_settings power_cap |
| ${data}= Create Dictionary data=${power_cap} |
| Write Attribute ${CONTROL_HOST_URI}power_cap PowerCap data=${data} |
| |
| Qprint Timen Wait for child event_notification_util.py job to see the event notification. |
| Run Key U Sleep \ 5 seconds |
| |
| Qprint Timen Retrieving output from spawned event_notification_util.py job. |
| ${rc} ${stdout} ${stderr}= Kill Cmd ${popen} |
| Run Keyword If ${rc} Log to Console ${stderr} |
| Valid Value rc [0] |
| ${event_notification}= Key Value Outbuf To Dict ${stdout} process_indent=1 |
| Rprint Vars event_notification |
| |
| # Example output: |
| # interface: xyz.openbmc_project.Control.Power.Cap |
| # path: /xyz/openbmc_project/control/host0/power_cap |
| # event: PropertiesChanged |
| # properties: |
| # PowerCap: 1318 |
| |
| Valid Value event_notification['event'] ['PropertiesChanged'] |
| Valid Value event_notification['properties']['powercap'] ['${power_cap}'] |