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