1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "mechbodycontrollerstub_fuzzer.h"
17
18 #include <cstddef>
19 #include <cstdint>
20 #include <cstring>
21 #include <string>
22
23 #include "mechbody_controller_stub.h"
24 #include "mechbody_controller_service.h"
25 #include "mechbody_controller_ipc_interface_code.h"
26 #include "mechbody_controller_log.h"
27 #include "ipc_skeleton.h"
28 #include "message_option.h"
29 #include "message_parcel.h"
30 #include "securec.h"
31 #include "accesstoken_kit.h"
32 #include "nativetoken_kit.h"
33 #include "token_setproc.h"
34 #include "system_ability.h"
35
36 namespace OHOS {
37 using namespace OHOS::MechBodyController;
GetInstance()38 MechBodyControllerService& MechBodyControllerService::GetInstance()
39 {
40 static auto instance = new MechBodyControllerService();
41 return *instance;
42 }
43
MechBodyControllerService()44 MechBodyControllerService::MechBodyControllerService()
45 {
46 }
47
~MechBodyControllerService()48 MechBodyControllerService::~MechBodyControllerService()
49 {
50 }
51
OnDeviceConnected(int32_t mechId)52 int32_t MechBodyControllerService::OnDeviceConnected(int32_t mechId)
53 {
54 return 0;
55 }
56
RegisterAttachStateChangeCallback(const sptr<IRemoteObject> callback)57 int32_t MechBodyControllerService::RegisterAttachStateChangeCallback(const sptr<IRemoteObject> callback)
58 {
59 return 0;
60 }
61
UnRegisterAttachStateChangeCallback()62 int32_t MechBodyControllerService::UnRegisterAttachStateChangeCallback()
63 {
64 return 0;
65 }
66
OnAttachStateChange(const AttachmentState & attachmentState,const MechInfo & mechInfo)67 int32_t MechBodyControllerService::OnAttachStateChange(const AttachmentState &attachmentState,
68 const MechInfo &mechInfo)
69 {
70 return 0;
71 }
72
GetAttachedDevices(std::set<MechInfo> & mechInfo)73 int32_t MechBodyControllerService::GetAttachedDevices(std::set<MechInfo> &mechInfo)
74 {
75 return 0;
76 }
77
SetUserOperation(const std::shared_ptr<Operation> & operation,const std::string & mac,const std::string & param)78 int32_t MechBodyControllerService::SetUserOperation(const std::shared_ptr<Operation> &operation,
79 const std::string &mac, const std::string ¶m)
80 {
81 return 0;
82 }
83
SetTrackingEnabled(bool & isEnabled)84 int32_t MechBodyControllerService::SetTrackingEnabled(bool &isEnabled)
85 {
86 return 0;
87 }
88
GetTrackingEnabled(bool & isEnabled)89 int32_t MechBodyControllerService::GetTrackingEnabled(bool &isEnabled)
90 {
91 return 0;
92 }
93
RegisterTrackingEventCallback(sptr<IRemoteObject> callback)94 int32_t MechBodyControllerService::RegisterTrackingEventCallback(sptr<IRemoteObject> callback)
95 {
96 return 0;
97 }
98
UnRegisterTrackingEventCallback()99 int32_t MechBodyControllerService::UnRegisterTrackingEventCallback()
100 {
101 return 0;
102 }
103
SetTrackingLayout(CameraTrackingLayout & cameraTrackingLayout)104 int32_t MechBodyControllerService::SetTrackingLayout(CameraTrackingLayout &cameraTrackingLayout)
105 {
106 return 0;
107 }
108
GetTrackingLayout(CameraTrackingLayout & cameraTrackingLayoutb)109 int32_t MechBodyControllerService::GetTrackingLayout(CameraTrackingLayout &cameraTrackingLayoutb)
110 {
111 return 0;
112 }
113
RegisterCmdChannel(const sptr<IRemoteObject> callback)114 int32_t MechBodyControllerService::RegisterCmdChannel(const sptr<IRemoteObject> callback)
115 {
116 return 0;
117 }
118
RotateByDegree(const int32_t & mechId,std::string & cmdId,const std::shared_ptr<RotateByDegreeParam> & rotateByDegreeParam)119 int32_t MechBodyControllerService::RotateByDegree(const int32_t &mechId, std::string &cmdId,
120 const std::shared_ptr<RotateByDegreeParam> &rotateByDegreeParam)
121 {
122 return 0;
123 }
124
RotateToEulerAngles(const int32_t & mechId,std::string & cmdId,const std::shared_ptr<RotateToEulerAnglesParam> & rotateToEulerAnglesParam)125 int32_t MechBodyControllerService::RotateToEulerAngles(const int32_t &mechId, std::string &cmdId,
126 const std::shared_ptr<RotateToEulerAnglesParam> &rotateToEulerAnglesParam)
127 {
128 return 0;
129 }
130
GetMaxRotationTime(const int32_t & mechId,std::shared_ptr<TimeLimit> & speedLimit)131 int32_t MechBodyControllerService::GetMaxRotationTime(const int32_t &mechId, std::shared_ptr<TimeLimit> &speedLimit)
132 {
133 return 0;
134 }
135
GetMaxRotationSpeed(const int32_t & mechId,RotateSpeedLimit & speedLimit)136 int32_t MechBodyControllerService::GetMaxRotationSpeed(const int32_t &mechId, RotateSpeedLimit &speedLimit)
137 {
138 return 0;
139 }
140
RotateBySpeed(const int32_t & mechId,std::string & cmdId,const std::shared_ptr<RotateBySpeedParam> & rotateBySpeedParam)141 int32_t MechBodyControllerService::RotateBySpeed(const int32_t &mechId, std::string &cmdId,
142 const std::shared_ptr<RotateBySpeedParam> &rotateBySpeedParam)
143 {
144 return 0;
145 }
146
StopMoving(const int32_t & mechId,std::string & cmdId)147 int32_t MechBodyControllerService::StopMoving(const int32_t &mechId, std::string &cmdId)
148 {
149 return 0;
150 }
151
GetRotationAngles(const int32_t & mechId,std::shared_ptr<EulerAngles> & eulerAngles)152 int32_t MechBodyControllerService::GetRotationAngles(const int32_t &mechId, std::shared_ptr<EulerAngles> &eulerAngles)
153 {
154 return 0;
155 }
156
GetRotationDegreeLimits(const int32_t & mechId,RotateDegreeLimit & rotationLimit)157 int32_t MechBodyControllerService::GetRotationDegreeLimits(const int32_t &mechId, RotateDegreeLimit &rotationLimit)
158 {
159 return 0;
160 }
161
GetRotationAxesStatus(const int32_t & mechId,RotationAxesStatus & axesStatus)162 int32_t MechBodyControllerService::GetRotationAxesStatus(const int32_t &mechId, RotationAxesStatus &axesStatus)
163 {
164 return 0;
165 }
166
RegisterRotationAxesStatusChangeCallback(const sptr<IRemoteObject> callback)167 int32_t MechBodyControllerService::RegisterRotationAxesStatusChangeCallback(const sptr<IRemoteObject> callback)
168 {
169 return 0;
170 }
171
UnRegisterRotationAxesStatusChangeCallback()172 int32_t MechBodyControllerService::UnRegisterRotationAxesStatusChangeCallback()
173 {
174 return 0;
175 }
176
AttachStateChangeListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)177 void AttachStateChangeListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
178 const uint8_t *data,
179 size_t size)
180 {
181 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ATTACH_STATE_CHANGE_LISTEN_ON);
182 MessageParcel datas;
183 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
184 datas.WriteBuffer(data, size);
185 datas.RewindRead(0);
186 MessageParcel reply;
187 MessageOption option;
188
189 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
190 }
191
AttachStateChangeListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)192 void AttachStateChangeListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
193 const uint8_t *data,
194 size_t size)
195 {
196 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ATTACH_STATE_CHANGE_LISTEN_OFF);
197 MessageParcel datas;
198 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
199 datas.WriteBuffer(data, size);
200 datas.RewindRead(0);
201 MessageParcel reply;
202 MessageOption option;
203
204 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
205 }
206
GetAttachedDevicesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)207 void GetAttachedDevicesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
208 const uint8_t *data,
209 size_t size)
210 {
211 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_ATTACHED_DEVICES);
212 MessageParcel datas;
213 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
214 datas.WriteBuffer(data, size);
215 datas.RewindRead(0);
216 MessageParcel reply;
217 MessageOption option;
218
219 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
220 }
221
SetUserOperationInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)222 void SetUserOperationInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
223 const uint8_t *data,
224 size_t size)
225 {
226 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::SET_USER_OPERATION);
227 MessageParcel datas;
228 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
229 datas.WriteBuffer(data, size);
230 datas.RewindRead(0);
231 MessageParcel reply;
232 MessageOption option;
233
234 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
235 }
236
SetCameraTrackingEnabledInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)237 void SetCameraTrackingEnabledInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
238 const uint8_t *data,
239 size_t size)
240 {
241 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::SET_CAMERA_TRACKING_ENABLED);
242 MessageParcel datas;
243 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
244 datas.WriteBuffer(data, size);
245 datas.RewindRead(0);
246 MessageParcel reply;
247 MessageOption option;
248
249 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
250 }
251
GetCameraTrackingEnabledInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)252 void GetCameraTrackingEnabledInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
253 const uint8_t *data,
254 size_t size)
255 {
256 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_CAMERA_TRACKING_ENABLED);
257 MessageParcel datas;
258 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
259 datas.WriteBuffer(data, size);
260 datas.RewindRead(0);
261 MessageParcel reply;
262 MessageOption option;
263
264 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
265 }
266
TrackingEventListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)267 void TrackingEventListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
268 const uint8_t *data,
269 size_t size)
270 {
271 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::TRACKING_EVENT_LISTEN_ON);
272 MessageParcel datas;
273 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
274 datas.WriteBuffer(data, size);
275 datas.RewindRead(0);
276 MessageParcel reply;
277 MessageOption option;
278
279 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
280 }
281
TrackingEventListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)282 void TrackingEventListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
283 const uint8_t *data,
284 size_t size)
285 {
286 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::TRACKING_EVENT_LISTEN_OFF);
287 MessageParcel datas;
288 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
289 datas.WriteBuffer(data, size);
290 datas.RewindRead(0);
291 MessageParcel reply;
292 MessageOption option;
293
294 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
295 }
296
SetCameraTrackingLayoutInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)297 void SetCameraTrackingLayoutInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
298 const uint8_t *data,
299 size_t size)
300 {
301 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::SET_CAMERA_TRACKING_LAYOUT);
302 MessageParcel datas;
303 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
304 datas.WriteBuffer(data, size);
305 datas.RewindRead(0);
306 MessageParcel reply;
307 MessageOption option;
308
309 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
310 }
311
GetCameraTrackingLayoutInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)312 void GetCameraTrackingLayoutInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
313 const uint8_t *data,
314 size_t size)
315 {
316 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_CAMERA_TRACKING_LAYOUT);
317 MessageParcel datas;
318 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
319 datas.WriteBuffer(data, size);
320 datas.RewindRead(0);
321 MessageParcel reply;
322 MessageOption option;
323
324 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
325 }
326
RegisterCmdChannelInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)327 void RegisterCmdChannelInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
328 const uint8_t *data,
329 size_t size)
330 {
331 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::REGISTER_CMD_CHANNEL);
332 MessageParcel datas;
333 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
334 datas.WriteBuffer(data, size);
335 datas.RewindRead(0);
336 MessageParcel reply;
337 MessageOption option;
338
339 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
340 }
341
RotateByDegreeInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)342 void RotateByDegreeInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
343 const uint8_t *data,
344 size_t size)
345 {
346 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATE_BY_DEGREE);
347 MessageParcel datas;
348 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
349 datas.WriteBuffer(data, size);
350 datas.RewindRead(0);
351 MessageParcel reply;
352 MessageOption option;
353
354 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
355 }
356
GetMaxRotationTimeInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)357 void GetMaxRotationTimeInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
358 const uint8_t *data,
359 size_t size)
360 {
361 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_MAX_ROTATION_TIME);
362 MessageParcel datas;
363 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
364 datas.WriteBuffer(data, size);
365 datas.RewindRead(0);
366 MessageParcel reply;
367 MessageOption option;
368
369 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
370 }
371
GetMaxRotationSpeedInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)372 void GetMaxRotationSpeedInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
373 const uint8_t *data,
374 size_t size)
375 {
376 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_MAX_ROTATION_SPEED);
377 MessageParcel datas;
378 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
379 datas.WriteBuffer(data, size);
380 datas.RewindRead(0);
381 MessageParcel reply;
382 MessageOption option;
383
384 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
385 }
386
RotateBySpeedInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)387 void RotateBySpeedInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
388 const uint8_t *data,
389 size_t size)
390 {
391 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATE_BY_SPEED);
392 MessageParcel datas;
393 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
394 datas.WriteBuffer(data, size);
395 datas.RewindRead(0);
396 MessageParcel reply;
397 MessageOption option;
398
399 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
400 }
401
StopMovingInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)402 void StopMovingInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
403 const uint8_t *data,
404 size_t size)
405 {
406 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::STOP_MOVING);
407 MessageParcel datas;
408 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
409 datas.WriteBuffer(data, size);
410 datas.RewindRead(0);
411 MessageParcel reply;
412 MessageOption option;
413
414 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
415 }
416
GetRotationAnglesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)417 void GetRotationAnglesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
418 const uint8_t *data,
419 size_t size)
420 {
421 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_ROTATION_ANGLES);
422 MessageParcel datas;
423 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
424 datas.WriteBuffer(data, size);
425 datas.RewindRead(0);
426 MessageParcel reply;
427 MessageOption option;
428
429 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
430 }
431
GetRotationDegreeLimitsInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)432 void GetRotationDegreeLimitsInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
433 const uint8_t *data,
434 size_t size)
435 {
436 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_ROTATION_DEGREE_LIMITS);
437 MessageParcel datas;
438 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
439 datas.WriteBuffer(data, size);
440 datas.RewindRead(0);
441 MessageParcel reply;
442 MessageOption option;
443
444 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
445 }
446
GetRotationAxesStatusInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)447 void GetRotationAxesStatusInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
448 const uint8_t *data,
449 size_t size)
450 {
451 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_ROTATION_AXES_STATUS);
452 MessageParcel datas;
453 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
454 datas.WriteBuffer(data, size);
455 datas.RewindRead(0);
456 MessageParcel reply;
457 MessageOption option;
458
459 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
460 }
461
RotationAxesStatusChangeListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)462 void RotationAxesStatusChangeListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
463 const uint8_t *data,
464 size_t size)
465 {
466 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATION_AXES_STATUS_CHANGE_LISTEN_ON);
467 MessageParcel datas;
468 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
469 datas.WriteBuffer(data, size);
470 datas.RewindRead(0);
471 MessageParcel reply;
472 MessageOption option;
473
474 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
475 }
476
RotationAxesStatusChangeListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)477 void RotationAxesStatusChangeListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
478 const uint8_t *data,
479 size_t size)
480 {
481 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATION_AXES_STATUS_CHANGE_LISTEN_OFF);
482 MessageParcel datas;
483 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
484 datas.WriteBuffer(data, size);
485 datas.RewindRead(0);
486 MessageParcel reply;
487 MessageOption option;
488
489 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
490 }
491
RotateToEulerAnglesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)492 void RotateToEulerAnglesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
493 const uint8_t *data,
494 size_t size)
495 {
496 uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATE_BY_DEGREE);
497 MessageParcel datas;
498 datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
499 datas.WriteBuffer(data, size);
500 datas.RewindRead(0);
501 MessageParcel reply;
502 MessageOption option;
503
504 mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
505 }
506 }
507
508 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)509 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
510 {
511 /* Run your code on data */
512 auto mechBodyControllerStubPtr = std::make_shared<OHOS::MechBodyControllerService>();
513 OHOS::AttachStateChangeListenOnInnerFuzzTest(mechBodyControllerStubPtr, data, size);
514 OHOS::AttachStateChangeListenOffInnerFuzzTest(mechBodyControllerStubPtr, data, size);
515 OHOS::GetAttachedDevicesInnerFuzzTest(mechBodyControllerStubPtr, data, size);
516 OHOS::SetUserOperationInnerFuzzTest(mechBodyControllerStubPtr, data, size);
517 OHOS::SetCameraTrackingEnabledInnerFuzzTest(mechBodyControllerStubPtr, data, size);
518 OHOS::GetCameraTrackingEnabledInnerFuzzTest(mechBodyControllerStubPtr, data, size);
519 OHOS::TrackingEventListenOnInnerFuzzTest(mechBodyControllerStubPtr, data, size);
520 OHOS::TrackingEventListenOffInnerFuzzTest(mechBodyControllerStubPtr, data, size);
521 OHOS::SetCameraTrackingLayoutInnerFuzzTest(mechBodyControllerStubPtr, data, size);
522 OHOS::GetCameraTrackingLayoutInnerFuzzTest(mechBodyControllerStubPtr, data, size);
523 OHOS::RegisterCmdChannelInnerFuzzTest(mechBodyControllerStubPtr, data, size);
524 OHOS::RotateByDegreeInnerFuzzTest(mechBodyControllerStubPtr, data, size);
525 OHOS::GetMaxRotationTimeInnerFuzzTest(mechBodyControllerStubPtr, data, size);
526 OHOS::GetMaxRotationSpeedInnerFuzzTest(mechBodyControllerStubPtr, data, size);
527 OHOS::RotateBySpeedInnerFuzzTest(mechBodyControllerStubPtr, data, size);
528 OHOS::StopMovingInnerFuzzTest(mechBodyControllerStubPtr, data, size);
529 OHOS::GetRotationAnglesInnerFuzzTest(mechBodyControllerStubPtr, data, size);
530 OHOS::GetRotationDegreeLimitsInnerFuzzTest(mechBodyControllerStubPtr, data, size);
531 OHOS::GetRotationAxesStatusInnerFuzzTest(mechBodyControllerStubPtr, data, size);
532 OHOS::RotationAxesStatusChangeListenOnInnerFuzzTest(mechBodyControllerStubPtr, data, size);
533 OHOS::RotationAxesStatusChangeListenOffInnerFuzzTest(mechBodyControllerStubPtr, data, size);
534 OHOS::RotateToEulerAnglesInnerFuzzTest(mechBodyControllerStubPtr, data, size);
535 return 0;
536 }