13298bea7Sopenharmony_ci/* 23298bea7Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 33298bea7Sopenharmony_ci * SPDX-License-Identifier: GPL-2.0 43298bea7Sopenharmony_ci * 53298bea7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 63298bea7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 73298bea7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 83298bea7Sopenharmony_ci * See the License for the specific language governing permissions and 93298bea7Sopenharmony_ci * limitations under the License. 103298bea7Sopenharmony_ci */ 113298bea7Sopenharmony_ci 123298bea7Sopenharmony_ci#include <vector> 133298bea7Sopenharmony_ci#include <cstddef> 143298bea7Sopenharmony_ci#include <cstdint> 153298bea7Sopenharmony_ci#include "__config" 163298bea7Sopenharmony_ci#include "rtg_interface.h" 173298bea7Sopenharmony_ci 183298bea7Sopenharmony_ciusing namespace std; 193298bea7Sopenharmony_ciusing namespace OHOS::RME; 203298bea7Sopenharmony_cinamespace OHOS { 213298bea7Sopenharmony_cibool BeginFrameFreqFuzzTest(const uint8_t *data, size_t size) 223298bea7Sopenharmony_ci{ 233298bea7Sopenharmony_ci bool ret = false; 243298bea7Sopenharmony_ci constexpr int marginUpperLimitTime = 32000; 253298bea7Sopenharmony_ci constexpr int marginLowerLimitTime = -32000; 263298bea7Sopenharmony_ci if (data == nullptr) { 273298bea7Sopenharmony_ci return ret; 283298bea7Sopenharmony_ci } else { 293298bea7Sopenharmony_ci uint8_t *countData = const_cast<uint8_t *>(data); 303298bea7Sopenharmony_ci int margin = *(reinterpret_cast<int *>(countData)); 313298bea7Sopenharmony_ci if (margin < marginLowerLimitTime || margin > marginUpperLimitTime) { 323298bea7Sopenharmony_ci return ret; 333298bea7Sopenharmony_ci } 343298bea7Sopenharmony_ci ret = BeginFrameFreq(margin); 353298bea7Sopenharmony_ci } 363298bea7Sopenharmony_ci return ret; 373298bea7Sopenharmony_ci} 383298bea7Sopenharmony_ci} 393298bea7Sopenharmony_ci 403298bea7Sopenharmony_ciextern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) 413298bea7Sopenharmony_ci{ 423298bea7Sopenharmony_ci OHOS::BeginFrameFreqFuzzTest(data, size); 433298bea7Sopenharmony_ci return 0; 443298bea7Sopenharmony_ci} 45