blob: bc635a64d3ef5488e50be8794a7b124b1ce1da24 [file] [log] [blame]
Chris Austenb29d2e82016-06-07 12:25:35 -05001*** Settings ***
2
3Documentation This testsuite is for testing boot policy function.
4
George Keishing4d6c1da2016-07-15 05:51:22 -05005Resource ../lib/rest_client.robot
6Resource ../lib/ipmi_client.robot
7Resource ../lib/utils.robot
Sivas SRRe1143ae2016-08-26 22:31:02 -05008Resource ../lib/openbmc_ffdc.robot
Chris Austenb29d2e82016-06-07 12:25:35 -05009
George Keishing4d6c1da2016-07-15 05:51:22 -050010Suite Setup Open Connection And Log In
11Suite Teardown Close All Connections
Sivas SRRe1143ae2016-08-26 22:31:02 -050012Test Setup Initialize DBUS cmd "boot_policy"
George Keishingd55a4be2016-08-26 03:28:17 -050013Test Teardown Log FFDC
Chris Austenb29d2e82016-06-07 12:25:35 -050014
15*** Variables ***
Chris Austenb29d2e82016-06-07 12:25:35 -050016
17*** Test Cases ***
18
19Set Onetime boot policy using REST
20 [Documentation] This testcase is to set onetime boot policy using REST
21 ... URI and then verify using REST API and ipmitool.\n
George Keishing314cf852016-08-26 09:02:16 -050022
Chris Austenb29d2e82016-06-07 12:25:35 -050023 Set Boot Policy ONETIME
24
25 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
26 Should Be Equal ${boot} ONETIME
Sivas SRRe1143ae2016-08-26 22:31:02 -050027 ${output} ${stderr}= Execute Command ${dbuscmd} return_stderr=True
28 Should Be Empty ${stderr}
29 Should Contain ${output} ONETIME
Chris Austenb29d2e82016-06-07 12:25:35 -050030
31Set Permanent boot policy using REST
32 [Documentation] This testcase is to set permanent boot policy using REST
33 ... URI and then verify using REST API and ipmitool.\n
34
35 Set Boot Policy PERMANENT
36
37 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
38 Should Be Equal ${boot} PERMANENT
Sivas SRRe1143ae2016-08-26 22:31:02 -050039 ${output} ${stderr}= Execute Command ${dbuscmd} return_stderr=True
40 Should Be Empty ${stderr}
41 Should Contain ${output} PERMANENT
Chris Austenb29d2e82016-06-07 12:25:35 -050042
43Set Onetime boot policy using IPMITOOL
44 [Documentation] This testcase is to set boot policy to onetime boot using ipmitool
45 ... and then verify using REST URI and ipmitool.\n
46
47 Run IPMI command 0x0 0x8 0x05 0x80 0x00 0x00 0x00 0x00
48 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
49 Should Be Equal ${boot} ONETIME
Sivas SRRe1143ae2016-08-26 22:31:02 -050050 ${output} ${stderr}= Execute Command ${dbuscmd} return_stderr=True
51 Should Be Empty ${stderr}
52 Should Contain ${output} ONETIME
George Keishing314cf852016-08-26 09:02:16 -050053
Chris Austenb29d2e82016-06-07 12:25:35 -050054Set Permanent boot policy using IPMITOOL
55 [Documentation] This testcase is to set boot policy to permanent using ipmitool
56 ... and then verify using REST URI and ipmitool.
57
58 Run IPMI command 0x0 0x8 0x05 0xC0 0x00 0x00 0x00 0x00
59 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
60 Should Be Equal ${boot} PERMANENT
Sivas SRRe1143ae2016-08-26 22:31:02 -050061 ${output} ${stderr}= Execute Command ${dbuscmd} return_stderr=True
62 Should Be Empty ${stderr}
63 Should Contain ${output} PERMANENT
Chris Austenb29d2e82016-06-07 12:25:35 -050064
65Boot order with permanent boot policy
66 [Documentation] This testcase is to verify that boot order does not change
67 ... after first boot when boot policy set to permanent
causten147f5752016-08-11 16:24:45 -050068 [Tags] chassisboot
Chris Austenb29d2e82016-06-07 12:25:35 -050069
root442f0ef2016-08-04 20:23:05 +000070 Initiate Power Off
Chris Austenb29d2e82016-06-07 12:25:35 -050071
72 Set Boot Policy PERMANENT
73
74 Set Boot Device CDROM
75
root442f0ef2016-08-04 20:23:05 +000076 Initiate Power On
Chris Austenb29d2e82016-06-07 12:25:35 -050077
78 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
79 Should Be Equal ${boot} PERMANENT
80
81 ${flag} = Read Attribute /org/openbmc/settings/host0 boot_flags
82 Should Be Equal ${flag} CDROM
83
84Onetime boot order after warm reset
85 [Documentation] This testcase is to verify that boot policy and order does not change
86 ... after warm reset on a system with onetime boot policy.
87
causten147f5752016-08-11 16:24:45 -050088 [Tags] chassisboot
89
root442f0ef2016-08-04 20:23:05 +000090 Initiate Power On
Chris Austenb29d2e82016-06-07 12:25:35 -050091
92 Set Boot Policy ONETIME
93
94 Set Boot Device Network
95
96 Trigger Warm Reset
97
98 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
99 Should Be Equal ${boot} ONETIME
100
101 ${flag} = Read Attribute /org/openbmc/settings/host0 boot_flags
102 Should Be Equal ${flag} Network
103
104Permanent boot order after warm reset
George Keishing314cf852016-08-26 09:02:16 -0500105 [Documentation] This testcase is to verify that boot policy and order does not change
Chris Austenb29d2e82016-06-07 12:25:35 -0500106 ... after warm reset on a system with permanent boot policy.
causten147f5752016-08-11 16:24:45 -0500107 [Tags] chassisboot
Chris Austenb29d2e82016-06-07 12:25:35 -0500108
root442f0ef2016-08-04 20:23:05 +0000109 Initiate Power On
Chris Austenb29d2e82016-06-07 12:25:35 -0500110
111 Set Boot Policy PERMANENT
112
113 Set Boot Device CDROM
114
115 Trigger Warm Reset
116
117 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
118 Should Be Equal ${boot} PERMANENT
119
120 ${flag} = Read Attribute /org/openbmc/settings/host0 boot_flags
121 Should Be Equal ${flag} CDROM
George Keishing314cf852016-08-26 09:02:16 -0500122
Chris Austenb29d2e82016-06-07 12:25:35 -0500123Set boot policy to invalid value
George Keishing314cf852016-08-26 09:02:16 -0500124 [Documentation] This testcase is to verify that proper error message is prompted
Chris Austenb29d2e82016-06-07 12:25:35 -0500125 ... when invalid value to provided to boot policy.
George Keishing314cf852016-08-26 09:02:16 -0500126
Chris Austenb29d2e82016-06-07 12:25:35 -0500127 Set Boot Policy abc
128
129 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
George Keishing314cf852016-08-26 09:02:16 -0500130 Should Not Be Equal ${boot} abc
131
Chris Austenb29d2e82016-06-07 12:25:35 -0500132*** Keywords ***
133
134Set Boot Policy
135 [Arguments] ${args}
136 ${bootpolicy} = Set Variable ${args}
137 ${valueDict} = create dictionary data=${bootpolicy}
138 Write Attribute /org/openbmc/settings/host0 boot_policy data=${valueDict}
139
140Set Boot Device
141 [Arguments] ${args}
142 ${bootDevice} = Set Variable ${args}
143 ${valueDict} = create dictionary data=${bootDevice}
144 Write Attribute /org/openbmc/settings/host0 boot_flags data=${valueDict}
Sivas SRRe1143ae2016-08-26 22:31:02 -0500145
146
147