# Copyright (c) 2022-2023 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build/test.gni")
import("//third_party/wpa_supplicant/wpa_supplicant-2.9_standard/wpa.gni")
import("../../../../../hdf_core/adapter/uhdf2/uhdf.gni")

TEST_ROOT_DIR = "../../.."

module_output_path = "drivers_peripheral_wlan/drivers_peripheral_wlan"

ohos_fuzztest("WpaFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "$TEST_ROOT_DIR/test/fuzztest/wpa_fuzzer"

  include_dirs = [
    "$TEST_ROOT_DIR/interfaces/include",
    "$TEST_ROOT_DIR/test/fuzztest",
    "$TEST_ROOT_DIR/wpa/interfaces/hdi_service",
    "$TEST_ROOT_DIR/wpa/interfaces/hdi_service/service_common",
    "./service_common",
    "../../client/include",
    "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard",
    "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard/src",
    "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard/src/utils",
    "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard/wpa_supplicant",
    "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard/wpa_supplicant_lib",
  ]

  deps = [ "$TEST_ROOT_DIR/hdi_service:hdi_wlan_service" ]

  defines = [ "__OHOS__USER__" ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_wlan:libwlan_proxy_1.3",
    "drivers_interface_wlan:libwpa_proxy_1.1",
    "drivers_interface_wlan:libwpa_stub_1.0",
    "hdf_core:libhdf_host",
    "hdf_core:libhdf_ipc_adapter",
    "hdf_core:libhdf_utils",
    "hdf_core:libhdi",
    "hdf_core:libpub_utils",
    "hilog:libhilog",
    "wpa_supplicant:wpa",
  ]

  cflags = [
    "-g",
    "-O0",
    "-Wno-unused-variable",
    "-fno-omit-frame-pointer",
    "-fno-strict-aliasing",
    "-DCONFIG_CTRL_IFACE",
    "-DCONFIG_WEP",
    "-DCONFIG_WPS",
  ]

  public_deps = [ "//third_party/bounds_checking_function:libsec_shared" ]

  sources = [
    "$TEST_ROOT_DIR/test/fuzztest/wpa_common_fuzzer.cpp",
    "wpa_fuzzer.cpp",
  ]
}

group("wpa_fuzztest") {
  testonly = true
  deps = [ ":WpaFuzzTest" ]
}