1 /*
2 * Copyright (c) 2024 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 #define private public
16 #define protected public
17 #include "printserviceability_fuzzer.h"
18 #include "fuzzer/FuzzedDataProvider.h"
19 #include "print_constant.h"
20 #include "printer_capability.h"
21 #include "print_log.h"
22 #include "print_service_ability.h"
23 #include "print_service_ability_mock_permission.h"
24
25 namespace OHOS {
26 namespace Print {
27 constexpr uint8_t MAX_STRING_LENGTH = 255;
28 constexpr int MAX_SET_NUMBER = 100;
29 constexpr size_t U32_AT_SIZE = 4;
30 static constexpr const char *JOB_OPTIONS =
31 "{\"jobName\":\"xx\",\"jobNum\":1,\"mediaType\":\"stationery\",\"documentCategory\":0,\"printQuality\":\"4\","
32 "\"printerName\":\"printer1\",\"printerUri\":\"ipp://192.168.0.1:111/ipp/print\","
33 "\"documentFormat\":\"application/pdf\",\"files\":[\"/data/1.pdf\"]}";
34
TestStartService(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)35 void TestStartService(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
36 {
37 PrintServiceAbilityMockPermission::MockPermission();
38 PrintServiceAbility::GetInstance()->Init();
39 PrintServiceAbility::GetInstance()->StartService();
40 }
41
TestStartPrint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)42 void TestStartPrint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
43 {
44 PrintServiceAbilityMockPermission::MockPermission();
45 PrintServiceAbility::GetInstance()->Init();
46 std::string fileUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
47 std::vector<std::string> fileList;
48 fileList.push_back(fileUri);
49 uint32_t fd = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
50 std::vector<uint32_t> fdList;
51 fdList.push_back(fd);
52 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
53 PrintServiceAbility::GetInstance()->StartPrint(fileList, fdList, taskId);
54 }
55
TestStopPrint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)56 void TestStopPrint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
57 {
58 PrintServiceAbilityMockPermission::MockPermission();
59 PrintServiceAbility::GetInstance()->Init();
60 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
61 PrintServiceAbility::GetInstance()->StopPrint(taskId);
62 }
63
TestConnectPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)64 void TestConnectPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
65 {
66 PrintServiceAbilityMockPermission::MockPermission();
67 PrintServiceAbility::GetInstance()->Init();
68 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
69 PrintServiceAbility::GetInstance()->ConnectPrinter(printerId);
70 }
71
TestDisconnectPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)72 void TestDisconnectPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
73 {
74 PrintServiceAbilityMockPermission::MockPermission();
75 PrintServiceAbility::GetInstance()->Init();
76 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
77 PrintServiceAbility::GetInstance()->DisconnectPrinter(printerId);
78 }
79
TestStartDiscoverPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)80 void TestStartDiscoverPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
81 {
82 PrintServiceAbilityMockPermission::MockPermission();
83 PrintServiceAbility::GetInstance()->Init();
84 std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
85 std::vector<std::string> extensionIds;
86 extensionIds.push_back(extensionId);
87 PrintServiceAbility::GetInstance()->StartDiscoverPrinter(extensionIds);
88 }
89
TestStopDiscoverPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)90 void TestStopDiscoverPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
91 {
92 PrintServiceAbilityMockPermission::MockPermission();
93 PrintServiceAbility::GetInstance()->Init();
94 PrintServiceAbility::GetInstance()->StopDiscoverPrinter();
95 }
96
TestQueryAllExtension(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)97 void TestQueryAllExtension(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
98 {
99 PrintServiceAbilityMockPermission::MockPermission();
100 PrintExtensionInfo printExtensionInfo;
101 printExtensionInfo.SetExtensionId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
102 std::vector<PrintExtensionInfo> printExtensionInfos;
103 printExtensionInfos.push_back(printExtensionInfo);
104 PrintServiceAbility::GetInstance()->Init();
105 PrintServiceAbility::GetInstance()->QueryAllExtension(printExtensionInfos);
106 }
107
TestStartPrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)108 void TestStartPrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
109 {
110 PrintServiceAbilityMockPermission::MockPermission();
111 PrintJob testJob;
112 testJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
113 std::vector<uint32_t> files = {1};
114 testJob.SetFdList(files);
115 OHOS::Print::PrintPageSize pageSize;
116 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
117 testJob.SetPageSize(pageSize);
118 testJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
119 testJob.SetOption(JOB_OPTIONS);
120 PrintServiceAbility::GetInstance()->Init();
121 PrintServiceAbility::GetInstance()->StartPrintJob(testJob);
122 }
123
TestCancelPrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)124 void TestCancelPrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
125 {
126 PrintServiceAbilityMockPermission::MockPermission();
127 PrintServiceAbility::GetInstance()->Init();
128 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
129 PrintServiceAbility::GetInstance()->CancelPrintJob(jobId);
130 }
131
TestAddPrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)132 void TestAddPrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
133 {
134 PrintServiceAbilityMockPermission::MockPermission();
135 PrinterInfo printerInfo;
136 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
137 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
138 printerInfo.SetOption(JOB_OPTIONS);
139 std::vector<PrinterInfo> printerInfos;
140 printerInfos.push_back(printerInfo);
141 PrintServiceAbility::GetInstance()->Init();
142 PrintServiceAbility::GetInstance()->AddPrinters(printerInfos);
143 }
144
TestRemovePrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)145 void TestRemovePrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
146 {
147 PrintServiceAbilityMockPermission::MockPermission();
148 PrintServiceAbility::GetInstance()->Init();
149 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
150 std::vector<std::string> printerIds;
151 printerIds.push_back(printerId);
152 PrintServiceAbility::GetInstance()->RemovePrinters(printerIds);
153 }
154
TestUpdatePrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)155 void TestUpdatePrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
156 {
157 PrintServiceAbilityMockPermission::MockPermission();
158 PrinterInfo printerInfo;
159 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
160 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
161 printerInfo.SetOption(JOB_OPTIONS);
162 std::vector<PrinterInfo> printerInfos;
163 printerInfos.push_back(printerInfo);
164 PrintServiceAbility::GetInstance()->Init();
165 PrintServiceAbility::GetInstance()->UpdatePrinters(printerInfos);
166 return;
167 }
168
TestUpdatePrinterState(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)169 void TestUpdatePrinterState(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
170 {
171 PrintServiceAbilityMockPermission::MockPermission();
172 PrintServiceAbility::GetInstance()->Init();
173 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
174 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
175 PrintServiceAbility::GetInstance()->UpdatePrinterState(printerId, state);
176 }
177
TestUpdatePrintJobStateOnlyForSystemApp(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)178 void TestUpdatePrintJobStateOnlyForSystemApp(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
179 {
180 PrintServiceAbilityMockPermission::MockPermission();
181 PrintServiceAbility::GetInstance()->Init();
182 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
183 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
184 uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
185 PrintServiceAbility::GetInstance()->UpdatePrintJobStateOnlyForSystemApp(jobId, state, subState);
186 }
187
TestUpdateExtensionInfo(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)188 void TestUpdateExtensionInfo(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
189 {
190 PrintServiceAbilityMockPermission::MockPermission();
191 PrintServiceAbility::GetInstance()->Init();
192 std::string extInfo = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
193 PrintServiceAbility::GetInstance()->UpdateExtensionInfo(extInfo);
194 }
195
TestRequestPreview(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)196 void TestRequestPreview(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
197 {
198 PrintServiceAbilityMockPermission::MockPermission();
199 PrintJob printJob;
200 printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
201 std::vector<uint32_t> files = {1};
202 printJob.SetFdList(files);
203 OHOS::Print::PrintPageSize pageSize;
204 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
205 printJob.SetPageSize(pageSize);
206 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
207 printJob.SetOption(JOB_OPTIONS);
208 std::string previewResult = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
209 PrintServiceAbility::GetInstance()->Init();
210 PrintServiceAbility::GetInstance()->RequestPreview(printJob, previewResult);
211 return;
212 }
213
TestQueryPrinterCapability(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)214 void TestQueryPrinterCapability(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
215 {
216 PrintServiceAbilityMockPermission::MockPermission();
217 PrintServiceAbility::GetInstance()->Init();
218 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
219 PrintServiceAbility::GetInstance()->QueryPrinterCapability(printerId);
220 }
221
TestOn(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)222 void TestOn(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
223 {
224 PrintServiceAbilityMockPermission::MockPermission();
225 PrintServiceAbility::GetInstance()->Init();
226 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
227 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
228 PrintServiceAbility::GetInstance()->On(taskId, type, nullptr);
229 }
230
TestOff(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)231 void TestOff(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
232 {
233 PrintServiceAbilityMockPermission::MockPermission();
234 PrintServiceAbility::GetInstance()->Init();
235 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
236 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
237 PrintServiceAbility::GetInstance()->Off(taskId, type);
238 }
239
TestRegisterPrinterCallback(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)240 void TestRegisterPrinterCallback(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
241 {
242 PrintServiceAbilityMockPermission::MockPermission();
243 PrintServiceAbility::GetInstance()->Init();
244 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
245 PrintServiceAbility::GetInstance()->RegisterPrinterCallback(type, nullptr);
246 }
247
TestUnregisterPrinterCallback(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)248 void TestUnregisterPrinterCallback(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
249 {
250 PrintServiceAbilityMockPermission::MockPermission();
251 PrintServiceAbility::GetInstance()->Init();
252 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
253 PrintServiceAbility::GetInstance()->UnregisterPrinterCallback(type);
254 }
255
TestRegisterExtCallback(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)256 void TestRegisterExtCallback(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
257 {
258 PrintServiceAbilityMockPermission::MockPermission();
259 PrintServiceAbility::GetInstance()->Init();
260 std::string extensionCID = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
261 PrintServiceAbility::GetInstance()->RegisterExtCallback(extensionCID, nullptr);
262 }
263
TestUnregisterAllExtCallback(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)264 void TestUnregisterAllExtCallback(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
265 {
266 PrintServiceAbilityMockPermission::MockPermission();
267 PrintServiceAbility::GetInstance()->Init();
268 std::string extensionCID = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
269 PrintServiceAbility::GetInstance()->UnregisterAllExtCallback(extensionCID);
270 }
271
TestLoadExtSuccess(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)272 void TestLoadExtSuccess(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
273 {
274 PrintServiceAbilityMockPermission::MockPermission();
275 PrintServiceAbility::GetInstance()->Init();
276 std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
277 PrintServiceAbility::GetInstance()->LoadExtSuccess(extensionId);
278 }
279
TestQueryAllPrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)280 void TestQueryAllPrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
281 {
282 PrintServiceAbilityMockPermission::MockPermission();
283 PrintJob printJob;
284 printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
285 std::vector<uint32_t> files = {0};
286 printJob.SetFdList(files);
287 OHOS::Print::PrintPageSize pageSize;
288 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
289 printJob.SetPageSize(pageSize);
290 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
291 std::vector<PrintJob> printJobs;
292 printJobs.push_back(printJob);
293 PrintServiceAbility::GetInstance()->Init();
294 PrintServiceAbility::GetInstance()->QueryAllPrintJob(printJobs);
295 }
296
TestQueryPrintJobById(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)297 void TestQueryPrintJobById(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
298 {
299 PrintServiceAbilityMockPermission::MockPermission();
300 PrintJob printJob;
301 printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
302 std::vector<uint32_t> files = {0};
303 printJob.SetFdList(files);
304 OHOS::Print::PrintPageSize pageSize;
305 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
306 printJob.SetPageSize(pageSize);
307 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
308 std::string printJobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
309 PrintServiceAbility::GetInstance()->Init();
310 PrintServiceAbility::GetInstance()->QueryPrintJobById(printJobId, printJob);
311 }
312
TestAddPrinterToCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)313 void TestAddPrinterToCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
314 {
315 PrintServiceAbilityMockPermission::MockPermission();
316 PrintServiceAbility::GetInstance()->Init();
317 std::string printerUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
318 std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
319 std::string printerMake = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
320 PrintServiceAbility::GetInstance()->AddPrinterToCups(printerUri, printerName, printerMake);
321 }
322
TestQueryPrinterCapabilityByUri(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)323 void TestQueryPrinterCapabilityByUri(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
324 {
325 PrintServiceAbilityMockPermission::MockPermission();
326 PrintServiceAbility::GetInstance()->Init();
327 std::string printerUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
328 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
329 PrinterCapability printerCaps;
330 PrintServiceAbility::GetInstance()->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps);
331 }
332
TestSetHelper(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)333 void TestSetHelper(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
334 {
335 PrintServiceAbilityMockPermission::MockPermission();
336 PrintServiceAbility::GetInstance()->Init();
337 PrintServiceAbility::GetInstance()->SetHelper(nullptr);
338 }
339
TestPrintByAdapter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)340 void TestPrintByAdapter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
341 {
342 PrintServiceAbilityMockPermission::MockPermission();
343 std::string jobName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
344 PrintAttributes printAttributes;
345 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
346 PrintServiceAbility::GetInstance()->Init();
347 PrintServiceAbility::GetInstance()->PrintByAdapter(jobName, printAttributes, taskId);
348 }
349
TestStartGetPrintFile(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)350 void TestStartGetPrintFile(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
351 {
352 PrintServiceAbilityMockPermission::MockPermission();
353 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
354 PrintAttributes printAttributes;
355 uint32_t fd = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
356 PrintServiceAbility::GetInstance()->Init();
357 PrintServiceAbility::GetInstance()->StartGetPrintFile(jobId, printAttributes, fd);
358 }
359
TestQueryPrinterInfoByPrinterId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)360 void TestQueryPrinterInfoByPrinterId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
361 {
362 PrintServiceAbilityMockPermission::MockPermission();
363 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
364 PrinterInfo printerInfo;
365 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
366 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
367 printerInfo.SetOption(JOB_OPTIONS);
368 PrintServiceAbility::GetInstance()->Init();
369 PrintServiceAbility::GetInstance()->QueryPrinterInfoByPrinterId(printerId, printerInfo);
370 }
371
TestNotifyPrintService(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)372 void TestNotifyPrintService(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
373 {
374 PrintServiceAbilityMockPermission::MockPermission();
375 PrintServiceAbility::GetInstance()->Init();
376 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
377 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
378 PrintServiceAbility::GetInstance()->NotifyPrintService(jobId, type);
379 }
380
TestQueryAddedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)381 void TestQueryAddedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
382 {
383 PrintServiceAbilityMockPermission::MockPermission();
384 PrintServiceAbility::GetInstance()->Init();
385 std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
386 std::vector<std::string> printerNameList;
387 printerNameList.push_back(printerName);
388 PrintServiceAbility::GetInstance()->QueryAddedPrinter(printerNameList);
389 }
390
TestQueryPrinterProperties(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)391 void TestQueryPrinterProperties(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
392 {
393 PrintServiceAbilityMockPermission::MockPermission();
394 PrintServiceAbility::GetInstance()->Init();
395 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
396 std::string key = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
397 std::vector<std::string> keyList;
398 keyList.push_back(key);
399 std::string value = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
400 std::vector<std::string> valueList;
401 valueList.push_back(value);
402 PrintServiceAbility::GetInstance()->QueryPrinterProperties(printerId, keyList, valueList);
403 }
404
TestUpdatePrintJobState(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)405 void TestUpdatePrintJobState(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
406 {
407 PrintServiceAbilityMockPermission::MockPermission();
408 PrintServiceAbility::GetInstance()->Init();
409 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
410 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
411 uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
412 PrintServiceAbility::GetInstance()->UpdatePrintJobState(jobId, state, subState);
413 }
414
TestGetPrinterPreference(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)415 void TestGetPrinterPreference(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
416 {
417 PrintServiceAbility::GetInstance()->Init();
418 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
419 std::string printerPreference = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
420 PrintServiceAbility::GetInstance()->GetPrinterPreference(printerId, printerPreference);
421 }
422
TestSetPrinterPreference(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)423 void TestSetPrinterPreference(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
424 {
425 PrintServiceAbility::GetInstance()->Init();
426 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
427 std::string printerPreference = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
428 PrintServiceAbility::GetInstance()->SetPrinterPreference(printerId, printerPreference);
429 }
430
TestSetDefaultPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)431 void TestSetDefaultPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
432 {
433 PrintServiceAbility::GetInstance()->Init();
434 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
435 uint32_t type = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
436 PrintServiceAbility::GetInstance()->SetDefaultPrinter(printerId, type);
437 }
438
TestDeletePrinterFromCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)439 void TestDeletePrinterFromCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
440 {
441 PrintServiceAbility::GetInstance()->Init();
442 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
443 std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
444 std::string printerMake = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
445 PrintServiceAbility::GetInstance()->DeletePrinterFromCups(printerId, printerName, printerMake);
446 }
447
448 // below are private test
TestUpdateQueuedJobList(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)449 void TestUpdateQueuedJobList(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
450 {
451 PrintServiceAbilityMockPermission::MockPermission();
452 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
453 std::string printJobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
454 auto printJob = std::make_shared<PrintJob>();
455 printJob->SetJobId(printJobId);
456 printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
457 PrintServiceAbility::GetInstance()->Init();
458 PrintServiceAbility::GetInstance()->UpdateQueuedJobList(printJobId, printJob);
459 }
460
TestUpdatePrintJobOptionByPrinterId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)461 void TestUpdatePrintJobOptionByPrinterId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
462 {
463 PrintServiceAbilityMockPermission::MockPermission();
464 PrintJob printJob;
465 printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
466 std::vector<uint32_t> files = {0};
467 printJob.SetFdList(files);
468 OHOS::Print::PrintPageSize pageSize;
469 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
470 printJob.SetPageSize(pageSize);
471 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
472 PrintServiceAbility::GetInstance()->Init();
473 PrintServiceAbility::GetInstance()->UpdatePrintJobOptionByPrinterId(printJob);
474 }
475
TestDelayStartDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)476 void TestDelayStartDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
477 {
478 PrintServiceAbility::GetInstance()->Init();
479 std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
480 PrintServiceAbility::GetInstance()->DelayStartDiscovery(extensionId);
481 }
482
TestAdapterGetFileCallBack(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)483 void TestAdapterGetFileCallBack(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
484 {
485 PrintServiceAbility::GetInstance()->Init();
486 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
487 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
488 uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
489 PrintServiceAbility::GetInstance()->AdapterGetFileCallBack(jobId, state, subState);
490 }
491
TestAddNativePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)492 void TestAddNativePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
493 {
494 PrintServiceAbility::GetInstance()->Init();
495 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
496 PrintJob printJob;
497 PrintServiceAbility::GetInstance()->AddNativePrintJob(jobId, printJob);
498 }
499
TestIsQueuedJobListEmpty(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)500 void TestIsQueuedJobListEmpty(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
501 {
502 PrintServiceAbility::GetInstance()->Init();
503 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
504 PrintServiceAbility::GetInstance()->IsQueuedJobListEmpty(jobId);
505 }
506
TestSetPrintJobCanceled(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)507 void TestSetPrintJobCanceled(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
508 {
509 PrintServiceAbility::GetInstance()->Init();
510 PrintJob printJob;
511 PrintServiceAbility::GetInstance()->SetPrintJobCanceled(printJob);
512 }
513
TestCancelUserPrintJobs(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)514 void TestCancelUserPrintJobs(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
515 {
516 PrintServiceAbility::GetInstance()->Init();
517 int32_t userId = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
518 PrintServiceAbility::GetInstance()->CancelUserPrintJobs(userId);
519 }
520
TestSendExtensionEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)521 void TestSendExtensionEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
522 {
523 PrintServiceAbility::GetInstance()->Init();
524 std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
525 std::string extInfo = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
526 PrintServiceAbility::GetInstance()->SendExtensionEvent(extensionId, extInfo);
527 }
528
TestgetPrinterInfo(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)529 void TestgetPrinterInfo(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
530 {
531 PrintServiceAbility::GetInstance()->Init();
532 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
533 PrintServiceAbility::GetInstance()->getPrinterInfo(printerId);
534 }
535
TestCallStatusBar(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)536 void TestCallStatusBar(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
537 {
538 PrintServiceAbility::GetInstance()->Init();
539 PrintServiceAbility::GetInstance()->CallStatusBar();
540 }
541
TestUpdatePrintUserMap(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)542 void TestUpdatePrintUserMap(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
543 {
544 PrintServiceAbility::GetInstance()->Init();
545 PrintServiceAbility::GetInstance()->UpdatePrintUserMap();
546 }
547
TestnotifyAdapterJobChanged(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)548 void TestnotifyAdapterJobChanged(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
549 {
550 PrintServiceAbility::GetInstance()->Init();
551 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
552 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
553 uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
554 PrintServiceAbility::GetInstance()->notifyAdapterJobChanged(jobId, state, subState);
555 }
556
TestRegisterAdapterListener(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)557 void TestRegisterAdapterListener(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
558 {
559 PrintServiceAbility::GetInstance()->Init();
560 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
561 PrintServiceAbility::GetInstance()->RegisterAdapterListener(jobId);
562 }
563
TestisEprint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)564 void TestisEprint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
565 {
566 PrintServiceAbility::GetInstance()->Init();
567 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
568 PrintServiceAbility::GetInstance()->isEprint(printerId);
569 }
570
TestManualStart(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)571 void TestManualStart(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
572 {
573 PrintServiceAbility::GetInstance()->Init();
574 PrintServiceAbility::GetInstance()->ManualStart();
575 }
576
TestGetPrintJobOrderId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)577 void TestGetPrintJobOrderId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
578 {
579 PrintServiceAbility::GetInstance()->Init();
580 PrintServiceAbility::GetInstance()->GetPrintJobOrderId();
581 }
582
TestOnStop(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)583 void TestOnStop(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
584 {
585 PrintServiceAbility::GetInstance()->Init();
586 PrintServiceAbility::GetInstance()->OnStop();
587 }
588
TestWritePreferenceToFile(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)589 void TestWritePreferenceToFile(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
590 {
591 PrintServiceAbility::GetInstance()->Init();
592 PrintServiceAbility::GetInstance()->WritePreferenceToFile();
593 }
594
TestBuildPrinterPreference(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)595 void TestBuildPrinterPreference(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
596 {
597 PrintServiceAbility::GetInstance()->Init();
598 std::string option = "{\
599 \"cupsOptions\" : {\
600 \"supportedPageSizeArray\" : \"String\",\
601 \"orientation-requested-supported\" : \"String\",\
602 \"print-quality-supported\" : \"String\"\
603 }\
604 }";
605 PrinterCapability cap;
606 cap.SetOption(option);
607 PrinterPreference printPreference;
608 PrintServiceAbility::GetInstance()->BuildPrinterPreference(cap, printPreference);
609 }
610
TestBuildPrinterPreferenceByDefault(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)611 void TestBuildPrinterPreferenceByDefault(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
612 {
613 PrintServiceAbility::GetInstance()->Init();
614 std::string optJson = "{\
615 \"defaultPageSizeId\" : \"String\",\
616 \"orientation-requested-default\" : \"String\",\
617 \"sides-default\" : \"String\",\
618 \"print-quality-default\" : \"String\"\
619 }";
620 nlohmann::json capOpt = nlohmann::json::parse(optJson);
621 PreferenceSetting printerDefaultAttr;
622 PrintServiceAbility::GetInstance()->BuildPrinterPreferenceByDefault(capOpt, printerDefaultAttr);
623 }
624
TestBuildPrinterPreferenceByOption(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)625 void TestBuildPrinterPreferenceByOption(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
626 {
627 PrintServiceAbility::GetInstance()->Init();
628 std::string key = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
629 std::string supportedOpts = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
630 std::string optAttr = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
631 std::vector<std::string> optAttrs;
632 optAttrs.push_back(optAttr);
633 PrintServiceAbility::GetInstance()->BuildPrinterPreferenceByOption(key, supportedOpts, optAttrs);
634 }
635
TestBuildPrinterAttrComponentByJson(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)636 void TestBuildPrinterAttrComponentByJson(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
637 {
638 PrintServiceAbility::GetInstance()->Init();
639 std::string key = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
640 std::string arrObject = "{\
641 \"cupsOptions\" : [\
642 \"supportedPageSizeArray\", \
643 \"orientation-requested-supported\", \
644 \"print-quality-supported\"\
645 ]\
646 }";
647 nlohmann::json jsonArrObject = nlohmann::json::parse(arrObject);
648 std::string printerAttr = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
649 std::vector<std::string> printerAttrs;
650 printerAttrs.push_back(printerAttr);
651 PrintServiceAbility::GetInstance()->BuildPrinterAttrComponentByJson(key, jsonArrObject, printerAttrs);
652 }
653
TestCheckIsDefaultPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)654 void TestCheckIsDefaultPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
655 {
656 PrintServiceAbility::GetInstance()->Init();
657 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
658 PrintServiceAbility::GetInstance()->CheckIsDefaultPrinter(printerId);
659 }
660
TestCheckIsLastUsedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)661 void TestCheckIsLastUsedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
662 {
663 PrintServiceAbility::GetInstance()->Init();
664 std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
665 PrintServiceAbility::GetInstance()->CheckIsLastUsedPrinter(printerName);
666 }
667
TestSetLastUsedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)668 void TestSetLastUsedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
669 {
670 PrintServiceAbility::GetInstance()->Init();
671 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
672 PrintServiceAbility::GetInstance()->SetLastUsedPrinter(printerId);
673 }
674
TestSendPrintJobEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)675 void TestSendPrintJobEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
676 {
677 PrintServiceAbility::GetInstance()->Init();
678 PrintJob jobInfo;
679 uint32_t jobStateArr[] = {PRINT_JOB_COMPLETED, PRINT_JOB_BLOCKED, PRINT_JOB_COMPLETED};
680 for (auto jobState : jobStateArr) {
681 jobInfo.SetJobState(jobState);
682 PrintServiceAbility::GetInstance()->SendPrintJobEvent(jobInfo);
683 }
684 }
685
TestNotPublicFunction(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)686 void TestNotPublicFunction(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
687 {
688 TestUpdateQueuedJobList(data, size, dataProvider);
689 TestUpdatePrintJobOptionByPrinterId(data, size, dataProvider);
690 TestDelayStartDiscovery(data, size, dataProvider);
691 TestAdapterGetFileCallBack(data, size, dataProvider);
692 TestAddNativePrintJob(data, size, dataProvider);
693 TestIsQueuedJobListEmpty(data, size, dataProvider);
694 TestSetPrintJobCanceled(data, size, dataProvider);
695 TestCancelUserPrintJobs(data, size, dataProvider);
696 TestSendExtensionEvent(data, size, dataProvider);
697 TestgetPrinterInfo(data, size, dataProvider);
698 TestCallStatusBar(data, size, dataProvider);
699 TestUpdatePrintUserMap(data, size, dataProvider);
700 TestnotifyAdapterJobChanged(data, size, dataProvider);
701 TestRegisterAdapterListener(data, size, dataProvider);
702 TestisEprint(data, size, dataProvider);
703 TestWritePreferenceToFile(data, size, dataProvider);
704 TestBuildPrinterPreferenceByOption(data, size, dataProvider);
705 TestBuildPrinterPreference(data, size, dataProvider);
706 TestBuildPrinterPreferenceByDefault(data, size, dataProvider);
707 TestBuildPrinterPreferenceByOption(data, size, dataProvider);
708 TestBuildPrinterAttrComponentByJson(data, size, dataProvider);
709 TestCheckIsDefaultPrinter(data, size, dataProvider);
710 TestCheckIsLastUsedPrinter(data, size, dataProvider);
711 TestSetLastUsedPrinter(data, size, dataProvider);
712 TestSendPrintJobEvent(data, size, dataProvider);
713 }
714
715 } // namespace Print
716 } // namespace OHOS
717
718 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)719 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
720 {
721 /* Run your code on data */
722 if (data == nullptr) {
723 return 0;
724 }
725
726 if (size < OHOS::Print::U32_AT_SIZE) {
727 }
728
729 FuzzedDataProvider dataProvider(data, size);
730 OHOS::Print::TestStartService(data, size, &dataProvider);
731 OHOS::Print::TestStartPrint(data, size, &dataProvider);
732 OHOS::Print::TestStopPrint(data, size, &dataProvider);
733 OHOS::Print::TestConnectPrinter(data, size, &dataProvider);
734 OHOS::Print::TestDisconnectPrinter(data, size, &dataProvider);
735 OHOS::Print::TestStartDiscoverPrinter(data, size, &dataProvider);
736 OHOS::Print::TestStopDiscoverPrinter(data, size, &dataProvider);
737 // OHOS::Print::TestQueryAllExtension(data, size, &dataProvider);
738 OHOS::Print::TestStartPrintJob(data, size, &dataProvider);
739 OHOS::Print::TestCancelPrintJob(data, size, &dataProvider);
740 OHOS::Print::TestAddPrinters(data, size, &dataProvider);
741 OHOS::Print::TestRemovePrinters(data, size, &dataProvider);
742 OHOS::Print::TestUpdatePrinters(data, size, &dataProvider);
743 OHOS::Print::TestUpdatePrinterState(data, size, &dataProvider);
744 OHOS::Print::TestUpdatePrintJobStateOnlyForSystemApp(data, size, &dataProvider);
745 OHOS::Print::TestUpdateExtensionInfo(data, size, &dataProvider);
746 OHOS::Print::TestRequestPreview(data, size, &dataProvider);
747 OHOS::Print::TestQueryPrinterCapability(data, size, &dataProvider);
748 OHOS::Print::TestOn(data, size, &dataProvider);
749 OHOS::Print::TestOff(data, size, &dataProvider);
750 OHOS::Print::TestRegisterPrinterCallback(data, size, &dataProvider);
751 OHOS::Print::TestUnregisterPrinterCallback(data, size, &dataProvider);
752 OHOS::Print::TestRegisterExtCallback(data, size, &dataProvider);
753 OHOS::Print::TestUnregisterAllExtCallback(data, size, &dataProvider);
754 OHOS::Print::TestLoadExtSuccess(data, size, &dataProvider);
755 OHOS::Print::TestQueryAllPrintJob(data, size, &dataProvider);
756 OHOS::Print::TestQueryPrintJobById(data, size, &dataProvider);
757 OHOS::Print::TestAddPrinterToCups(data, size, &dataProvider);
758 OHOS::Print::TestQueryPrinterCapabilityByUri(data, size, &dataProvider);
759 OHOS::Print::TestSetHelper(data, size, &dataProvider);
760 OHOS::Print::TestPrintByAdapter(data, size, &dataProvider);
761 OHOS::Print::TestStartGetPrintFile(data, size, &dataProvider);
762 OHOS::Print::TestNotifyPrintService(data, size, &dataProvider);
763 OHOS::Print::TestQueryPrinterInfoByPrinterId(data, size, &dataProvider);
764 OHOS::Print::TestQueryAddedPrinter(data, size, &dataProvider);
765 OHOS::Print::TestQueryPrinterProperties(data, size, &dataProvider);
766 OHOS::Print::TestUpdatePrintJobState(data, size, &dataProvider);
767 OHOS::Print::TestGetPrinterPreference(data, size, &dataProvider);
768 OHOS::Print::TestSetPrinterPreference(data, size, &dataProvider);
769 OHOS::Print::TestSetDefaultPrinter(data, size, &dataProvider);
770 OHOS::Print::TestDeletePrinterFromCups(data, size, &dataProvider);
771 OHOS::Print::TestNotPublicFunction(data, size, &dataProvider);
772 return 0;
773 }
774