@@ -41,6 +41,7 @@ class ICDMData():
41
41
UserActiveModeTriggerHint : int
42
42
UserActiveModeTriggerInstruction : string
43
43
OperatingMode : c .Enums .OperatingModeEnum
44
+ MaximumCheckInBackOff : int
44
45
expect_pass : bool
45
46
46
47
@@ -57,145 +58,161 @@ class ICDMData():
57
58
# --------
58
59
# IdleModeDuration under minimum (< 1)
59
60
ICDMData (0 , 0 , 0 , 100 , [], 0 , 2 , 0 , "" ,
60
- c .Enums .OperatingModeEnum .kSit , False ),
61
+ c .Enums .OperatingModeEnum .kSit , 64800 , False ),
61
62
# IdleModeDuration at minimum
62
63
ICDMData (0 , 1 , 0 , 100 , [], 0 , 2 , 0 , "" ,
63
- c .Enums .OperatingModeEnum .kSit , True ),
64
+ c .Enums .OperatingModeEnum .kSit , 64800 , True ),
64
65
# IdleModeDuration at maximum
65
66
ICDMData (0 , 64800 , 100 , 100 , [], 0 , 2 , 0 , "" ,
66
- c .Enums .OperatingModeEnum .kSit , True ),
67
+ c .Enums .OperatingModeEnum .kSit , 64800 , True ),
67
68
# IdleModeDuration over maximum (>64800)
68
69
ICDMData (0 , 64801 , 100 , 100 , [], 0 , 2 , 0 , "" ,
69
- c .Enums .OperatingModeEnum .kSit , False ),
70
+ c .Enums .OperatingModeEnum .kSit , 64800 , False ),
70
71
# IdleModeDuration < ActiveModeDuration
71
72
ICDMData (0 , 1 , 1001 , 100 , [], 0 , 2 , 0 , "" ,
72
- c .Enums .OperatingModeEnum .kSit , False ),
73
+ c .Enums .OperatingModeEnum .kSit , 64800 , False ),
73
74
# --------
74
75
# Test cases to validate ActiveModeDuration
75
76
# --------
76
77
# ActiveModeDuration under minimum
77
78
ICDMData (0 , 100 , - 1 , 100 , [], 0 , 2 , 0 , "" ,
78
- c .Enums .OperatingModeEnum .kSit , False ),
79
+ c .Enums .OperatingModeEnum .kSit , 64800 , False ),
79
80
# ActiveModeDuration at minimum
80
81
ICDMData (0 , 100 , 0 , 100 , [], 0 , 2 , 0 , "" ,
81
- c .Enums .OperatingModeEnum .kSit , True ),
82
+ c .Enums .OperatingModeEnum .kSit , 64800 , True ),
82
83
# ActiveModeDuration at maximum - value is max IdleModeDuration value - 1
83
84
ICDMData (0 , 64800 , 0x3DCC4FF , 100 , [], 0 , 2 , 0 , "" ,
84
- c .Enums .OperatingModeEnum .kSit , True ),
85
+ c .Enums .OperatingModeEnum .kSit , 64800 , True ),
85
86
# --------
86
87
# Test cases to validate ActiveModeThreshold
87
88
# --------
88
89
# ActiveModeThreshold < minimum
89
90
ICDMData (0 , 1 , 0 , - 1 , [], 0 , 2 , 0 , "" ,
90
- c .Enums .OperatingModeEnum .kSit , False ),
91
+ c .Enums .OperatingModeEnum .kSit , 64800 , False ),
91
92
# ActiveModeThreshold at SIT minimum
92
93
ICDMData (0 , 1 , 0 , 0 , [], 0 , 2 , 0 , "" ,
93
- c .Enums .OperatingModeEnum .kSit , True ),
94
+ c .Enums .OperatingModeEnum .kSit , 64800 , True ),
94
95
# ActiveModeThreshold under LIT minimum
95
96
ICDMData (0x7 , 1 , 0 , 4999 , [], 0 , 2 , 0 , "" ,
96
- c .Enums .OperatingModeEnum .kLit , False ),
97
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
97
98
# ActiveModeThreshold at LIT minimum
98
99
ICDMData (0x7 , 1 , 0 , 5000 , [], 0 , 2 , 0 , "" ,
99
- c .Enums .OperatingModeEnum .kLit , True ),
100
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
100
101
# ActiveModeThreshold at Maximum
101
102
ICDMData (0 , 1 , 0 , 0xFFFF , [], 0 , 2 , 0 , "" ,
102
- c .Enums .OperatingModeEnum .kSit , True ),
103
+ c .Enums .OperatingModeEnum .kSit , 64800 , True ),
103
104
# ActiveModeThreshold over Maximum
104
105
ICDMData (0 , 1 , 0 , 0x10000 , [], 0 , 2 , 0 , "" ,
105
- c .Enums .OperatingModeEnum .kSit , False ),
106
+ c .Enums .OperatingModeEnum .kSit , 64800 , False ),
106
107
# --------
107
108
# Test cases to validate ClientsSupportedPerFabric
108
109
# --------
109
110
# ClientsSupportedPerFabric under minimum (< 1)
110
111
ICDMData (0 , 1 , 0 , 100 , [], 0 , 0 , 0 , "" ,
111
- c .Enums .OperatingModeEnum .kLit , False ),
112
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
112
113
# ClientsSupportedPerFabric at minimum
113
114
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , 0 , "" ,
114
- c .Enums .OperatingModeEnum .kLit , True ),
115
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
115
116
# ClientsSupportedPerFabric at maximum
116
117
ICDMData (0 , 1 , 0 , 100 , [], 0 , 255 , 0 , "" ,
117
- c .Enums .OperatingModeEnum .kLit , True ),
118
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
118
119
# ClientsSupportedPerFabric > maximum
119
120
ICDMData (0 , 1 , 0 , 100 , [], 0 , 256 , 0 , "" ,
120
- c .Enums .OperatingModeEnum .kLit , True ),
121
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
121
122
# --------
122
123
# Test cases to validate RegisteredClients
123
124
# --------
124
125
# Incorrect type
125
126
ICDMData (0 , 1 , 0 , 100 , 0 , 0 , 1 , 0 , "" ,
126
- c .Enums .OperatingModeEnum .kLit , False ),
127
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
127
128
# Correct type
128
129
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , 0 , "" ,
129
- c .Enums .OperatingModeEnum .kLit , True ),
130
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
130
131
# --------
131
132
# Test cases to validate ICDCounter
132
133
# --------
133
134
# ICDCounter under minimum (< 0)
134
135
ICDMData (0 , 1 , 0 , 100 , [], - 1 , 1 , 0 , "" ,
135
- c .Enums .OperatingModeEnum .kLit , False ),
136
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
136
137
# ICDCounter at minimum
137
138
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , 0 , "" ,
138
- c .Enums .OperatingModeEnum .kLit , True ),
139
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
139
140
# ICDCounter at maximum
140
141
ICDMData (0 , 1 , 0 , 100 , [], 0xFFFFFFFF , 1 , 0 , "" ,
141
- c .Enums .OperatingModeEnum .kLit , True ),
142
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
142
143
# ICDCounter over maximum
143
144
ICDMData (0 , 1 , 0 , 100 , [], 0x100000000 , 1 , 0 , "" ,
144
- c .Enums .OperatingModeEnum .kLit , False ),
145
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
145
146
# --------
146
147
# Test cases to validate UserActiveModeTriggerHint
147
148
# --------
148
149
# UserActiveModeTriggerHint outsite valid range
149
150
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , 0x1FFFF , "" ,
150
- c .Enums .OperatingModeEnum .kLit , False ),
151
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
151
152
# UserActiveModeTriggerHint outsite valid range
152
153
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , - 1 , "" ,
153
- c .Enums .OperatingModeEnum .kLit , False ),
154
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
154
155
# UserActiveModeTriggerHint with no hints
155
156
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , 0 , "" ,
156
- c .Enums .OperatingModeEnum .kLit , True ),
157
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
157
158
# UserActiveModeTriggerHint wiht two instruction depedent bits set
158
159
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kCustomInstruction | uat .kActuateSensorSeconds , "" ,
159
- c .Enums .OperatingModeEnum .kLit , False ),
160
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
160
161
# --------
161
162
# Test cases to validate UserActiveModeTriggerInstruction
162
163
# --------
163
164
# UserActiveModeTriggerInstruction with wrong encoding
164
165
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kCustomInstruction , "Hello\uD83D \uDE00 World" ,
165
- c .Enums .OperatingModeEnum .kLit , False ),
166
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
166
167
# UserActiveModeTriggerInstruction with empty string
167
168
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kCustomInstruction , "" ,
168
- c .Enums .OperatingModeEnum .kLit , True ),
169
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
169
170
# UserActiveModeTriggerInstruction with empty string
170
171
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kCustomInstruction , "" ,
171
- c .Enums .OperatingModeEnum .kLit , True ),
172
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
172
173
# UserActiveModeTriggerInstruction with max string length
173
174
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kCustomInstruction , long_string ,
174
- c .Enums .OperatingModeEnum .kLit , True ),
175
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
175
176
# UserActiveModeTriggerInstruction > max string length
176
177
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kCustomInstruction , too_long_string ,
177
- c .Enums .OperatingModeEnum .kLit , False ),
178
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
178
179
# UserActiveModeTriggerInstruction invalid number - Trailing 0s
179
180
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "001" ,
180
- c .Enums .OperatingModeEnum .kLit , False ),
181
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
181
182
# UserActiveModeTriggerInstruction invalid number - Letters
182
183
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "not a number" ,
183
- c .Enums .OperatingModeEnum .kLit , False ),
184
+ c .Enums .OperatingModeEnum .kLit , 64800 , False ),
184
185
# UserActiveModeTriggerInstruction Valid number
185
186
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "100000" ,
186
- c .Enums .OperatingModeEnum .kLit , True ),
187
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
188
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorLightsBlink , "" , c .Enums .OperatingModeEnum .kLit , 64800 , False ),
189
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorLightsBlink , "AAAAAAA" , c .Enums .OperatingModeEnum .kLit , 64800 , False ),
190
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorLightsBlink , "AAAAA" , c .Enums .OperatingModeEnum .kLit , 64800 , False ),
191
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorLightsBlink , "AAAAAK" , c .Enums .OperatingModeEnum .kLit , 64800 , False ),
192
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorLightsBlink , "012345" , c .Enums .OperatingModeEnum .kLit , 64800 , True ),
187
193
# --------
188
194
# Test cases to validate OpertingMode
189
195
# --------
190
196
# OpertingMode with negative value
191
197
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "100000" ,
192
- - 1 , False ),
198
+ - 1 , 64800 , False ),
193
199
# OpertingMode with Accepted value
194
200
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "100000" ,
195
- c .Enums .OperatingModeEnum .kLit , True ),
201
+ c .Enums .OperatingModeEnum .kLit , 64800 , True ),
196
202
# OpertingMode with unkown value
197
203
ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "100000" ,
198
- c .Enums .OperatingModeEnum .kUnknownEnumValue , False ),
204
+ c .Enums .OperatingModeEnum .kUnknownEnumValue , 64800 , False ),
205
+ # --------
206
+ # Test cases to validate MaximumCheckInBackOff
207
+ # --------
208
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "100000" ,
209
+ c .Enums .OperatingModeEnum .kUnknownEnumValue , 0 , False ),
210
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "100000" ,
211
+ c .Enums .OperatingModeEnum .kSit , 1 , True ),
212
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "100000" ,
213
+ c .Enums .OperatingModeEnum .kSit , 64800 , True ),
214
+ ICDMData (0 , 1 , 0 , 100 , [], 0 , 1 , uat .kActuateSensorSeconds , "100000" ,
215
+ c .Enums .OperatingModeEnum .kSit , 64801 , False ),
199
216
200
217
]
201
218
@@ -205,13 +222,13 @@ def test_spec_to_attribute_cache(test_icdm: ICDMData) -> Attribute.AsyncReadTran
205
222
resp .attributes = {0 : {c : {attr .FeatureMap : test_icdm .FeatureMap , attr .IdleModeDuration : test_icdm .IdleModeDuration , attr .ActiveModeDuration : test_icdm .ActiveModeDuration , attr .ActiveModeThreshold : test_icdm .ActiveModeThreshold ,
206
223
attr .RegisteredClients : test_icdm .RegisteredClients , attr .ICDCounter : test_icdm .ICDCounter ,
207
224
attr .ClientsSupportedPerFabric : test_icdm .ClientsSupportedPerFabric , attr .UserActiveModeTriggerHint : test_icdm .UserActiveModeTriggerHint ,
208
- attr .UserActiveModeTriggerInstruction : test_icdm .UserActiveModeTriggerInstruction , attr .OperatingMode : test_icdm .OperatingMode }}}
225
+ attr .UserActiveModeTriggerInstruction : test_icdm .UserActiveModeTriggerInstruction , attr .OperatingMode : test_icdm .OperatingMode , attr . MaximumCheckInBackOff : test_icdm . MaximumCheckInBackOff }}}
209
226
return resp
210
227
211
228
212
229
def main ():
213
230
pics = {"ICDM.S.A0000" : True , "ICDM.S.A0001" : True , "ICDM.S.A0002" : True , "ICDM.S.A0003" : True , "ICDM.S.A0004" : True ,
214
- "ICDM.S.A0005" : True , "ICDM.S.A0006" : True , "ICDM.S.A0007" : True , "ICDM.S.A0008" : True , }
231
+ "ICDM.S.A0005" : True , "ICDM.S.A0006" : True , "ICDM.S.A0007" : True , "ICDM.S.A0008" : True , "ICDM.S.A0009" : True , }
215
232
216
233
test_runner = MockTestRunner (
217
234
'TC_ICDM_2_1' , 'TC_ICDM_2_1' , 'test_TC_ICDM_2_1' , 0 , pics )
0 commit comments