• 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 #include "print_callback.h"
25 #include "iprint_adapter_inner.h"
26 
27 namespace OHOS {
28 namespace Print {
29 constexpr uint8_t MAX_STRING_LENGTH = 20;
30 constexpr int MAX_SET_NUMBER = 128;
31 constexpr size_t U32_AT_SIZE = 4;
32 static constexpr const char *JOB_OPTIONS =
33     "{\"jobName\":\"xx\",\"jobNum\":1,\"mediaType\":\"stationery\",\"documentCategory\":0,\"printQuality\":\"4\","
34     "\"printerName\":\"testId\",\"printerUri\":\"ipp://192.168.0.1:111/ipp/print\","
35     "\"documentFormat\":\"application/pdf\",\"files\":[\"/data/1.pdf\"]}";
36 static const std::string DEFAULT_PRINTERID = "testId";
37 
TestStartPrint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)38 void TestStartPrint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
39 {
40     PrintServiceAbility::GetInstance()->OnStart();
41     PrintServiceAbility::GetInstance()->ManualStart();
42     auto printer = std::make_shared<PrinterInfo>();
43     PrintServiceAbility::GetInstance()->printSystemData_.addedPrinterMap_.Insert(DEFAULT_PRINTERID, printer);
44     PrintServiceAbility::GetInstance()->StartService();
45     std::string fileUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
46     std::vector<std::string> fileList;
47     fileList.push_back(fileUri);
48     uint32_t fd = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
49     std::vector<uint32_t> fdList;
50     fdList.push_back(fd);
51     std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
52     PrintServiceAbility::GetInstance()->StartPrint(fileList, fdList, taskId);
53     PrintServiceAbility::GetInstance()->OnStop();
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     std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
59     PrintServiceAbility::GetInstance()->StopPrint(taskId);
60 }
61 
TestConnectPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)62 void TestConnectPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
63 {
64     std::string printerId = size ? dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH) : DEFAULT_PRINTERID;
65     PrinterInfo printerInfo;
66     printerInfo.SetPrinterId(printerId);
67     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
68     printerInfo.SetOption(JOB_OPTIONS);
69     std::vector <PrinterInfo> printerInfos;
70     printerInfos.push_back(printerInfo);
71     PrintServiceAbility::GetInstance()->AddPrinters(printerInfos);
72     PrintServiceAbility::GetInstance()->ConnectPrinter(printerId);
73     PrintServiceAbility::GetInstance()->DisconnectPrinter(printerId);
74 }
75 
TestDisconnectPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)76 void TestDisconnectPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
77 {
78     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
79     PrintServiceAbility::GetInstance()->DisconnectPrinter(printerId);
80     auto printerInfo = std::make_shared<PrinterInfo>();
81     printerInfo->SetPrinterId(printerId);
82     // anyway add printer to discovery list.
83     PrintServiceAbility::GetInstance()->
84         printSystemData_.discoveredPrinterInfoList_[printerInfo->GetPrinterId()] = printerInfo;
85     PrintServiceAbility::GetInstance()->DisconnectPrinter(printerId);
86 }
87 
TestStartDiscoverPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)88 void TestStartDiscoverPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
89 {
90     std::vector <PrintExtensionInfo> printExtensionInfos;
91     PrintServiceAbility::GetInstance()->QueryAllExtension(printExtensionInfos);
92     std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
93     std::vector <std::string> extensionIds;
94     extensionIds.push_back(extensionId);
95     for (auto &printExtensionInfo: printExtensionInfos) {
96         extensionIds.push_back(printExtensionInfo.GetExtensionId());
97     }
98     PrintServiceAbility::GetInstance()->StartDiscoverPrinter(extensionIds);
99     PrintServiceAbility::GetInstance()->StopDiscoverPrinter();
100 }
101 
TestQueryAllExtension(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)102 void TestQueryAllExtension(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
103 {
104     PrintExtensionInfo printExtensionInfo;
105     printExtensionInfo.SetExtensionId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
106     std::vector<PrintExtensionInfo> printExtensionInfos;
107     printExtensionInfos.push_back(printExtensionInfo);
108     PrintServiceAbility::GetInstance()->QueryAllExtension(printExtensionInfos);
109 }
110 
TestStartPrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)111 void TestStartPrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
112 {
113     PrinterInfo printerInfo;
114     printerInfo.SetPrinterId(DEFAULT_PRINTERID);
115     printerInfo.SetPrinterName(DEFAULT_PRINTERID);
116     std::vector <PrinterInfo> printerInfos;
117     PrinterCapability printerCaps;
118     printerCaps.SetColorMode(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
119     printerInfos.push_back(printerInfo);
120 
121     PrintServiceAbility::GetInstance()->AddPrinters(printerInfos);
122     PrintServiceAbility::GetInstance()->UpdatePrinters(printerInfos);
123 
124     PrintJob testJob;
125     testJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
126     std::vector <uint32_t> files = {1};
127     testJob.SetFdList(files);
128     OHOS::Print::PrintPageSize pageSize;
129     pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
130     testJob.SetPageSize(pageSize);
131     testJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
132     testJob.SetOption(JOB_OPTIONS);
133     PrintServiceAbility::GetInstance()->StartPrintJob(testJob);
134     PrintServiceAbility::GetInstance()->GetCallerUserName();
135 }
136 
TestCancelPrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)137 void TestCancelPrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
138 {
139     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
140     PrintServiceAbility::GetInstance()->CancelPrintJob(jobId);
141 }
142 
TestAddPrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)143 void TestAddPrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
144 {
145     PrinterInfo printerInfo;
146     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
147     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
148     printerInfo.SetOption(JOB_OPTIONS);
149     std::vector<PrinterInfo> printerInfos;
150     printerInfos.push_back(printerInfo);
151     PrintServiceAbility::GetInstance()->AddPrinters(printerInfos);
152 }
153 
TestRemovePrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)154 void TestRemovePrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
155 {
156     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
157     std::vector<std::string> printerIds;
158     printerIds.push_back(printerId);
159     PrintServiceAbility::GetInstance()->RemovePrinters(printerIds);
160 }
161 
TestUpdatePrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)162 void TestUpdatePrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
163 {
164     PrinterInfo printerInfo;
165     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
166     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
167     printerInfo.SetOption(JOB_OPTIONS);
168     std::vector<PrinterInfo> printerInfos;
169     printerInfos.push_back(printerInfo);
170     PrintServiceAbility::GetInstance()->UpdatePrinters(printerInfos);
171     return;
172 }
173 
TestUpdatePrinterState(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)174 void TestUpdatePrinterState(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
175 {
176     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
177     uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
178     PrintServiceAbility::GetInstance()->UpdatePrinterState(printerId, state);
179 }
180 
TestUpdatePrintJobStateOnlyForSystemApp(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)181 void TestUpdatePrintJobStateOnlyForSystemApp(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
182 {
183     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
184     uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
185     uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
186     PrintServiceAbility::GetInstance()->UpdatePrintJobStateOnlyForSystemApp(jobId, state, subState);
187 }
188 
TestUpdateExtensionInfo(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)189 void TestUpdateExtensionInfo(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
190 {
191     std::string extInfo = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
192     PrintServiceAbility::GetInstance()->UpdateExtensionInfo(extInfo);
193 }
194 
TestRequestPreview(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)195 void TestRequestPreview(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
196 {
197     PrintJob printJob;
198     printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
199     std::vector<uint32_t> files = {1};
200     printJob.SetFdList(files);
201     OHOS::Print::PrintPageSize pageSize;
202     pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
203     printJob.SetPageSize(pageSize);
204     printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
205     printJob.SetOption(JOB_OPTIONS);
206     std::string previewResult = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
207     PrintServiceAbility::GetInstance()->RequestPreview(printJob, previewResult);
208 }
209 
TestQueryPrinterCapability(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)210 void TestQueryPrinterCapability(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
211 {
212     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
213     PrintServiceAbility::GetInstance()->QueryPrinterCapability(printerId);
214 }
215 
TestOn(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)216 void TestOn(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
217 {
218     PrintDocumentAdapter *printerAdapterPtr = new PrintDocumentAdapter();
219     sptr <PrintCallback> callback = new(std::nothrow) PrintCallback(printerAdapterPtr);
220     if (callback != nullptr) {
221         std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
222         std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
223         PrintServiceAbility::GetInstance()->On(taskId, type, callback);
224     } else {
225         delete printerAdapterPtr;
226         printerAdapterPtr = nullptr;
227     }
228 }
229 
TestOff(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)230 void TestOff(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
231 {
232     std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
233     std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
234     PrintServiceAbility::GetInstance()->Off(taskId, type);
235 }
236 
TestCallback(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)237 void TestCallback(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
238 {
239     PrintDocumentAdapter *printerAdapterPtr = new PrintDocumentAdapter();
240     sptr <PrintCallback> callback = new(std::nothrow) PrintCallback(printerAdapterPtr);
241     if (callback != nullptr) {
242         std::string type = PRINTER_DISCOVER_EVENT_TYPE;
243         PrintServiceAbility::GetInstance()->RegisterPrinterCallback(type, callback);
244         PrintServiceAbility::GetInstance()->UnregisterPrinterCallback(type);
245     } else {
246         delete printerAdapterPtr;
247         printerAdapterPtr = nullptr;
248     }
249     std::vector <PrintExtensionInfo> printExtensionInfos;
250     PrintServiceAbility::GetInstance()->QueryAllExtension(printExtensionInfos);
251     std::vector <std::string> extensionIds;
252     for (auto &printExtensionInfo: printExtensionInfos) {
253         extensionIds.push_back(printExtensionInfo.GetExtensionId());
254     }
255     PrintServiceAbility::GetInstance()->StartDiscoverPrinter(extensionIds);
256 
257     for (auto &printExtensionInfo: printExtensionInfos) {
258         PrintServiceAbility::GetInstance()->RegisterExtCallback(printExtensionInfo.GetExtensionId(), nullptr);
259         PrintServiceAbility::GetInstance()->UnregisterAllExtCallback(printExtensionInfo.GetExtensionId());
260     }
261 
262     std::string extensionCID = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
263     PrintServiceAbility::GetInstance()->RegisterExtCallback(extensionCID, nullptr);
264     PrintServiceAbility::GetInstance()->UnregisterAllExtCallback(extensionCID);
265 }
266 
TestLoadExtSuccess(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)267 void TestLoadExtSuccess(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
268 {
269     std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
270     PrintServiceAbility::GetInstance()->LoadExtSuccess(extensionId);
271 }
272 
TestQueryAllActivePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)273 void TestQueryAllActivePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
274 {
275     PrintJob printJob;
276     printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
277     std::vector<uint32_t> files = {0};
278     printJob.SetFdList(files);
279     OHOS::Print::PrintPageSize pageSize;
280     pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
281     printJob.SetPageSize(pageSize);
282     printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
283     std::vector<PrintJob> printJobs;
284     printJobs.push_back(printJob);
285     PrintServiceAbility::GetInstance()->QueryAllActivePrintJob(printJobs);
286 }
287 
TestQueryPrintJobById(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)288 void TestQueryPrintJobById(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
289 {
290     PrintJob printJob;
291     printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
292     std::vector<uint32_t> files = {0};
293     printJob.SetFdList(files);
294     OHOS::Print::PrintPageSize pageSize;
295     pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
296     printJob.SetPageSize(pageSize);
297     printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
298     std::string printJobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
299     PrintServiceAbility::GetInstance()->QueryPrintJobById(printJobId, printJob);
300 }
301 
TestAddPrinterToCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)302 void TestAddPrinterToCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
303 {
304     std::string printerUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
305     std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
306     std::string printerMake = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
307     PrintServiceAbility::GetInstance()->AddPrinterToCups(printerUri, printerName, printerMake);
308 }
309 
TestQueryPrinterCapabilityByUri(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)310 void TestQueryPrinterCapabilityByUri(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
311 {
312     std::string printerUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
313     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
314     PrinterCapability printerCaps;
315     PrintServiceAbility::GetInstance()->SetHelper(nullptr);
316     PrintServiceAbility::GetInstance()->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps);
317 }
318 
TestPrintByAdapter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)319 void TestPrintByAdapter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
320 {
321     std::string jobName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
322     PrintAttributes printAttributes;
323     std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
324     PrintServiceAbility::GetInstance()->PrintByAdapter(jobName, printAttributes, taskId);
325 }
326 
TestStartGetPrintFile(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)327 void TestStartGetPrintFile(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
328 {
329     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
330     PrintAttributes printAttributes;
331     uint32_t fd = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
332     PrintServiceAbility::GetInstance()->StartGetPrintFile(jobId, printAttributes, fd);
333 }
334 
TestQueryPrinterInfoByPrinterId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)335 void TestQueryPrinterInfoByPrinterId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
336 {
337     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
338     PrinterInfo printerInfo;
339     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
340     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
341     printerInfo.SetOption(JOB_OPTIONS);
342     PrintServiceAbility::GetInstance()->QueryPrinterInfoByPrinterId(printerId, printerInfo);
343 }
344 
TestNotifyPrintService(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)345 void TestNotifyPrintService(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
346 {
347     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
348     std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
349     PrintServiceAbility::GetInstance()->NotifyPrintService(jobId, type);
350 }
351 
TestQueryAddedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)352 void TestQueryAddedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
353 {
354     std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
355     std::vector<std::string> printerNameList;
356     printerNameList.push_back(printerName);
357     PrintServiceAbility::GetInstance()->QueryAddedPrinter(printerNameList);
358 }
359 
TestQueryPrinterProperties(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)360 void TestQueryPrinterProperties(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
361 {
362     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
363     std::string key = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
364     std::vector<std::string> keyList;
365     keyList.push_back(key);
366     std::string value = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
367     std::vector<std::string> valueList;
368     valueList.push_back(value);
369     PrintServiceAbility::GetInstance()->QueryPrinterProperties(printerId, keyList, valueList);
370 }
371 
TestUpdatePrintJobState(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)372 void TestUpdatePrintJobState(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
373 {
374     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
375     uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
376     uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
377     PrintServiceAbility::GetInstance()->UpdatePrintJobState(jobId, state, subState);
378 }
379 
TestSetPrinterPreference(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)380 void TestSetPrinterPreference(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
381 {
382     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
383     PrinterPreferences printerPreference;
384     PrintServiceAbility::GetInstance()->SetPrinterPreference(printerId, printerPreference);
385 }
386 
TestSetDefaultPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)387 void TestSetDefaultPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
388 {
389     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
390     uint32_t type = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
391     PrintServiceAbility::GetInstance()->SetDefaultPrinter(printerId, type);
392 }
393 
TestDeletePrinterFromCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)394 void TestDeletePrinterFromCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
395 {
396     std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
397     PrintServiceAbility::GetInstance()->DeletePrinterFromCups(printerName);
398 }
399 
TestDiscoverUsbPrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)400 void TestDiscoverUsbPrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
401 {
402     PrinterInfo printerInfo;
403     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
404     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
405     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
406     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
407     std::vector<PrinterInfo> printers;
408     printers.push_back(printerInfo);
409     PrintServiceAbility::GetInstance()->DiscoverUsbPrinters(printers);
410 }
411 
TestStartNativePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)412 void TestStartNativePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
413 {
414     PrintJob testJob;
415     testJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
416     std::vector<uint32_t> files = {1};
417     testJob.SetFdList(files);
418     OHOS::Print::PrintPageSize pageSize;
419     pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
420     testJob.SetPageSize(pageSize);
421     testJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
422     testJob.SetOption(JOB_OPTIONS);
423     PrintServiceAbility::GetInstance()->StartNativePrintJob(testJob);
424 }
425 
TestNotifyPrintServiceEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)426 void TestNotifyPrintServiceEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
427 {
428     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
429     uint32_t event = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
430     PrintServiceAbility::GetInstance()->NotifyPrintServiceEvent(jobId, event);
431 }
432 
433 // below are private test
TestUpdateQueuedJobList(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)434 void TestUpdateQueuedJobList(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
435 {
436     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
437     std::string printJobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
438     auto printJob = std::make_shared<PrintJob>();
439     printJob->SetJobId(printJobId);
440     printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
441     PrintServiceAbility::GetInstance()->UpdateQueuedJobList(printJobId, printJob);
442 }
443 
TestUpdatePrintJobOptionByPrinterId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)444 void TestUpdatePrintJobOptionByPrinterId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
445 {
446     PrintJob printJob;
447     printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
448     std::vector<uint32_t> files = {0};
449     printJob.SetFdList(files);
450     OHOS::Print::PrintPageSize pageSize;
451     pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
452     printJob.SetPageSize(pageSize);
453     printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
454     PrintServiceAbility::GetInstance()->UpdatePrintJobOptionByPrinterId(printJob);
455 }
456 
TestDelayStartDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)457 void TestDelayStartDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
458 {
459     std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
460     PrintServiceAbility::GetInstance()->DelayStartDiscovery(extensionId);
461 }
462 
TestAdapterGetFileCallBack(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)463 void TestAdapterGetFileCallBack(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
464 {
465     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
466     uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
467     uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
468     PrintServiceAbility::GetInstance()->AdapterGetFileCallBack(jobId, state, subState);
469 }
470 
TestAddNativePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)471 void TestAddNativePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
472 {
473     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
474     PrintJob printJob;
475     PrintServiceAbility::GetInstance()->AddNativePrintJob(jobId, printJob);
476 }
477 
TestIsQueuedJobListEmpty(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)478 void TestIsQueuedJobListEmpty(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
479 {
480     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
481     PrintServiceAbility::GetInstance()->IsQueuedJobListEmpty(jobId);
482 }
483 
TestSetPrintJobCanceled(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)484 void TestSetPrintJobCanceled(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
485 {
486     PrintJob printJob;
487     std::string printerid = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
488     printJob.SetPrinterId(printerid);
489     PrintServiceAbility::GetInstance()->SetPrintJobCanceled(printJob);
490 }
491 
TestCancelUserPrintJobs(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)492 void TestCancelUserPrintJobs(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
493 {
494     int32_t userId = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
495     PrintServiceAbility::GetInstance()->CancelUserPrintJobs(userId);
496     PrintServiceAbility::GetInstance()->CallStatusBar();
497     AAFwk::Want want;
498     want.SetElementName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH),
499         dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
500     PrintServiceAbility::GetInstance()->StartPluginPrintIconExtAbility(want);
501 }
502 
TestSendExtensionEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)503 void TestSendExtensionEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
504 {
505     std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
506     std::string extInfo = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
507     PrintServiceAbility::GetInstance()->SendExtensionEvent(extensionId, extInfo);
508     PrintServiceAbility::GetInstance()->UpdatePrintUserMap();
509 }
510 
TestNotifyAdapterJobChanged(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)511 void TestNotifyAdapterJobChanged(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
512 {
513     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
514     uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
515     uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
516     PrintServiceAbility::GetInstance()->notifyAdapterJobChanged(jobId, state, subState);
517 }
518 
TestRegisterAdapterListener(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)519 void TestRegisterAdapterListener(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
520 {
521     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
522     PrintServiceAbility::GetInstance()->RegisterAdapterListener(jobId);
523 }
524 
TestisEprint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)525 void TestisEprint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
526 {
527     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
528     PrintServiceAbility::GetInstance()->isEprint(printerId);
529     PrintServiceAbility::GetInstance()->GetPrintJobOrderId();
530 }
531 
TestCheckIsDefaultPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)532 void TestCheckIsDefaultPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
533 {
534     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
535     PrintServiceAbility::GetInstance()->CheckIsDefaultPrinter(printerId);
536 }
537 
TestCheckIsLastUsedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)538 void TestCheckIsLastUsedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
539 {
540     std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
541     PrintServiceAbility::GetInstance()->CheckIsLastUsedPrinter(printerName);
542 }
543 
TestSetLastUsedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)544 void TestSetLastUsedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
545 {
546     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
547     PrintServiceAbility::GetInstance()->SetLastUsedPrinter(printerId);
548 }
549 
TestSendPrintJobEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)550 void TestSendPrintJobEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
551 {
552     PrintJob jobInfo;
553     uint32_t jobStateArr[] = {PRINT_JOB_COMPLETED, PRINT_JOB_BLOCKED, PRINT_JOB_COMPLETED};
554     for (auto jobState : jobStateArr) {
555         jobInfo.SetJobState(jobState);
556         PrintServiceAbility::GetInstance()->SendPrintJobEvent(jobInfo);
557     }
558     uint32_t jobState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
559     jobInfo.SetJobState(jobState);
560     PrintServiceAbility::GetInstance()->SendPrintJobEvent(jobInfo);
561 }
562 
TestStartPrintJobCB(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)563 void TestStartPrintJobCB(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
564 {
565     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
566     auto printJob = std::make_shared<PrintJob>();
567     printJob->SetJobId(jobId);
568     printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
569     PrintServiceAbility::GetInstance()->StartPrintJobCB(jobId, printJob);
570 }
571 
TestCheckPrinterUriDifferent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)572 void TestCheckPrinterUriDifferent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
573 {
574     auto printerInfo = std::make_shared<PrinterInfo>();
575     printerInfo->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
576     printerInfo->SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
577     printerInfo->SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
578     printerInfo->SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
579     PrintServiceAbility::GetInstance()->CheckPrinterUriDifferent(printerInfo);
580 }
581 
TestUpdatePrinterCapability(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)582 void TestUpdatePrinterCapability(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
583 {
584     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
585     PrinterInfo printerInfo;
586     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
587     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
588     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
589     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
590     PrintServiceAbility::GetInstance()->UpdatePrinterCapability(printerId, printerInfo);
591 }
592 
TestReportCompletedPrint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)593 void TestReportCompletedPrint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
594 {
595     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
596     PrintServiceAbility::GetInstance()->ReportCompletedPrint(printerId);
597 }
598 
TestNotifyAppJobQueueChanged(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)599 void TestNotifyAppJobQueueChanged(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
600 {
601     std::string applyResult = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
602     PrintServiceAbility::GetInstance()->NotifyAppJobQueueChanged(applyResult);
603 }
604 
TestSendPrinterChangeEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)605 void TestSendPrinterChangeEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
606 {
607     int event = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
608     PrinterInfo printerInfo;
609     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
610     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
611     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
612     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
613     PrintServiceAbility::GetInstance()->SendPrinterChangeEvent(event, printerInfo);
614     PrintServiceAbility::GetInstance()->DestroyExtension();
615 }
616 
TestCheckJobQueueBlocked(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)617 void TestCheckJobQueueBlocked(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
618 {
619     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
620     PrintJob printJob;
621     printJob.SetJobId(jobId);
622     printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
623     PrintServiceAbility::GetInstance()->CheckJobQueueBlocked(printJob);
624 }
625 
TestGetListeningState(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)626 void TestGetListeningState(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
627 {
628     uint32_t subState = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
629     PrintServiceAbility::GetInstance()->GetListeningState(subState);
630 }
631 
TestChangeDefaultPrinterForDelete(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)632 void TestChangeDefaultPrinterForDelete(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
633 {
634     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
635     auto userData = std::make_shared<PrintUserData>();
636     PrintServiceAbility::GetInstance()->ChangeDefaultPrinterForDelete(userData, printerId);
637 }
638 
TestGetUserDataByUserId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)639 void TestGetUserDataByUserId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
640 {
641     int32_t userId = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
642     PrintServiceAbility::GetInstance()->GetUserDataByUserId(userId);
643 }
644 
TestDetermineUserJobStatus(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)645 void TestDetermineUserJobStatus(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
646 {
647     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
648     auto printJob = std::make_shared<PrintJob>();
649     printJob->SetJobId(jobId);
650     printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
651     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
652     std::map<std::string, std::shared_ptr<PrintJob>> jobList;
653     jobList[jobId] = printJob;
654     PrintServiceAbility::GetInstance()->DetermineUserJobStatus(jobList);
655 }
656 
TestNotifyCurrentUserChanged(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)657 void TestNotifyCurrentUserChanged(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
658 {
659     int32_t userId = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
660     PrintServiceAbility::GetInstance()->NotifyCurrentUserChanged(userId);
661 }
662 
TestHandleExtensionConnectPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)663 void TestHandleExtensionConnectPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
664 {
665     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
666     PrintServiceAbility::GetInstance()->HandleExtensionConnectPrinter(printerId);
667 }
668 
TestSendQueuePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)669 void TestSendQueuePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
670 {
671     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
672     PrintServiceAbility::GetInstance()->SendQueuePrintJob(printerId);
673 }
674 
TestAddPrinterToDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)675 void TestAddPrinterToDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
676 {
677     PrinterInfo printerInfo;
678     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
679     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
680     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
681     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
682     PrintServiceAbility::GetInstance()->AddPrinterToDiscovery(printerInfo);
683 }
684 
TestUpdatePrinterInDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)685 void TestUpdatePrinterInDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
686 {
687     PrinterInfo printerInfo;
688     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
689     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
690     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
691     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
692     PrintServiceAbility::GetInstance()->UpdatePrinterInDiscovery(printerInfo);
693 }
694 
TestRemovePrinterFromDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)695 void TestRemovePrinterFromDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
696 {
697     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
698     PrintServiceAbility::GetInstance()->RemovePrinterFromDiscovery(printerId);
699 }
700 
TestUpdatePrinterInSystem(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)701 void TestUpdatePrinterInSystem(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
702 {
703     PrinterInfo printerInfo;
704     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
705     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
706     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
707     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
708     PrintServiceAbility::GetInstance()->UpdatePrinterInSystem(printerInfo);
709 }
710 
TestDeletePrinterFromUserData(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)711 void TestDeletePrinterFromUserData(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
712 {
713     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
714     PrintServiceAbility::GetInstance()->DeletePrinterFromUserData(printerId);
715 }
716 
TestNotifyAppDeletePrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)717 void TestNotifyAppDeletePrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
718 {
719     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
720     PrintServiceAbility::GetInstance()->NotifyAppDeletePrinter(printerId);
721 }
722 
TestAddVendorPrinterToDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)723 void TestAddVendorPrinterToDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
724 {
725     std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
726     PrinterInfo printerInfo;
727     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
728     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
729     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
730     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
731     PrintServiceAbility::GetInstance()->AddVendorPrinterToDiscovery(globalVendorName, printerInfo);
732 }
733 
TestUpdateVendorPrinterToDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)734 void TestUpdateVendorPrinterToDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
735 {
736     std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
737     PrinterInfo printerInfo;
738     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
739     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
740     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
741     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
742     PrintServiceAbility::GetInstance()->UpdateVendorPrinterToDiscovery(globalVendorName, printerInfo);
743 }
744 
TestRemoveVendorPrinterFromDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)745 void TestRemoveVendorPrinterFromDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
746 {
747     std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
748     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
749     PrintServiceAbility::GetInstance()->RemoveVendorPrinterFromDiscovery(globalVendorName, printerId);
750 }
751 
TestAddVendorPrinterToCupsWithPpd(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)752 void TestAddVendorPrinterToCupsWithPpd(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
753 {
754     std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
755     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
756     std::string ppdName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
757     std::string ppdData = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
758     PrintServiceAbility::GetInstance()->AddVendorPrinterToCupsWithPpd(globalVendorName, printerId, ppdName, ppdData);
759 }
760 
TestRemoveVendorPrinterFromCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)761 void TestRemoveVendorPrinterFromCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
762 {
763     std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
764     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
765     PrintServiceAbility::GetInstance()->RemoveVendorPrinterFromCups(globalVendorName, printerId);
766 }
767 
TestOnVendorStatusUpdate(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)768 void TestOnVendorStatusUpdate(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
769 {
770     std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
771     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
772     PrinterVendorStatus printerVendorStatus;
773     PrintServiceAbility::GetInstance()->OnVendorStatusUpdate(globalVendorName, printerId, printerVendorStatus);
774 }
775 
TestQueryVendorPrinterInfo(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)776 void TestQueryVendorPrinterInfo(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
777 {
778     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
779     PrinterInfo printerInfo;
780     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
781     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
782     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
783     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
784     PrintServiceAbility::GetInstance()->QueryVendorPrinterInfo(printerId, printerInfo);
785 }
786 
TestHandlePrinterStateChangeRegister(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)787 void TestHandlePrinterStateChangeRegister(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
788 {
789     std::string eventType = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
790     PrintServiceAbility::GetInstance()->HandlePrinterStateChangeRegister(eventType);
791 }
792 
TestHandlePrinterChangeRegister(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)793 void TestHandlePrinterChangeRegister(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
794 {
795     std::string eventType = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
796     PrintServiceAbility::GetInstance()->HandlePrinterChangeRegister(eventType);
797 }
798 
TestUpdateAddedPrinterInCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)799 void TestUpdateAddedPrinterInCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
800 {
801     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
802     std::string printerUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
803     PrintServiceAbility::GetInstance()->UpdateAddedPrinterInCups(printerId, printerUri);
804 }
805 
TestRenamePrinterWhenAdded(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)806 void TestRenamePrinterWhenAdded(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
807 {
808     PrinterInfo printerInfo;
809     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
810     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
811     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
812     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
813     PrintServiceAbility::GetInstance()->RenamePrinterWhenAdded(printerInfo);
814 }
815 
TestQueryDiscoveredPrinterInfoById(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)816 void TestQueryDiscoveredPrinterInfoById(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
817 {
818     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
819     PrintServiceAbility::GetInstance()->QueryDiscoveredPrinterInfoById(printerId);
820 }
821 
TestCheckUserIdInEventType(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)822 void TestCheckUserIdInEventType(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
823 {
824     std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
825     PrintServiceAbility::GetInstance()->CheckUserIdInEventType(type);
826 }
827 
TestCallSpooler(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)828 void TestCallSpooler(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
829 {
830     std::vector<std::string> fileList = { dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH) };
831     std::vector<uint32_t> fdList = { dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER) };
832     std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
833     PrintServiceAbility::GetInstance()->CallSpooler(fileList, fdList, taskId);
834 }
835 
TestReportPrinterIdle(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)836 void TestReportPrinterIdle(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
837 {
838     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
839     PrintServiceAbility::GetInstance()->ReportPrinterIdle(printerId);
840 }
841 
TestQueryPPDInformation(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)842 void TestQueryPPDInformation(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
843 {
844     std::string makeModel = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
845     std::string ppd = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
846     PrintServiceAbility::GetInstance()->QueryPPDInformation(makeModel, ppd);
847 }
848 
TestAddIpPrinterToSystemData(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)849 void TestAddIpPrinterToSystemData(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
850 {
851     std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
852     PrinterInfo printerInfo;
853     printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
854     printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
855     printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
856     printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
857     PrintServiceAbility::GetInstance()->AddIpPrinterToSystemData(globalVendorName, printerInfo);
858 }
859 
TestAddIpPrinterToCupsWithPpd(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)860 void TestAddIpPrinterToCupsWithPpd(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
861 {
862     std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
863     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
864     std::string ppdName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
865     std::string ppdData = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
866     PrintServiceAbility::GetInstance()->AddIpPrinterToCupsWithPpd(globalVendorName, printerId, ppdName, ppdData);
867 }
868 
TestStartPrintJobInternal(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)869 void TestStartPrintJobInternal(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
870 {
871     std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
872     auto printJob = std::make_shared<PrintJob>();
873     printJob->SetJobId(jobId);
874     printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
875     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
876     PrintServiceAbility::GetInstance()->StartPrintJobInternal(printJob);
877 }
878 
TestUpdatePageSizeNameWithPrinterInfo(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)879 void TestUpdatePageSizeNameWithPrinterInfo(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
880 {
881     std::string pageSizeId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
882     PrintPageSize pageSize;
883     pageSize.SetId(pageSizeId);
884     PrinterInfo printerInfo;
885     PrintServiceAbility::GetInstance()->UpdatePageSizeNameWithPrinterInfo(printerInfo, pageSize);
886 }
887 
TestUpdatePrintJobOptionWithPrinterPreferences(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)888 void TestUpdatePrintJobOptionWithPrinterPreferences(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
889 {
890     std::string key = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
891     std::string value = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
892     Json::Value jobOptions;
893     jobOptions[key] = value;
894     PrinterInfo printerInfo;
895     PrintServiceAbility::GetInstance()->UpdatePrintJobOptionWithPrinterPreferences(jobOptions, printerInfo);
896 }
897 
TestConnectUsbPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)898 void TestConnectUsbPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
899 {
900     std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
901     PrintServiceAbility::GetInstance()->ConnectUsbPrinter(printerId);
902 }
903 
TestNoParmFuncs(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)904 void TestNoParmFuncs(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
905 {
906     std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
907     PrintServiceAbility::GetInstance()->StopPrint(taskId);
908     PrintServiceAbility::GetInstance()->DelayEnterLowPowerMode();
909     PrintServiceAbility::GetInstance()->ExitLowPowerMode();
910     PrintServiceAbility::GetInstance()->UnloadSystemAbility();
911 }
912 
TestMoreFunction(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)913 void TestMoreFunction(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
914 {
915     TestChangeDefaultPrinterForDelete(data, size, dataProvider);
916     TestGetUserDataByUserId(data, size, dataProvider);
917     TestDetermineUserJobStatus(data, size, dataProvider);
918     TestNotifyCurrentUserChanged(data, size, dataProvider);
919     TestHandleExtensionConnectPrinter(data, size, dataProvider);
920     TestSendQueuePrintJob(data, size, dataProvider);
921     TestAddPrinterToDiscovery(data, size, dataProvider);
922     TestUpdatePrinterInDiscovery(data, size, dataProvider);
923     TestRemovePrinterFromDiscovery(data, size, dataProvider);
924     TestUpdatePrinterInSystem(data, size, dataProvider);
925     TestDeletePrinterFromUserData(data, size, dataProvider);
926     TestNotifyAppDeletePrinter(data, size, dataProvider);
927     TestAddVendorPrinterToDiscovery(data, size, dataProvider);
928     TestUpdateVendorPrinterToDiscovery(data, size, dataProvider);
929     TestRemoveVendorPrinterFromDiscovery(data, size, dataProvider);
930     TestAddVendorPrinterToCupsWithPpd(data, size, dataProvider);
931     TestRemoveVendorPrinterFromCups(data, size, dataProvider);
932     TestOnVendorStatusUpdate(data, size, dataProvider);
933     TestQueryVendorPrinterInfo(data, size, dataProvider);
934     TestHandlePrinterStateChangeRegister(data, size, dataProvider);
935     TestHandlePrinterChangeRegister(data, size, dataProvider);
936     TestUpdateAddedPrinterInCups(data, size, dataProvider);
937     TestRenamePrinterWhenAdded(data, size, dataProvider);
938     TestQueryDiscoveredPrinterInfoById(data, size, dataProvider);
939     TestCheckUserIdInEventType(data, size, dataProvider);
940     TestCallSpooler(data, size, dataProvider);
941     TestReportPrinterIdle(data, size, dataProvider);
942     TestQueryPPDInformation(data, size, dataProvider);
943     TestStartPrintJobInternal(data, size, dataProvider);
944 }
945 
TestNotPublicFunction(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)946 void TestNotPublicFunction(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
947 {
948     TestDiscoverUsbPrinters(data, size, dataProvider);
949     TestStartNativePrintJob(data, size, dataProvider);
950     TestNotifyPrintServiceEvent(data, size, dataProvider);
951     TestUpdateQueuedJobList(data, size, dataProvider);
952     TestUpdatePrintJobOptionByPrinterId(data, size, dataProvider);
953     TestDelayStartDiscovery(data, size, dataProvider);
954     TestAdapterGetFileCallBack(data, size, dataProvider);
955     TestAddNativePrintJob(data, size, dataProvider);
956     TestIsQueuedJobListEmpty(data, size, dataProvider);
957     TestSetPrintJobCanceled(data, size, dataProvider);
958     TestCancelUserPrintJobs(data, size, dataProvider);
959     TestSendExtensionEvent(data, size, dataProvider);
960     TestNotifyAdapterJobChanged(data, size, dataProvider);
961     TestRegisterAdapterListener(data, size, dataProvider);
962     TestisEprint(data, size, dataProvider);
963     TestCheckIsDefaultPrinter(data, size, dataProvider);
964     TestCheckIsLastUsedPrinter(data, size, dataProvider);
965     TestSetLastUsedPrinter(data, size, dataProvider);
966     TestSendPrintJobEvent(data, size, dataProvider);
967     TestStartPrintJobCB(data, size, dataProvider);
968     TestCheckPrinterUriDifferent(data, size, dataProvider);
969     TestUpdatePrinterCapability(data, size, dataProvider);
970     TestReportCompletedPrint(data, size, dataProvider);
971     TestNotifyAppJobQueueChanged(data, size, dataProvider);
972     TestSendPrinterChangeEvent(data, size, dataProvider);
973     TestCheckJobQueueBlocked(data, size, dataProvider);
974     TestGetListeningState(data, size, dataProvider);
975     TestUpdatePageSizeNameWithPrinterInfo(data, size, dataProvider);
976     TestUpdatePrintJobOptionWithPrinterPreferences(data, size, dataProvider);
977     TestConnectUsbPrinter(data, size, dataProvider);
978     TestMoreFunction(data, size, dataProvider);
979     TestNoParmFuncs(data, size, dataProvider);
980 }
981 
TestAllFunction(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)982 void TestAllFunction(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
983 {
984     TestStartPrint(data, size, dataProvider);
985     TestStopPrint(data, size, dataProvider);
986     TestConnectPrinter(data, size, dataProvider);
987     TestDisconnectPrinter(data, size, dataProvider);
988     TestStartDiscoverPrinter(data, size, dataProvider);
989     TestQueryAllExtension(data, size, dataProvider);
990     TestStartPrintJob(data, size, dataProvider);
991     TestCancelPrintJob(data, size, dataProvider);
992     TestAddPrinters(data, size, dataProvider);
993     TestRemovePrinters(data, size, dataProvider);
994     TestUpdatePrinters(data, size, dataProvider);
995     TestUpdatePrinterState(data, size, dataProvider);
996     TestUpdatePrintJobStateOnlyForSystemApp(data, size, dataProvider);
997     TestUpdateExtensionInfo(data, size, dataProvider);
998     TestRequestPreview(data, size, dataProvider);
999     TestQueryPrinterCapability(data, size, dataProvider);
1000     TestOn(data, size, dataProvider);
1001     TestOff(data, size, dataProvider);
1002     TestCallback(data, size, dataProvider);
1003     TestLoadExtSuccess(data, size, dataProvider);
1004     TestQueryAllActivePrintJob(data, size, dataProvider);
1005     TestQueryPrintJobById(data, size, dataProvider);
1006     TestAddPrinterToCups(data, size, dataProvider);
1007     TestQueryPrinterCapabilityByUri(data, size, dataProvider);
1008     TestPrintByAdapter(data, size, dataProvider);
1009     TestStartGetPrintFile(data, size, dataProvider);
1010     TestNotifyPrintService(data, size, dataProvider);
1011     TestQueryPrinterInfoByPrinterId(data, size, dataProvider);
1012     TestQueryAddedPrinter(data, size, dataProvider);
1013     TestQueryPrinterProperties(data, size, dataProvider);
1014     TestUpdatePrintJobState(data, size, dataProvider);
1015     TestSetPrinterPreference(data, size, dataProvider);
1016     TestSetDefaultPrinter(data, size, dataProvider);
1017     TestDeletePrinterFromCups(data, size, dataProvider);
1018     TestNotPublicFunction(data, size, dataProvider);
1019     TestAddIpPrinterToSystemData(data, size, dataProvider);
1020     TestAddIpPrinterToCupsWithPpd(data, size, dataProvider);
1021 }
1022 
1023 }  // namespace Print
1024 }  // namespace OHOS
1025 
1026 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)1027 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
1028 {
1029     /* Run your code on data */
1030     if (data == nullptr) {
1031         return 0;
1032     }
1033 
1034     if (size < OHOS::Print::U32_AT_SIZE) {
1035     }
1036 
1037     FuzzedDataProvider dataProvider(data, size);
1038     OHOS::Print::TestAllFunction(data, size, &dataProvider);
1039     OHOS::Print::PrintServiceAbilityMockPermission::MockPermission();
1040     OHOS::Print::TestAllFunction(data, size, &dataProvider);
1041     return 0;
1042 }
1043