1# Copyright (C) 2022 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14#####################hydra-fuzz###################
15import("//build/config/features.gni")
16import("//build/test.gni")
17import("//foundation/communication/wifi/wifi/wifi.gni")
18
19##############################fuzztest##########################################
20ohos_fuzztest("WifiApFuzzTest") {
21  module_out_path = fuzz_test_output_path
22  fuzz_config_file = "$WIFI_ROOT_DIR/test/fuzztest/wifi_sta/wifiap_fuzzer"
23
24  include_dirs = [
25    "$WIFI_ROOT_DIR/interfaces/inner_api",
26    "$WIFI_ROOT_DIR/frameworks/native/interfaces",
27    "$WIFI_ROOT_DIR/base/cRPC/include",
28    "$WIFI_ROOT_DIR/base/utils",
29    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/include",
30    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/net_helper",
31    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/config",
32    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/log",
33    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/utils",
34    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap",
35    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta",
36    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common",
37    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage",
38    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_native/common",
39    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_native/wifi_hal_interface",
40    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_native/client/idl_client",
41    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_native/client/idl_client/idl_interface",
42    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_country_code",
43    "$WIFI_ROOT_DIR/utils/inc",
44    "$WIFI_ROOT_DIR/services/wifi_standard/include",
45    "$WIFI_ROOT_DIR/test/fuzztest/fuzz_common_func",
46  ]
47
48  cflags = [
49    "-g",
50    "-O0",
51    "-Wno-unused-variable",
52    "-fno-omit-frame-pointer",
53  ]
54
55  defines = [
56    "AP_INTF=\"$wifi_feature_with_ap_intf\"",
57    "AP_INSTANCE_MAX_NUM=$wifi_feature_with_ap_num",
58    "private=public",
59    "SUPPORT_NAT",
60  ]
61
62  defines += [ "SUPPORT_RANDOM_MAC_ADDR" ]
63
64  if (is_asan || use_clang_coverage) {
65    defines += [ "DTFUZZ_TEST" ]
66  }
67
68  sources = [
69    "$WIFI_ROOT_DIR/base/utils/xml_parser.cpp",
70    "$WIFI_ROOT_DIR/frameworks/native/src/wifi_p2p_msg.cpp",
71    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_config_use.cpp",
72    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_idle_state.cpp",
73    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_interface.cpp",
74    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_monitor.cpp",
75    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_root_state.cpp",
76    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_service.cpp",
77    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_started_state.cpp",
78    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_state_machine.cpp",
79    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_stations_manager.cpp",
80    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/wifi_ap_nat_manager.cpp",
81    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_channel_helper.cpp",
82    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_cmd_client.cpp",
83    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/net_helper/base_address.cpp",
84    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/net_helper/dhcpd_interface.cpp",
85    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/net_helper/if_config.cpp",
86    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/net_helper/ipv4_address.cpp",
87    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/net_helper/mac_address.cpp",
88    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit/utils/wifi_global_func.cpp",
89    "$WIFI_ROOT_DIR/test/fuzztest/fuzz_common_func/mock_wifi_ap_service.cpp",
90    "wifiap_fuzzer.cpp",
91  ]
92
93  deps = [
94    "$WIFI_ROOT_DIR/base:wifi_base",
95    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common:wifi_common_service",
96    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_native:wifi_native",
97    "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_toolkit:wifi_toolkit",
98    "$WIFI_ROOT_DIR/utils:wifi_utils",
99  ]
100
101  external_deps = [
102    "ability_base:base",
103    "ability_base:want",
104    "c_utils:utils",
105    "dhcp:dhcp_sdk",
106    "hilog:libhilog",
107    "ipc:ipc_single",
108    "jsoncpp:jsoncpp",
109    "libxml2:libxml2",
110    "netmanager_base:net_conn_manager_if",
111  ]
112
113  part_name = "wifi"
114  subsystem_name = "communication"
115}
116