146debc2cSopenharmony_ci/* 246debc2cSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 346debc2cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 446debc2cSopenharmony_ci * you may not use this file except in compliance with the License. 546debc2cSopenharmony_ci * You may obtain a copy of the License at 646debc2cSopenharmony_ci * 746debc2cSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 846debc2cSopenharmony_ci * 946debc2cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1046debc2cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1146debc2cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1246debc2cSopenharmony_ci * See the License for the specific language governing permissions and 1346debc2cSopenharmony_ci * limitations under the License. 1446debc2cSopenharmony_ci */ 1546debc2cSopenharmony_ci 1646debc2cSopenharmony_ci#include "fuzzer/FuzzedDataProvider.h" 1746debc2cSopenharmony_ci#include "napi/native_api.h" 1846debc2cSopenharmony_ci#include "message_parcel.h" 1946debc2cSopenharmony_ci#include "scanhelper_fuzzer.h" 2046debc2cSopenharmony_ci#include "scan_option_descriptor.h" 2146debc2cSopenharmony_ci#include "scan_option_value.h" 2246debc2cSopenharmony_ci#include "scan_parameters.h" 2346debc2cSopenharmony_ci#include "scan_progress.h" 2446debc2cSopenharmony_ci#include "scanner_info.h" 2546debc2cSopenharmony_ci#include "scan_range.h" 2646debc2cSopenharmony_ci#include "scan_option_descriptor_helper.h" 2746debc2cSopenharmony_ci#include "scan_option_value_helper.h" 2846debc2cSopenharmony_ci#include "scan_parameters_helper.h" 2946debc2cSopenharmony_ci#include "scan_progress_helper.h" 3046debc2cSopenharmony_ci#include "scan_range_helper.h" 3146debc2cSopenharmony_ci#include "scanner_info_helper.h" 3246debc2cSopenharmony_ci 3346debc2cSopenharmony_cinamespace OHOS { 3446debc2cSopenharmony_cinamespace Scan { 3546debc2cSopenharmony_ciconstexpr uint8_t MAX_STRING_LENGTH = 255; 3646debc2cSopenharmony_ciconstexpr int MAX_SET_NUMBER = 100; 3746debc2cSopenharmony_ciconstexpr size_t FOO_MAX_LEN = 1024; 3846debc2cSopenharmony_ciconstexpr size_t U32_AT_SIZE = 4; 3946debc2cSopenharmony_ci 4046debc2cSopenharmony_civoid TestSetOptionName(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 4146debc2cSopenharmony_ci{ 4246debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 4346debc2cSopenharmony_ci std::string optionName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 4446debc2cSopenharmony_ci scanOptDes.SetOptionName(optionName); 4546debc2cSopenharmony_ci optionName = scanOptDes.GetOptionName(); 4646debc2cSopenharmony_ci} 4746debc2cSopenharmony_ci 4846debc2cSopenharmony_civoid TestSetOptionTitle(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 4946debc2cSopenharmony_ci{ 5046debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 5146debc2cSopenharmony_ci std::string optionTitle = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 5246debc2cSopenharmony_ci scanOptDes.SetOptionTitle(optionTitle); 5346debc2cSopenharmony_ci optionTitle = scanOptDes.GetOptionTitle(); 5446debc2cSopenharmony_ci} 5546debc2cSopenharmony_ci 5646debc2cSopenharmony_civoid TestSetOptionDesc(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 5746debc2cSopenharmony_ci{ 5846debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 5946debc2cSopenharmony_ci std::string optionDesc = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 6046debc2cSopenharmony_ci scanOptDes.SetOptionDesc(optionDesc); 6146debc2cSopenharmony_ci optionDesc = scanOptDes.GetOptionDesc(); 6246debc2cSopenharmony_ci} 6346debc2cSopenharmony_ci 6446debc2cSopenharmony_civoid TestSetOptionType(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 6546debc2cSopenharmony_ci{ 6646debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 6746debc2cSopenharmony_ci uint32_t optionType = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 6846debc2cSopenharmony_ci scanOptDes.SetOptionType(optionType); 6946debc2cSopenharmony_ci optionType = scanOptDes.GetOptionType(); 7046debc2cSopenharmony_ci} 7146debc2cSopenharmony_ci 7246debc2cSopenharmony_civoid TestSetOptionUnit(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 7346debc2cSopenharmony_ci{ 7446debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 7546debc2cSopenharmony_ci uint32_t optionUnit = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 7646debc2cSopenharmony_ci scanOptDes.SetOptionUnit(optionUnit); 7746debc2cSopenharmony_ci optionUnit = scanOptDes.GetOptionUnit(); 7846debc2cSopenharmony_ci} 7946debc2cSopenharmony_ci 8046debc2cSopenharmony_civoid TestSetOptionSize(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 8146debc2cSopenharmony_ci{ 8246debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 8346debc2cSopenharmony_ci int32_t optionSize = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 8446debc2cSopenharmony_ci scanOptDes.SetOptionSize(optionSize); 8546debc2cSopenharmony_ci optionSize = scanOptDes.GetOptionSize(); 8646debc2cSopenharmony_ci} 8746debc2cSopenharmony_ci 8846debc2cSopenharmony_civoid TestSetOptionCap(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 8946debc2cSopenharmony_ci{ 9046debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 9146debc2cSopenharmony_ci int32_t optionCap = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 9246debc2cSopenharmony_ci scanOptDes.SetOptionCap(optionCap); 9346debc2cSopenharmony_ci optionCap = scanOptDes.GetOptionCap(); 9446debc2cSopenharmony_ci} 9546debc2cSopenharmony_ci 9646debc2cSopenharmony_civoid TestSetOptionConstraintType(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 9746debc2cSopenharmony_ci{ 9846debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 9946debc2cSopenharmony_ci uint32_t optionConstraintType = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 10046debc2cSopenharmony_ci scanOptDes.SetOptionConstraintType(optionConstraintType); 10146debc2cSopenharmony_ci optionConstraintType = scanOptDes.GetOptionConstraintType(); 10246debc2cSopenharmony_ci} 10346debc2cSopenharmony_ci 10446debc2cSopenharmony_civoid TestSetOptionConstraintString(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 10546debc2cSopenharmony_ci{ 10646debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 10746debc2cSopenharmony_ci std::vector<std::string> optionConstraintString; 10846debc2cSopenharmony_ci int32_t vectorSize = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 10946debc2cSopenharmony_ci for (int i = 0; i< vectorSize; i++) { 11046debc2cSopenharmony_ci std::string teststr = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 11146debc2cSopenharmony_ci optionConstraintString.emplace_back(teststr); 11246debc2cSopenharmony_ci } 11346debc2cSopenharmony_ci scanOptDes.SetOptionConstraintString(optionConstraintString); 11446debc2cSopenharmony_ci scanOptDes.GetOptionConstraintString(optionConstraintString); 11546debc2cSopenharmony_ci} 11646debc2cSopenharmony_ci 11746debc2cSopenharmony_civoid TestSetOptionConstraintNumber(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 11846debc2cSopenharmony_ci{ 11946debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 12046debc2cSopenharmony_ci std::vector<int32_t> optionConstraintNumber; 12146debc2cSopenharmony_ci int32_t vectorSize = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 12246debc2cSopenharmony_ci for (int i = 0; i< vectorSize; i++) { 12346debc2cSopenharmony_ci int32_t testNumber = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 12446debc2cSopenharmony_ci optionConstraintNumber.emplace_back(testNumber); 12546debc2cSopenharmony_ci } 12646debc2cSopenharmony_ci scanOptDes.SetOptionConstraintNumber(optionConstraintNumber); 12746debc2cSopenharmony_ci scanOptDes.GetOptionConstraintNumber(optionConstraintNumber); 12846debc2cSopenharmony_ci} 12946debc2cSopenharmony_ci 13046debc2cSopenharmony_civoid TestSetOptionConstraintRange(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 13146debc2cSopenharmony_ci{ 13246debc2cSopenharmony_ci ScanOptionDescriptor scanOptDes; 13346debc2cSopenharmony_ci ScanRange optionConstraintRange; 13446debc2cSopenharmony_ci scanOptDes.SetOptionConstraintRange(optionConstraintRange); 13546debc2cSopenharmony_ci scanOptDes.GetOptionConstraintRange(optionConstraintRange); 13646debc2cSopenharmony_ci std::string optionName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 13746debc2cSopenharmony_ci scanOptDes.SetOptionName(optionName); 13846debc2cSopenharmony_ci} 13946debc2cSopenharmony_ci 14046debc2cSopenharmony_civoid TestScanOptionDescriptor(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 14146debc2cSopenharmony_ci{ 14246debc2cSopenharmony_ci ScanOptionDescriptor scanOptDesTmp; 14346debc2cSopenharmony_ci uint32_t optionConstraintType = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 14446debc2cSopenharmony_ci scanOptDesTmp.SetOptionConstraintType(optionConstraintType); 14546debc2cSopenharmony_ci ScanOptionDescriptor scanOptDesBak(scanOptDesTmp); 14646debc2cSopenharmony_ci ScanOptionDescriptor scanOptDesOpera = scanOptDesTmp; 14746debc2cSopenharmony_ci scanOptDesOpera.Dump(); 14846debc2cSopenharmony_ci MessageParcel parcel; 14946debc2cSopenharmony_ci scanOptDesOpera.Marshalling(parcel); 15046debc2cSopenharmony_ci auto scanOptDesMarShall = ScanOptionDescriptor::Unmarshalling(parcel); 15146debc2cSopenharmony_ci} 15246debc2cSopenharmony_ci 15346debc2cSopenharmony_civoid TestSetScanOptionValueType(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 15446debc2cSopenharmony_ci{ 15546debc2cSopenharmony_ci ScanOptionValue scanOptVal; 15646debc2cSopenharmony_ci int32_t valueType = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 15746debc2cSopenharmony_ci scanOptVal.SetScanOptionValueType(static_cast<ScanOptionValueType>(valueType)); 15846debc2cSopenharmony_ci valueType = scanOptVal.GetScanOptionValueType(); 15946debc2cSopenharmony_ci} 16046debc2cSopenharmony_ci 16146debc2cSopenharmony_civoid TestSetValueSize(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 16246debc2cSopenharmony_ci{ 16346debc2cSopenharmony_ci ScanOptionValue scanOptVal; 16446debc2cSopenharmony_ci int32_t valueSize = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 16546debc2cSopenharmony_ci scanOptVal.SetValueSize(valueSize); 16646debc2cSopenharmony_ci valueSize = scanOptVal.GetValueSize(); 16746debc2cSopenharmony_ci} 16846debc2cSopenharmony_ci 16946debc2cSopenharmony_civoid TestSetNumValue(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 17046debc2cSopenharmony_ci{ 17146debc2cSopenharmony_ci ScanOptionValue scanOptVal; 17246debc2cSopenharmony_ci int32_t numValue = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 17346debc2cSopenharmony_ci scanOptVal.SetNumValue(numValue); 17446debc2cSopenharmony_ci numValue = scanOptVal.GetNumValue(); 17546debc2cSopenharmony_ci} 17646debc2cSopenharmony_ci 17746debc2cSopenharmony_civoid TestSetNumListValue(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 17846debc2cSopenharmony_ci{ 17946debc2cSopenharmony_ci ScanOptionValue scanOptVal; 18046debc2cSopenharmony_ci int32_t vecSize = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 18146debc2cSopenharmony_ci std::vector<int32_t> numListValue; 18246debc2cSopenharmony_ci for (int i = 0; i < vecSize; i++) { 18346debc2cSopenharmony_ci int32_t number = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 18446debc2cSopenharmony_ci numListValue.emplace_back(number); 18546debc2cSopenharmony_ci } 18646debc2cSopenharmony_ci scanOptVal.SetNumListValue(numListValue); 18746debc2cSopenharmony_ci scanOptVal.GetNumListValue(numListValue); 18846debc2cSopenharmony_ci} 18946debc2cSopenharmony_ci 19046debc2cSopenharmony_civoid TestSetStrValue(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 19146debc2cSopenharmony_ci{ 19246debc2cSopenharmony_ci ScanOptionValue scanOptVal; 19346debc2cSopenharmony_ci std::string optionTitle = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 19446debc2cSopenharmony_ci scanOptVal.SetStrValue(optionTitle); 19546debc2cSopenharmony_ci optionTitle = scanOptVal.GetStrValue(); 19646debc2cSopenharmony_ci} 19746debc2cSopenharmony_ci 19846debc2cSopenharmony_civoid TestSetBoolValue(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 19946debc2cSopenharmony_ci{ 20046debc2cSopenharmony_ci ScanOptionValue scanOptVal; 20146debc2cSopenharmony_ci bool boolValue = dataProvider->ConsumeBool(); 20246debc2cSopenharmony_ci scanOptVal.SetBoolValue(boolValue); 20346debc2cSopenharmony_ci boolValue = scanOptVal.GetBoolValue(); 20446debc2cSopenharmony_ci} 20546debc2cSopenharmony_ci 20646debc2cSopenharmony_civoid TestScanOptionValue(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 20746debc2cSopenharmony_ci{ 20846debc2cSopenharmony_ci ScanOptionValue scanOptVal; 20946debc2cSopenharmony_ci int32_t valueType = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 21046debc2cSopenharmony_ci scanOptVal.SetScanOptionValueType(static_cast<ScanOptionValueType>(valueType)); 21146debc2cSopenharmony_ci ScanOptionValue scanOptValBak = scanOptVal; 21246debc2cSopenharmony_ci scanOptValBak.Reset(); 21346debc2cSopenharmony_ci ScanOptionValue scanOptValOpera(scanOptValBak); 21446debc2cSopenharmony_ci int32_t valueSize = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 21546debc2cSopenharmony_ci scanOptValOpera.SetValueSize(valueSize); 21646debc2cSopenharmony_ci MessageParcel parcel; 21746debc2cSopenharmony_ci scanOptValOpera.Marshalling(parcel); 21846debc2cSopenharmony_ci auto scanOptValMarShall = ScanOptionDescriptor::Unmarshalling(parcel); 21946debc2cSopenharmony_ci scanOptValMarShall->Dump(); 22046debc2cSopenharmony_ci} 22146debc2cSopenharmony_ci 22246debc2cSopenharmony_civoid TestSetFormat(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 22346debc2cSopenharmony_ci{ 22446debc2cSopenharmony_ci ScanParameters scanPara; 22546debc2cSopenharmony_ci int32_t format = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 22646debc2cSopenharmony_ci scanPara.SetFormat(static_cast<ScanFrame>(format)); 22746debc2cSopenharmony_ci format = scanPara.GetFormat(); 22846debc2cSopenharmony_ci} 22946debc2cSopenharmony_ci 23046debc2cSopenharmony_civoid TestSetLastFrame(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 23146debc2cSopenharmony_ci{ 23246debc2cSopenharmony_ci ScanParameters scanPara; 23346debc2cSopenharmony_ci bool lastFrame = dataProvider->ConsumeBool(); 23446debc2cSopenharmony_ci scanPara.SetLastFrame(lastFrame); 23546debc2cSopenharmony_ci lastFrame = scanPara.GetLastFrame(); 23646debc2cSopenharmony_ci} 23746debc2cSopenharmony_ci 23846debc2cSopenharmony_civoid TestSetBytesPerLine(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 23946debc2cSopenharmony_ci{ 24046debc2cSopenharmony_ci ScanParameters scanPara; 24146debc2cSopenharmony_ci int32_t bytesPerLine = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 24246debc2cSopenharmony_ci scanPara.SetBytesPerLine(bytesPerLine); 24346debc2cSopenharmony_ci bytesPerLine = scanPara.GetBytesPerLine(); 24446debc2cSopenharmony_ci} 24546debc2cSopenharmony_ci 24646debc2cSopenharmony_civoid TestSetPixelsPerLine(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 24746debc2cSopenharmony_ci{ 24846debc2cSopenharmony_ci ScanParameters scanPara; 24946debc2cSopenharmony_ci int32_t pixelsPerLine = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 25046debc2cSopenharmony_ci scanPara.SetPixelsPerLine(pixelsPerLine); 25146debc2cSopenharmony_ci pixelsPerLine = scanPara.GetPixelsPerLine(); 25246debc2cSopenharmony_ci} 25346debc2cSopenharmony_ci 25446debc2cSopenharmony_civoid TestSetLines(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 25546debc2cSopenharmony_ci{ 25646debc2cSopenharmony_ci ScanParameters scanPara; 25746debc2cSopenharmony_ci int32_t lines = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 25846debc2cSopenharmony_ci scanPara.SetLines(lines); 25946debc2cSopenharmony_ci lines = scanPara.GetLines(); 26046debc2cSopenharmony_ci} 26146debc2cSopenharmony_ci 26246debc2cSopenharmony_civoid TestSetDepth(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 26346debc2cSopenharmony_ci{ 26446debc2cSopenharmony_ci ScanParameters scanPara; 26546debc2cSopenharmony_ci int32_t depth = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 26646debc2cSopenharmony_ci scanPara.SetDepth(depth); 26746debc2cSopenharmony_ci depth = scanPara.GetDepth(); 26846debc2cSopenharmony_ci} 26946debc2cSopenharmony_ci 27046debc2cSopenharmony_civoid TestScanParameters(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 27146debc2cSopenharmony_ci{ 27246debc2cSopenharmony_ci ScanParameters scanPara; 27346debc2cSopenharmony_ci int32_t lines = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 27446debc2cSopenharmony_ci scanPara.SetLines(lines); 27546debc2cSopenharmony_ci ScanParameters scanParaTmp(scanPara); 27646debc2cSopenharmony_ci ScanParameters scanParaBak = scanParaTmp; 27746debc2cSopenharmony_ci scanParaBak.Dump(); 27846debc2cSopenharmony_ci MessageParcel parcel; 27946debc2cSopenharmony_ci scanParaBak.Marshalling(parcel); 28046debc2cSopenharmony_ci auto scanParaBakMarShall = ScanParameters::Unmarshalling(parcel); 28146debc2cSopenharmony_ci} 28246debc2cSopenharmony_ci 28346debc2cSopenharmony_civoid TestSetScanProgress(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 28446debc2cSopenharmony_ci{ 28546debc2cSopenharmony_ci ScanProgress scanProg; 28646debc2cSopenharmony_ci int32_t progress = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 28746debc2cSopenharmony_ci scanProg.SetScanProgress(progress); 28846debc2cSopenharmony_ci progress = scanProg.GetScanProgress(); 28946debc2cSopenharmony_ci} 29046debc2cSopenharmony_ci 29146debc2cSopenharmony_civoid TestSetScanPictureFd(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 29246debc2cSopenharmony_ci{ 29346debc2cSopenharmony_ci ScanProgress scanProg; 29446debc2cSopenharmony_ci int32_t fd = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 29546debc2cSopenharmony_ci scanProg.SetScanPictureFd(fd); 29646debc2cSopenharmony_ci fd = scanProg.GetScanPictureFd(); 29746debc2cSopenharmony_ci} 29846debc2cSopenharmony_ci 29946debc2cSopenharmony_civoid TestSetIsFinal(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 30046debc2cSopenharmony_ci{ 30146debc2cSopenharmony_ci ScanProgress scanProg; 30246debc2cSopenharmony_ci bool isFinal = dataProvider->ConsumeBool(); 30346debc2cSopenharmony_ci scanProg.SetIsFinal(isFinal); 30446debc2cSopenharmony_ci isFinal = scanProg.GetIsFinal(); 30546debc2cSopenharmony_ci} 30646debc2cSopenharmony_ci 30746debc2cSopenharmony_civoid TestSetPictureId(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 30846debc2cSopenharmony_ci{ 30946debc2cSopenharmony_ci ScanProgress scanProg; 31046debc2cSopenharmony_ci int32_t pictureId = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 31146debc2cSopenharmony_ci scanProg.SetPictureId(pictureId); 31246debc2cSopenharmony_ci pictureId = scanProg.GetPictureId(); 31346debc2cSopenharmony_ci} 31446debc2cSopenharmony_ci 31546debc2cSopenharmony_civoid TestSetTaskCode(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 31646debc2cSopenharmony_ci{ 31746debc2cSopenharmony_ci ScanProgress scanProg; 31846debc2cSopenharmony_ci int32_t taskCode = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 31946debc2cSopenharmony_ci scanProg.SetTaskCode(static_cast<ScanErrorCode>(taskCode)); 32046debc2cSopenharmony_ci taskCode = scanProg.GetTaskCode(); 32146debc2cSopenharmony_ci} 32246debc2cSopenharmony_ci 32346debc2cSopenharmony_civoid TestScanProgress(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 32446debc2cSopenharmony_ci{ 32546debc2cSopenharmony_ci ScanProgress scanProg; 32646debc2cSopenharmony_ci int32_t taskCode = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 32746debc2cSopenharmony_ci scanProg.SetTaskCode(static_cast<ScanErrorCode>(taskCode)); 32846debc2cSopenharmony_ci scanProg.Dump(); 32946debc2cSopenharmony_ci taskCode = scanProg.GetTaskCode(); 33046debc2cSopenharmony_ci ScanProgress scanProgTmp(scanProg); 33146debc2cSopenharmony_ci ScanProgress scanProgBak = scanProgTmp; 33246debc2cSopenharmony_ci MessageParcel parcel; 33346debc2cSopenharmony_ci scanProgBak.Marshalling(parcel); 33446debc2cSopenharmony_ci auto scanOptValMarShall = ScanProgress::Unmarshalling(parcel); 33546debc2cSopenharmony_ci} 33646debc2cSopenharmony_ci 33746debc2cSopenharmony_civoid TestTCPSetDeviceName(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 33846debc2cSopenharmony_ci{ 33946debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 34046debc2cSopenharmony_ci std::string deviceName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 34146debc2cSopenharmony_ci scanDevInfoTcp.SetDeviceName(deviceName); 34246debc2cSopenharmony_ci deviceName = scanDevInfoTcp.GetDeviceName(); 34346debc2cSopenharmony_ci} 34446debc2cSopenharmony_ci 34546debc2cSopenharmony_civoid TestTCPSetUuid(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 34646debc2cSopenharmony_ci{ 34746debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 34846debc2cSopenharmony_ci std::string uuid = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 34946debc2cSopenharmony_ci scanDevInfoTcp.SetUuid(uuid); 35046debc2cSopenharmony_ci uuid = scanDevInfoTcp.GetUuid(); 35146debc2cSopenharmony_ci} 35246debc2cSopenharmony_ci 35346debc2cSopenharmony_civoid TestTCPSetModel(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 35446debc2cSopenharmony_ci{ 35546debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 35646debc2cSopenharmony_ci std::string model = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 35746debc2cSopenharmony_ci scanDevInfoTcp.SetModel(model); 35846debc2cSopenharmony_ci model = scanDevInfoTcp.GetModel(); 35946debc2cSopenharmony_ci} 36046debc2cSopenharmony_ci 36146debc2cSopenharmony_civoid TestTCPSetManufacturer(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 36246debc2cSopenharmony_ci{ 36346debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 36446debc2cSopenharmony_ci std::string manufacturer = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 36546debc2cSopenharmony_ci scanDevInfoTcp.SetManufacturer(manufacturer); 36646debc2cSopenharmony_ci manufacturer = scanDevInfoTcp.GetManufacturer(); 36746debc2cSopenharmony_ci} 36846debc2cSopenharmony_ci 36946debc2cSopenharmony_civoid TestTCPSetDeviceType(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 37046debc2cSopenharmony_ci{ 37146debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 37246debc2cSopenharmony_ci std::string deviceType = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 37346debc2cSopenharmony_ci scanDevInfoTcp.SetDeviceType(deviceType); 37446debc2cSopenharmony_ci deviceType = scanDevInfoTcp.GetDeviceType(); 37546debc2cSopenharmony_ci} 37646debc2cSopenharmony_ci 37746debc2cSopenharmony_civoid TestTCPSetPort(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 37846debc2cSopenharmony_ci{ 37946debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 38046debc2cSopenharmony_ci std::string port = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 38146debc2cSopenharmony_ci scanDevInfoTcp.SetPort(port); 38246debc2cSopenharmony_ci port = scanDevInfoTcp.GetPort(); 38346debc2cSopenharmony_ci} 38446debc2cSopenharmony_ci 38546debc2cSopenharmony_ci 38646debc2cSopenharmony_civoid TestTCPSetAddr(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 38746debc2cSopenharmony_ci{ 38846debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 38946debc2cSopenharmony_ci std::string addr = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 39046debc2cSopenharmony_ci scanDevInfoTcp.SetAddr(addr); 39146debc2cSopenharmony_ci addr = scanDevInfoTcp.GetAddr(); 39246debc2cSopenharmony_ci} 39346debc2cSopenharmony_ci 39446debc2cSopenharmony_civoid TestTCPSetButton(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 39546debc2cSopenharmony_ci{ 39646debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 39746debc2cSopenharmony_ci std::string button = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 39846debc2cSopenharmony_ci scanDevInfoTcp.SetButton(button); 39946debc2cSopenharmony_ci button = scanDevInfoTcp.GetButton(); 40046debc2cSopenharmony_ci} 40146debc2cSopenharmony_ci 40246debc2cSopenharmony_civoid TestTCPSetFeeder(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 40346debc2cSopenharmony_ci{ 40446debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 40546debc2cSopenharmony_ci std::string feeder = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 40646debc2cSopenharmony_ci scanDevInfoTcp.SetFeeder(feeder); 40746debc2cSopenharmony_ci feeder = scanDevInfoTcp.GetFeeder(); 40846debc2cSopenharmony_ci} 40946debc2cSopenharmony_ci 41046debc2cSopenharmony_civoid TestTCPSetDeviceState(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 41146debc2cSopenharmony_ci{ 41246debc2cSopenharmony_ci ScanDeviceInfoTCP scanDevInfoTcp; 41346debc2cSopenharmony_ci uint32_t deviceState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 41446debc2cSopenharmony_ci scanDevInfoTcp.SetDeviceState(deviceState); 41546debc2cSopenharmony_ci deviceState = scanDevInfoTcp.GetDeviceState(); 41646debc2cSopenharmony_ci} 41746debc2cSopenharmony_ci 41846debc2cSopenharmony_civoid TestUSBSetDeviceId(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 41946debc2cSopenharmony_ci{ 42046debc2cSopenharmony_ci ScanDeviceInfo deviceInfo; 42146debc2cSopenharmony_ci std::string deviceId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 42246debc2cSopenharmony_ci deviceInfo.SetDeviceId(deviceId); 42346debc2cSopenharmony_ci deviceId = deviceInfo.GetDeviceId(); 42446debc2cSopenharmony_ci} 42546debc2cSopenharmony_ci 42646debc2cSopenharmony_civoid TestUSBSetManufacturer(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 42746debc2cSopenharmony_ci{ 42846debc2cSopenharmony_ci ScanDeviceInfo deviceInfo; 42946debc2cSopenharmony_ci std::string manufacturer = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 43046debc2cSopenharmony_ci deviceInfo.SetManufacturer(manufacturer); 43146debc2cSopenharmony_ci manufacturer = deviceInfo.GetManufacturer(); 43246debc2cSopenharmony_ci} 43346debc2cSopenharmony_ci 43446debc2cSopenharmony_civoid TestUSBSetModel(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 43546debc2cSopenharmony_ci{ 43646debc2cSopenharmony_ci ScanDeviceInfo deviceInfo; 43746debc2cSopenharmony_ci std::string model = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 43846debc2cSopenharmony_ci deviceInfo.SetModel(model); 43946debc2cSopenharmony_ci model = deviceInfo.GetModel(); 44046debc2cSopenharmony_ci} 44146debc2cSopenharmony_ci 44246debc2cSopenharmony_civoid TestUSBSetDeviceType(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 44346debc2cSopenharmony_ci{ 44446debc2cSopenharmony_ci ScanDeviceInfo deviceInfo; 44546debc2cSopenharmony_ci std::string deviceType = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 44646debc2cSopenharmony_ci deviceInfo.SetDeviceType(deviceType); 44746debc2cSopenharmony_ci deviceType = deviceInfo.GetDeviceType(); 44846debc2cSopenharmony_ci} 44946debc2cSopenharmony_ci 45046debc2cSopenharmony_civoid TestUSBSetDeviceState(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 45146debc2cSopenharmony_ci{ 45246debc2cSopenharmony_ci ScanDeviceInfo deviceInfo; 45346debc2cSopenharmony_ci uint32_t deviceState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 45446debc2cSopenharmony_ci deviceInfo.SetDeviceState(deviceState); 45546debc2cSopenharmony_ci deviceState = deviceInfo.GetDeviceState(); 45646debc2cSopenharmony_ci} 45746debc2cSopenharmony_ci 45846debc2cSopenharmony_civoid TestUSBSetDiscoverMode(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 45946debc2cSopenharmony_ci{ 46046debc2cSopenharmony_ci ScanDeviceInfo deviceInfo; 46146debc2cSopenharmony_ci std::string discoverMode = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 46246debc2cSopenharmony_ci deviceInfo.SetDiscoverMode(discoverMode); 46346debc2cSopenharmony_ci discoverMode = deviceInfo.GetDiscoverMode(); 46446debc2cSopenharmony_ci} 46546debc2cSopenharmony_ci 46646debc2cSopenharmony_civoid TestUSBSetSerialNumber(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 46746debc2cSopenharmony_ci{ 46846debc2cSopenharmony_ci ScanDeviceInfo deviceInfo; 46946debc2cSopenharmony_ci std::string serialNumber = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 47046debc2cSopenharmony_ci deviceInfo.SetSerialNumber(serialNumber); 47146debc2cSopenharmony_ci serialNumber = deviceInfo.GetSerialNumber(); 47246debc2cSopenharmony_ci} 47346debc2cSopenharmony_ci 47446debc2cSopenharmony_civoid TestSetMinValue(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 47546debc2cSopenharmony_ci{ 47646debc2cSopenharmony_ci ScanRange range; 47746debc2cSopenharmony_ci int32_t minValue = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 47846debc2cSopenharmony_ci range.SetMinValue(minValue); 47946debc2cSopenharmony_ci minValue = range.GetMinValue(); 48046debc2cSopenharmony_ci} 48146debc2cSopenharmony_ci 48246debc2cSopenharmony_civoid TestSetMaxValue(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 48346debc2cSopenharmony_ci{ 48446debc2cSopenharmony_ci ScanRange range; 48546debc2cSopenharmony_ci int32_t maxValue = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 48646debc2cSopenharmony_ci range.SetMaxValue(maxValue); 48746debc2cSopenharmony_ci maxValue = range.GetMaxValue(); 48846debc2cSopenharmony_ci} 48946debc2cSopenharmony_ci 49046debc2cSopenharmony_civoid TestSetQuantValue(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 49146debc2cSopenharmony_ci{ 49246debc2cSopenharmony_ci ScanRange range; 49346debc2cSopenharmony_ci int32_t quantValue = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 49446debc2cSopenharmony_ci range.SetQuantValue(quantValue); 49546debc2cSopenharmony_ci quantValue = range.GetQuantValue(); 49646debc2cSopenharmony_ci} 49746debc2cSopenharmony_ci 49846debc2cSopenharmony_civoid TestScanRange(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 49946debc2cSopenharmony_ci{ 50046debc2cSopenharmony_ci ScanRange range; 50146debc2cSopenharmony_ci range.Reset(); 50246debc2cSopenharmony_ci int32_t maxValue = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 50346debc2cSopenharmony_ci range.SetMaxValue(maxValue); 50446debc2cSopenharmony_ci ScanRange rangeBak(range); 50546debc2cSopenharmony_ci MessageParcel parcel; 50646debc2cSopenharmony_ci range.Marshalling(parcel); 50746debc2cSopenharmony_ci auto rangeMarshall = ScanRange::Unmarshalling(parcel); 50846debc2cSopenharmony_ci} 50946debc2cSopenharmony_ci 51046debc2cSopenharmony_civoid TestDeviceInfo(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 51146debc2cSopenharmony_ci{ 51246debc2cSopenharmony_ci ScanDeviceInfoTCP infoTcp; 51346debc2cSopenharmony_ci uint32_t deviceState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 51446debc2cSopenharmony_ci infoTcp.SetDeviceState(deviceState); 51546debc2cSopenharmony_ci ScanDeviceInfoTCP infoTcpTmp(infoTcp); 51646debc2cSopenharmony_ci ScanDeviceInfoTCP infoTcpBak(infoTcpTmp); 51746debc2cSopenharmony_ci MessageParcel parcel; 51846debc2cSopenharmony_ci infoTcpBak.Marshalling(parcel); 51946debc2cSopenharmony_ci auto infoTcpMarshall = ScanDeviceInfoTCP::Unmarshalling(parcel); 52046debc2cSopenharmony_ci 52146debc2cSopenharmony_ci ScanDeviceInfo info; 52246debc2cSopenharmony_ci info.SetDeviceState(deviceState); 52346debc2cSopenharmony_ci ScanDeviceInfo infoTmp(info); 52446debc2cSopenharmony_ci ScanDeviceInfo infoBak(infoTmp); 52546debc2cSopenharmony_ci infoBak.Marshalling(parcel); 52646debc2cSopenharmony_ci auto infoMarshall = ScanDeviceInfo::Unmarshalling(parcel); 52746debc2cSopenharmony_ci} 52846debc2cSopenharmony_ci 52946debc2cSopenharmony_civoid TestScanOptDesNapiInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 53046debc2cSopenharmony_ci{ 53146debc2cSopenharmony_ci napi_env env = nullptr; 53246debc2cSopenharmony_ci ScanOptionDescriptor info; 53346debc2cSopenharmony_ci uint32_t optionUnit = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 53446debc2cSopenharmony_ci info.SetOptionUnit(optionUnit); 53546debc2cSopenharmony_ci ScanOptionDescriptorHelper::MakeJsObject(env, info); 53646debc2cSopenharmony_ci napi_value jsValue = nullptr; 53746debc2cSopenharmony_ci ScanOptionDescriptorHelper::BuildFromJs(env, jsValue); 53846debc2cSopenharmony_ci} 53946debc2cSopenharmony_ci 54046debc2cSopenharmony_civoid TestScanOptValNapiInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 54146debc2cSopenharmony_ci{ 54246debc2cSopenharmony_ci napi_env env = nullptr; 54346debc2cSopenharmony_ci ScanOptionValue info; 54446debc2cSopenharmony_ci int32_t valueType = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 54546debc2cSopenharmony_ci info.SetScanOptionValueType(static_cast<ScanOptionValueType>(valueType)); 54646debc2cSopenharmony_ci ScanOptionValueHelper::MakeJsObject(env, info); 54746debc2cSopenharmony_ci napi_value jsValue = nullptr; 54846debc2cSopenharmony_ci ScanOptionValueHelper::BuildFromJs(env, jsValue); 54946debc2cSopenharmony_ci} 55046debc2cSopenharmony_ci 55146debc2cSopenharmony_civoid TestScanParaNapiInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 55246debc2cSopenharmony_ci{ 55346debc2cSopenharmony_ci napi_env env = nullptr; 55446debc2cSopenharmony_ci ScanParameters info; 55546debc2cSopenharmony_ci int32_t format = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 55646debc2cSopenharmony_ci info.SetFormat(static_cast<ScanFrame>(format)); 55746debc2cSopenharmony_ci ScanParametersHelper::MakeJsObject(env, info); 55846debc2cSopenharmony_ci napi_value jsValue = nullptr; 55946debc2cSopenharmony_ci ScanParametersHelper::BuildFromJs(env, jsValue); 56046debc2cSopenharmony_ci} 56146debc2cSopenharmony_ci 56246debc2cSopenharmony_civoid TestScanProgNapiInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 56346debc2cSopenharmony_ci{ 56446debc2cSopenharmony_ci napi_env env = nullptr; 56546debc2cSopenharmony_ci ScanProgress info; 56646debc2cSopenharmony_ci int32_t progress = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 56746debc2cSopenharmony_ci info.SetScanProgress(progress); 56846debc2cSopenharmony_ci ScanProgressHelper::MakeJsObject(env, info); 56946debc2cSopenharmony_ci} 57046debc2cSopenharmony_ci 57146debc2cSopenharmony_civoid TestScanRangeNapiInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 57246debc2cSopenharmony_ci{ 57346debc2cSopenharmony_ci napi_env env = nullptr; 57446debc2cSopenharmony_ci ScanRange info; 57546debc2cSopenharmony_ci int32_t maxValue = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER); 57646debc2cSopenharmony_ci info.SetMaxValue(maxValue); 57746debc2cSopenharmony_ci ScanRangeHelper::MakeJsObject(env, info); 57846debc2cSopenharmony_ci napi_value jsValue = nullptr; 57946debc2cSopenharmony_ci ScanRangeHelper::BuildFromJs(env, jsValue); 58046debc2cSopenharmony_ci} 58146debc2cSopenharmony_ci 58246debc2cSopenharmony_civoid TestScannerInfoNapiInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 58346debc2cSopenharmony_ci{ 58446debc2cSopenharmony_ci napi_env env = nullptr; 58546debc2cSopenharmony_ci ScanDeviceInfo info; 58646debc2cSopenharmony_ci std::string deviceId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 58746debc2cSopenharmony_ci info.SetDeviceId(deviceId); 58846debc2cSopenharmony_ci ScannerInfoHelper::MakeJsObject(env, info); 58946debc2cSopenharmony_ci} 59046debc2cSopenharmony_ci 59146debc2cSopenharmony_civoid TestScannerInfoTCPNapiInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 59246debc2cSopenharmony_ci{ 59346debc2cSopenharmony_ci napi_env env = nullptr; 59446debc2cSopenharmony_ci ScanDeviceInfoTCP info; 59546debc2cSopenharmony_ci uint32_t deviceState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 59646debc2cSopenharmony_ci info.SetDeviceState(deviceState); 59746debc2cSopenharmony_ci ScannerInfoHelperTCP::MakeJsObject(env, info); 59846debc2cSopenharmony_ci} 59946debc2cSopenharmony_ci 60046debc2cSopenharmony_civoid TestGetExtensionIdInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 60146debc2cSopenharmony_ci{ 60246debc2cSopenharmony_ci std::string globalId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 60346debc2cSopenharmony_ci NapiScanUtils::GetExtensionId(globalId); 60446debc2cSopenharmony_ci} 60546debc2cSopenharmony_ci 60646debc2cSopenharmony_civoid TestGetGlobalIdInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 60746debc2cSopenharmony_ci{ 60846debc2cSopenharmony_ci std::string globalId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 60946debc2cSopenharmony_ci std::string localId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 61046debc2cSopenharmony_ci NapiScanUtils::GetGlobalId(globalId, localId); 61146debc2cSopenharmony_ci} 61246debc2cSopenharmony_ci 61346debc2cSopenharmony_civoid TestGetLocalIdInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 61446debc2cSopenharmony_ci{ 61546debc2cSopenharmony_ci std::string globalId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 61646debc2cSopenharmony_ci std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 61746debc2cSopenharmony_ci NapiScanUtils::GetLocalId(globalId, extensionId); 61846debc2cSopenharmony_ci} 61946debc2cSopenharmony_ci 62046debc2cSopenharmony_civoid TestEncodeExtensionCidInterface(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 62146debc2cSopenharmony_ci{ 62246debc2cSopenharmony_ci std::string globalId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 62346debc2cSopenharmony_ci uint32_t callbackId = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 62446debc2cSopenharmony_ci NapiScanUtils::EncodeExtensionCid(globalId, callbackId); 62546debc2cSopenharmony_ci} 62646debc2cSopenharmony_ci 62746debc2cSopenharmony_civoid TestDecodeExtensionCid(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 62846debc2cSopenharmony_ci{ 62946debc2cSopenharmony_ci std::string cid = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 63046debc2cSopenharmony_ci std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 63146debc2cSopenharmony_ci uint32_t callbackId = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER); 63246debc2cSopenharmony_ci NapiScanUtils::DecodeExtensionCid(cid, extensionId, callbackId); 63346debc2cSopenharmony_ci} 63446debc2cSopenharmony_ci 63546debc2cSopenharmony_civoid TestGetTaskEventId(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 63646debc2cSopenharmony_ci{ 63746debc2cSopenharmony_ci std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 63846debc2cSopenharmony_ci std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 63946debc2cSopenharmony_ci NapiScanUtils::GetTaskEventId(taskId, type); 64046debc2cSopenharmony_ci} 64146debc2cSopenharmony_ci 64246debc2cSopenharmony_civoid TestOpenFile(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 64346debc2cSopenharmony_ci{ 64446debc2cSopenharmony_ci std::string filePath = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 64546debc2cSopenharmony_ci NapiScanUtils::OpenFile(filePath); 64646debc2cSopenharmony_ci} 64746debc2cSopenharmony_ci 64846debc2cSopenharmony_civoid TestIsPathValid(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 64946debc2cSopenharmony_ci{ 65046debc2cSopenharmony_ci std::string filePath = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH); 65146debc2cSopenharmony_ci NapiScanUtils::IsPathValid(filePath); 65246debc2cSopenharmony_ci} 65346debc2cSopenharmony_ci 65446debc2cSopenharmony_civoid ScanOptionDescriptorFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 65546debc2cSopenharmony_ci{ 65646debc2cSopenharmony_ci TestSetOptionName(data, size, dataProvider); 65746debc2cSopenharmony_ci TestSetOptionTitle(data, size, dataProvider); 65846debc2cSopenharmony_ci TestSetOptionDesc(data, size, dataProvider); 65946debc2cSopenharmony_ci TestSetOptionType(data, size, dataProvider); 66046debc2cSopenharmony_ci TestSetOptionUnit(data, size, dataProvider); 66146debc2cSopenharmony_ci TestSetOptionSize(data, size, dataProvider); 66246debc2cSopenharmony_ci TestSetOptionCap(data, size, dataProvider); 66346debc2cSopenharmony_ci TestSetOptionConstraintType(data, size, dataProvider); 66446debc2cSopenharmony_ci TestSetOptionConstraintString(data, size, dataProvider); 66546debc2cSopenharmony_ci TestSetOptionConstraintNumber(data, size, dataProvider); 66646debc2cSopenharmony_ci TestSetOptionConstraintRange(data, size, dataProvider); 66746debc2cSopenharmony_ci TestScanOptionDescriptor(data, size, dataProvider); 66846debc2cSopenharmony_ci} 66946debc2cSopenharmony_ci 67046debc2cSopenharmony_civoid ScanOptionValueFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 67146debc2cSopenharmony_ci{ 67246debc2cSopenharmony_ci TestSetScanOptionValueType(data, size, dataProvider); 67346debc2cSopenharmony_ci TestSetValueSize(data, size, dataProvider); 67446debc2cSopenharmony_ci TestSetNumValue(data, size, dataProvider); 67546debc2cSopenharmony_ci TestSetNumListValue(data, size, dataProvider); 67646debc2cSopenharmony_ci TestSetStrValue(data, size, dataProvider); 67746debc2cSopenharmony_ci TestSetBoolValue(data, size, dataProvider); 67846debc2cSopenharmony_ci TestScanOptionValue(data, size, dataProvider); 67946debc2cSopenharmony_ci} 68046debc2cSopenharmony_ci 68146debc2cSopenharmony_civoid ScanParametersFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 68246debc2cSopenharmony_ci{ 68346debc2cSopenharmony_ci TestSetFormat(data, size, dataProvider); 68446debc2cSopenharmony_ci TestSetLastFrame(data, size, dataProvider); 68546debc2cSopenharmony_ci TestSetBytesPerLine(data, size, dataProvider); 68646debc2cSopenharmony_ci TestSetPixelsPerLine(data, size, dataProvider); 68746debc2cSopenharmony_ci TestSetLines(data, size, dataProvider); 68846debc2cSopenharmony_ci TestSetDepth(data, size, dataProvider); 68946debc2cSopenharmony_ci TestScanParameters(data, size, dataProvider); 69046debc2cSopenharmony_ci} 69146debc2cSopenharmony_ci 69246debc2cSopenharmony_civoid ScanDeviceInfoFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 69346debc2cSopenharmony_ci{ 69446debc2cSopenharmony_ci TestSetScanProgress(data, size, dataProvider); 69546debc2cSopenharmony_ci TestSetScanPictureFd(data, size, dataProvider); 69646debc2cSopenharmony_ci TestSetIsFinal(data, size, dataProvider); 69746debc2cSopenharmony_ci TestSetPictureId(data, size, dataProvider); 69846debc2cSopenharmony_ci TestSetTaskCode(data, size, dataProvider); 69946debc2cSopenharmony_ci TestScanProgress(data, size, dataProvider); 70046debc2cSopenharmony_ci} 70146debc2cSopenharmony_ci 70246debc2cSopenharmony_civoid ScannerInfoFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 70346debc2cSopenharmony_ci{ 70446debc2cSopenharmony_ci TestTCPSetDeviceName(data, size, dataProvider); 70546debc2cSopenharmony_ci TestTCPSetUuid(data, size, dataProvider); 70646debc2cSopenharmony_ci TestTCPSetModel(data, size, dataProvider); 70746debc2cSopenharmony_ci TestTCPSetManufacturer(data, size, dataProvider); 70846debc2cSopenharmony_ci TestTCPSetDeviceType(data, size, dataProvider); 70946debc2cSopenharmony_ci TestTCPSetPort(data, size, dataProvider); 71046debc2cSopenharmony_ci TestTCPSetAddr(data, size, dataProvider); 71146debc2cSopenharmony_ci TestTCPSetButton(data, size, dataProvider); 71246debc2cSopenharmony_ci TestTCPSetFeeder(data, size, dataProvider); 71346debc2cSopenharmony_ci TestTCPSetDeviceState(data, size, dataProvider); 71446debc2cSopenharmony_ci TestUSBSetDeviceId(data, size, dataProvider); 71546debc2cSopenharmony_ci TestUSBSetManufacturer(data, size, dataProvider); 71646debc2cSopenharmony_ci TestUSBSetModel(data, size, dataProvider); 71746debc2cSopenharmony_ci TestUSBSetDeviceType(data, size, dataProvider); 71846debc2cSopenharmony_ci TestUSBSetDeviceState(data, size, dataProvider); 71946debc2cSopenharmony_ci TestUSBSetDiscoverMode(data, size, dataProvider); 72046debc2cSopenharmony_ci TestUSBSetSerialNumber(data, size, dataProvider); 72146debc2cSopenharmony_ci TestDeviceInfo(data, size, dataProvider); 72246debc2cSopenharmony_ci} 72346debc2cSopenharmony_ci 72446debc2cSopenharmony_civoid ScanRangeFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 72546debc2cSopenharmony_ci{ 72646debc2cSopenharmony_ci TestSetMinValue(data, size, dataProvider); 72746debc2cSopenharmony_ci TestSetMaxValue(data, size, dataProvider); 72846debc2cSopenharmony_ci TestSetQuantValue(data, size, dataProvider); 72946debc2cSopenharmony_ci TestScanRange(data, size, dataProvider); 73046debc2cSopenharmony_ci} 73146debc2cSopenharmony_ci 73246debc2cSopenharmony_civoid ScanOptionDescriptorHelperFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 73346debc2cSopenharmony_ci{ 73446debc2cSopenharmony_ci TestScanOptDesNapiInterface(data, size, dataProvider); 73546debc2cSopenharmony_ci} 73646debc2cSopenharmony_ci 73746debc2cSopenharmony_civoid ScanOptionValueHelperFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 73846debc2cSopenharmony_ci{ 73946debc2cSopenharmony_ci TestScanOptValNapiInterface(data, size, dataProvider); 74046debc2cSopenharmony_ci} 74146debc2cSopenharmony_ci 74246debc2cSopenharmony_civoid ScanParametersHelperFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 74346debc2cSopenharmony_ci{ 74446debc2cSopenharmony_ci TestScanParaNapiInterface(data, size, dataProvider); 74546debc2cSopenharmony_ci} 74646debc2cSopenharmony_ci 74746debc2cSopenharmony_civoid ScanProgressHelperFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 74846debc2cSopenharmony_ci{ 74946debc2cSopenharmony_ci TestScanProgNapiInterface(data, size, dataProvider); 75046debc2cSopenharmony_ci} 75146debc2cSopenharmony_ci 75246debc2cSopenharmony_civoid ScanRangeHelperFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 75346debc2cSopenharmony_ci{ 75446debc2cSopenharmony_ci TestScanRangeNapiInterface(data, size, dataProvider); 75546debc2cSopenharmony_ci} 75646debc2cSopenharmony_ci 75746debc2cSopenharmony_civoid ScannerInfoHelperFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 75846debc2cSopenharmony_ci{ 75946debc2cSopenharmony_ci TestScannerInfoNapiInterface(data, size, dataProvider); 76046debc2cSopenharmony_ci TestScannerInfoTCPNapiInterface(data, size, dataProvider); 76146debc2cSopenharmony_ci} 76246debc2cSopenharmony_ci 76346debc2cSopenharmony_civoid NapiScanUtilsFuzzTest(const uint8_t* data, size_t size, FuzzedDataProvider* dataProvider) 76446debc2cSopenharmony_ci{ 76546debc2cSopenharmony_ci TestGetExtensionIdInterface(data, size, dataProvider); 76646debc2cSopenharmony_ci TestGetGlobalIdInterface(data, size, dataProvider); 76746debc2cSopenharmony_ci TestGetLocalIdInterface(data, size, dataProvider); 76846debc2cSopenharmony_ci TestEncodeExtensionCidInterface(data, size, dataProvider); 76946debc2cSopenharmony_ci TestDecodeExtensionCid(data, size, dataProvider); 77046debc2cSopenharmony_ci TestGetTaskEventId(data, size, dataProvider); 77146debc2cSopenharmony_ci TestOpenFile(data, size, dataProvider); 77246debc2cSopenharmony_ci TestIsPathValid(data, size, dataProvider); 77346debc2cSopenharmony_ci} 77446debc2cSopenharmony_ci 77546debc2cSopenharmony_ci} 77646debc2cSopenharmony_ci} 77746debc2cSopenharmony_ci 77846debc2cSopenharmony_ci/* Fuzzer entry point */ 77946debc2cSopenharmony_ciextern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) 78046debc2cSopenharmony_ci{ 78146debc2cSopenharmony_ci if (data == nullptr) { 78246debc2cSopenharmony_ci return 0; 78346debc2cSopenharmony_ci } 78446debc2cSopenharmony_ci 78546debc2cSopenharmony_ci if (size < OHOS::Scan::U32_AT_SIZE || size > OHOS::Scan::FOO_MAX_LEN) { 78646debc2cSopenharmony_ci return 0; 78746debc2cSopenharmony_ci } 78846debc2cSopenharmony_ci FuzzedDataProvider dataProvider(data, size); 78946debc2cSopenharmony_ci OHOS::Scan::ScanOptionDescriptorFuzzTest(data, size, &dataProvider); 79046debc2cSopenharmony_ci OHOS::Scan::ScanOptionValueFuzzTest(data, size, &dataProvider); 79146debc2cSopenharmony_ci OHOS::Scan::ScanParametersFuzzTest(data, size, &dataProvider); 79246debc2cSopenharmony_ci OHOS::Scan::ScanDeviceInfoFuzzTest(data, size, &dataProvider); 79346debc2cSopenharmony_ci OHOS::Scan::ScannerInfoFuzzTest(data, size, &dataProvider); 79446debc2cSopenharmony_ci OHOS::Scan::ScanRangeFuzzTest(data, size, &dataProvider); 79546debc2cSopenharmony_ci OHOS::Scan::ScanOptionDescriptorHelperFuzzTest(data, size, &dataProvider); 79646debc2cSopenharmony_ci OHOS::Scan::ScanOptionValueHelperFuzzTest(data, size, &dataProvider); 79746debc2cSopenharmony_ci OHOS::Scan::ScanParametersHelperFuzzTest(data, size, &dataProvider); 79846debc2cSopenharmony_ci OHOS::Scan::ScanProgressHelperFuzzTest(data, size, &dataProvider); 79946debc2cSopenharmony_ci OHOS::Scan::ScanRangeHelperFuzzTest(data, size, &dataProvider); 80046debc2cSopenharmony_ci OHOS::Scan::ScannerInfoHelperFuzzTest(data, size, &dataProvider); 80146debc2cSopenharmony_ci OHOS::Scan::NapiScanUtilsFuzzTest(data, size, &dataProvider); 80246debc2cSopenharmony_ci return 0; 80346debc2cSopenharmony_ci} 80446debc2cSopenharmony_ci 805