blob: cfcf44d6f3780451f6c8b2e3c0bab8d59fef9199 [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.
Rahul Maheshwari08fd6172016-09-21 12:04:43 -050087 ... Existing Issue: https://github.com/openbmc/openbmc/issues/519
88 [Tags] chassisboot known_issue
causten147f5752016-08-11 16:24:45 -050089
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.
Rahul Maheshwari08fd6172016-09-21 12:04:43 -0500107 ... Existing Issue: https://github.com/openbmc/openbmc/issues/519
108 [Tags] chassisboot known_issue
Chris Austenb29d2e82016-06-07 12:25:35 -0500109
root442f0ef2016-08-04 20:23:05 +0000110 Initiate Power On
Chris Austenb29d2e82016-06-07 12:25:35 -0500111
112 Set Boot Policy PERMANENT
113
114 Set Boot Device CDROM
115
116 Trigger Warm Reset
117
118 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
119 Should Be Equal ${boot} PERMANENT
120
121 ${flag} = Read Attribute /org/openbmc/settings/host0 boot_flags
122 Should Be Equal ${flag} CDROM
George Keishing314cf852016-08-26 09:02:16 -0500123
Chris Austenb29d2e82016-06-07 12:25:35 -0500124Set boot policy to invalid value
George Keishing314cf852016-08-26 09:02:16 -0500125 [Documentation] This testcase is to verify that proper error message is prompted
Chris Austenb29d2e82016-06-07 12:25:35 -0500126 ... when invalid value to provided to boot policy.
Rahul Maheshwari08fd6172016-09-21 12:04:43 -0500127 ... Existing Issue: https://github.com/openbmc/openbmc/issues/552
128 [Tags] known_issue
George Keishing314cf852016-08-26 09:02:16 -0500129
Chris Austenb29d2e82016-06-07 12:25:35 -0500130 Set Boot Policy abc
131
132 ${boot} = Read Attribute /org/openbmc/settings/host0 boot_policy
George Keishing314cf852016-08-26 09:02:16 -0500133 Should Not Be Equal ${boot} abc
134
Chris Austenb29d2e82016-06-07 12:25:35 -0500135*** Keywords ***
136
137Set Boot Policy
138 [Arguments] ${args}
139 ${bootpolicy} = Set Variable ${args}
140 ${valueDict} = create dictionary data=${bootpolicy}
141 Write Attribute /org/openbmc/settings/host0 boot_policy data=${valueDict}
142
143Set Boot Device
144 [Arguments] ${args}
145 ${bootDevice} = Set Variable ${args}
146 ${valueDict} = create dictionary data=${bootDevice}
147 Write Attribute /org/openbmc/settings/host0 boot_flags data=${valueDict}
Sivas SRRe1143ae2016-08-26 22:31:02 -0500148
149
150