• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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