xref: /openbmc/openbmc-test-automation/openpower/test_occ_power.robot (revision 05d42fee4eadfd683882f4293199a24477729ab9)
1*05d42feeSGeorge Keishing*** Settings ***
2*05d42feeSGeorge KeishingDocumentation   Suite to test OCC power module.
3*05d42feeSGeorge Keishing
4*05d42feeSGeorge KeishingResource        ../lib/bmc_redfish_resource.robot
5*05d42feeSGeorge KeishingResource        ../lib/open_power_utils.robot
6*05d42feeSGeorge KeishingResource        ../lib/boot_utils.robot
7*05d42feeSGeorge KeishingResource        ../lib/state_manager.robot
8*05d42feeSGeorge KeishingResource        ../lib/openbmc_ffdc.robot
9*05d42feeSGeorge KeishingResource        ../lib/utils.robot
10*05d42feeSGeorge Keishing
11*05d42feeSGeorge KeishingSuite Setup     Suite Setup Execution
12*05d42feeSGeorge KeishingTest Teardown   Test Teardown Execution
13*05d42feeSGeorge Keishing
14*05d42feeSGeorge Keishing*** Test Cases ***
15*05d42feeSGeorge Keishing
16*05d42feeSGeorge KeishingVerify OCC Object Count
17*05d42feeSGeorge Keishing    [Documentation]  Verify that OCC and inventory entries match.
18*05d42feeSGeorge Keishing    [Tags]  Verify_OCC_Object_Count
19*05d42feeSGeorge Keishing
20*05d42feeSGeorge Keishing    # Example:
21*05d42feeSGeorge Keishing    # /org/open_power/control/enumerate
22*05d42feeSGeorge Keishing    # {
23*05d42feeSGeorge Keishing    #    "/org/open_power/control/host0": {},
24*05d42feeSGeorge Keishing    #    "/org/open_power/control/occ0": {
25*05d42feeSGeorge Keishing    #       "OccActive": 0
26*05d42feeSGeorge Keishing    #   },
27*05d42feeSGeorge Keishing    # "/org/open_power/control/occ1": {
28*05d42feeSGeorge Keishing    #       "OccActive": 0
29*05d42feeSGeorge Keishing    #   }
30*05d42feeSGeorge Keishing    # }
31*05d42feeSGeorge Keishing
32*05d42feeSGeorge Keishing    # Inventory counterpart cpu's:
33*05d42feeSGeorge Keishing    # "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0",
34*05d42feeSGeorge Keishing    # "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1",
35*05d42feeSGeorge Keishing
36*05d42feeSGeorge Keishing    ${inventory_count}=  Count Object Entries
37*05d42feeSGeorge Keishing    ...  ${HOST_INVENTORY_URI}system/chassis/motherboard/  cpu*
38*05d42feeSGeorge Keishing
39*05d42feeSGeorge Keishing    Should Be Equal  ${occ_count}  ${inventory_count}
40*05d42feeSGeorge Keishing    ...  msg=OCC and inventory entry counts are mismatched.
41*05d42feeSGeorge Keishing
42*05d42feeSGeorge Keishing
43*05d42feeSGeorge KeishingVerify OCC State When Host Is Booted
44*05d42feeSGeorge Keishing    [Documentation]  Verify OCC state when host is booted.
45*05d42feeSGeorge Keishing    [Tags]  Verify_OCC_State_When_Host_Is_Booted
46*05d42feeSGeorge Keishing
47*05d42feeSGeorge Keishing    Verify OCC State  ${1}
48*05d42feeSGeorge Keishing
49*05d42feeSGeorge Keishing
50*05d42feeSGeorge KeishingVerify OCC State After Host Reboot
51*05d42feeSGeorge Keishing    [Documentation]  Verify OCC state and count after host reboot.
52*05d42feeSGeorge Keishing    [Tags]  Verify_OCC_State_After_Host_Reboot
53*05d42feeSGeorge Keishing
54*05d42feeSGeorge Keishing    ${occ_count_before}=  Count OCC Object Entry
55*05d42feeSGeorge Keishing    Verify OCC State  ${1}
56*05d42feeSGeorge Keishing    RF SYS GracefulRestart
57*05d42feeSGeorge Keishing    Verify OCC State  ${1}
58*05d42feeSGeorge Keishing    ${occ_count_after}=  Count OCC Object Entry
59*05d42feeSGeorge Keishing    Should be Equal  ${occ_count_before}  ${occ_count_after}
60*05d42feeSGeorge Keishing
61*05d42feeSGeorge Keishing
62*05d42feeSGeorge KeishingVerify OCC State After BMC Reset
63*05d42feeSGeorge Keishing    [Documentation]  Verify OCC state and count after BMC reset.
64*05d42feeSGeorge Keishing    [Tags]  Verify_OCC_State_After_BMC_Reset
65*05d42feeSGeorge Keishing
66*05d42feeSGeorge Keishing    ${occ_count_before}=  Count OCC Object Entry
67*05d42feeSGeorge Keishing    Redfish OBMC Reboot (run)
68*05d42feeSGeorge Keishing    Verify OCC State  ${1}
69*05d42feeSGeorge Keishing    ${occ_count_after}=  Count OCC Object Entry
70*05d42feeSGeorge Keishing    Should be Equal  ${occ_count_before}  ${occ_count_after}
71*05d42feeSGeorge Keishing
72*05d42feeSGeorge Keishing
73*05d42feeSGeorge KeishingVerify OCC State At Standby
74*05d42feeSGeorge Keishing    [Documentation]  Verify OCC state at standby.
75*05d42feeSGeorge Keishing    [Tags]  Verify_OCC_State_At_Standby
76*05d42feeSGeorge Keishing
77*05d42feeSGeorge Keishing    Redfish Power Off  stack_mode=normal
78*05d42feeSGeorge Keishing    Verify OCC State  ${0}
79*05d42feeSGeorge Keishing
80*05d42feeSGeorge Keishing*** Keywords ***
81*05d42feeSGeorge Keishing
82*05d42feeSGeorge KeishingSuite Setup Execution
83*05d42feeSGeorge Keishing    [Documentation]  Do the initial test suite setup.
84*05d42feeSGeorge Keishing
85*05d42feeSGeorge Keishing    Redfish Power On
86*05d42feeSGeorge Keishing    Count OCC Object Entry
87*05d42feeSGeorge Keishing
88*05d42feeSGeorge KeishingCount OCC Object Entry
89*05d42feeSGeorge Keishing    [Documentation]  Count OCC object entry and set count.
90*05d42feeSGeorge Keishing
91*05d42feeSGeorge Keishing    ${object_count}=  Count Object Entries  ${OPENPOWER_CONTROL}  occ*
92*05d42feeSGeorge Keishing    Set Suite Variable  ${occ_count]  ${object_count}
93*05d42feeSGeorge Keishing
94*05d42feeSGeorge Keishing
95*05d42feeSGeorge KeishingTest Teardown Execution
96*05d42feeSGeorge Keishing    [Documentation]  Do the post test teardown.
97*05d42feeSGeorge Keishing    # - Capture FFDC on test failure.
98*05d42feeSGeorge Keishing    # - Delete error logs.
99*05d42feeSGeorge Keishing    # - Close all open SSH connections.
100*05d42feeSGeorge Keishing
101*05d42feeSGeorge Keishing    FFDC On Test Case Fail
102*05d42feeSGeorge Keishing    Redfish.Login
103*05d42feeSGeorge Keishing    Redfish Purge Event Log
104*05d42feeSGeorge Keishing    Close All Connections
105