1# Copyright (c) 2023-2024 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 14import("//build/test.gni") 15import("//foundation/multimedia/av_codec/config.gni") 16 17module_output_path = "av_codec/unittest" 18 19demuxer_unittest_cflags = [ 20 "-std=c++17", 21 "-fno-rtti", 22 "-fno-exceptions", 23 "-Wall", 24 "-fno-common", 25 "-fstack-protector-strong", 26 "-Wshadow", 27 "-FPIC", 28 "-FS", 29 "-O2", 30 "-D_FORTIFY_SOURCE=2", 31 "-fvisibility=hidden", 32 "-Wformat=2", 33 "-Wdate-time", 34 "-Werror", 35 "-Wextra", 36 "-Wimplicit-fallthrough", 37 "-Wsign-compare", 38 "-Wunused-parameter", 39 "-Dprivate=public", 40 "-Dprotected=public", 41] 42 43################################################################################################################# 44ohos_unittest("demuxer_capi_unit_test") { 45 sanitize = av_codec_test_sanitize 46 module_out_path = module_output_path 47 testonly = true 48 include_dirs = [ 49 "./", 50 "./capi", 51 "$av_codec_root_dir/interfaces/inner_api/native", 52 "$av_codec_root_dir/interfaces/kits/c", 53 "$av_codec_root_dir/frameworks/native/capi/common", 54 "$av_codec_root_dir/test/unittest/format_test", 55 "$av_codec_root_dir/test/unittest/format_test/capi", 56 "$av_codec_root_dir/test/unittest/avsource_test", 57 "$av_codec_root_dir/test/unittest/avsource_test/capi", 58 "$av_codec_root_dir/test/unittest/common/common_mock", 59 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 60 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/capi", 61 "$av_codec_root_dir/test/nativedemo/include", 62 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 63 "$av_codec_root_dir/services/utils/include", 64 "$av_codec_root_dir/services/media_engine/modules/demuxer", 65 ] 66 67 cflags = demuxer_unittest_cflags 68 69 if (av_codec_support_demuxer) { 70 sources = [ 71 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 72 "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock.cpp", 73 "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock_factory.cpp", 74 "./capi/demuxer_capi_mock.cpp", 75 "./capi/demuxer_capi_mock_factory.cpp", 76 "./demuxer_func_unit_test.cpp", 77 "./demuxer_hevc_unit_test.cpp", 78 "./demuxer_plugin_manager_test.cpp", 79 "./demuxer_unit_test.cpp", 80 "./demuxer_uri_unit_test.cpp", 81 "./demuxer_video_mpg_unit_test.cpp", 82 ] 83 } 84 85 if (target_cpu == "arm64" || is_emulator) { 86 av_codec_path = "\"/system/lib64\"" 87 } else { 88 av_codec_path = "\"/system/lib\"" 89 } 90 defines = [ 91 "AV_CODEC_PATH=${av_codec_path}", 92 "DEMUXER_CAPI_UNIT_TEST", 93 ] 94 defines += av_codec_defines 95 public_deps = 96 [ "$av_codec_root_dir/test/unittest/common:av_codec_capi_unit_test" ] 97 deps = [ 98 "$av_codec_root_dir/interfaces/kits/c:capi_packages", 99 "$av_codec_root_dir/services/engine/base:av_codec_codec_base", 100 "$av_codec_root_dir/services/media_engine/modules:av_codec_media_engine_modules", 101 "$av_codec_root_dir/services/utils:av_codec_service_utils", 102 ] 103 external_deps = [ 104 "audio_framework:audio_capturer", 105 "av_codec:av_codec_client", 106 "c_utils:utils", 107 "ffmpeg:libohosffmpeg", 108 "googletest:gmock_main", 109 "graphic_surface:surface", 110 "graphic_surface:sync_fence", 111 "hilog:libhilog", 112 "hitrace:libhitracechain", 113 "init:libbegetutil", 114 "ipc:ipc_single", 115 "media_foundation:media_foundation", 116 "safwk:system_ability_fwk", 117 ] 118 if (av_codec_support_drm) { 119 external_deps += [ 120 "drm_framework:drm_framework", 121 "drm_framework:native_drm", 122 ] 123 } 124 125 resource_config_file = 126 "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 127} 128 129#################################################################################################################muxer 130ohos_unittest("demuxer_inner_unit_test") { 131 sanitize = av_codec_test_sanitize 132 module_out_path = module_output_path 133 include_dirs = [ 134 "./", 135 "./inner", 136 "$av_codec_root_dir/interfaces/inner_api/inner", 137 "$av_codec_root_dir/interfaces/inner_api/native", 138 "$av_codec_root_dir/interfaces/kits/c", 139 "$av_codec_root_dir/test/unittest/format_test", 140 "$av_codec_root_dir/test/unittest/format_test/inner", 141 "$av_codec_root_dir/test/unittest/avsource_test", 142 "$av_codec_root_dir/test/unittest/avsource_test/inner", 143 "$av_codec_root_dir/test/unittest/common/common_mock", 144 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 145 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/inner", 146 "$av_codec_root_dir/test/nativedemo/include", 147 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 148 "$av_codec_root_dir/services/utils/include", 149 ] 150 151 cflags = demuxer_unittest_cflags 152 153 if (av_codec_support_demuxer) { 154 sources = [ 155 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 156 "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock.cpp", 157 "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock_factory.cpp", 158 "./demuxer_func_unit_test.cpp", 159 "./demuxer_hevc_unit_test.cpp", 160 "./demuxer_unit_test.cpp", 161 "./demuxer_uri_unit_test.cpp", 162 "./demuxer_video_mpg_unit_test.cpp", 163 "./inner/demuxer_inner_mock.cpp", 164 "./inner/demuxer_inner_mock_factory.cpp", 165 ] 166 } 167 168 if (target_cpu == "arm64" || is_emulator) { 169 av_codec_path = "\"/system/lib64\"" 170 } else { 171 av_codec_path = "\"/system/lib\"" 172 } 173 defines = [ "AV_CODEC_PATH=${av_codec_path}" ] 174 public_deps = 175 [ "$av_codec_root_dir/test/unittest/common:av_codec_inner_unit_test" ] 176 deps = [ "$av_codec_root_dir/services/utils:av_codec_service_utils" ] 177 external_deps = [ 178 "av_codec:av_codec_client", 179 "c_utils:utils", 180 "graphic_surface:surface", 181 "hilog:libhilog", 182 "ipc:ipc_single", 183 ] 184 185 resource_config_file = 186 "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 187} 188 189################################################################################################################# 190ohos_unittest("demuxer_capi_buffer_unit_test") { 191 sanitize = av_codec_test_sanitize 192 module_out_path = module_output_path 193 include_dirs = [ 194 "./", 195 "./capi", 196 "$av_codec_root_dir/interfaces/inner_api/native", 197 "$av_codec_root_dir/interfaces/kits/c", 198 "$av_codec_root_dir/frameworks/native/capi/common", 199 "$av_codec_root_dir/test/unittest/format_test", 200 "$av_codec_root_dir/test/unittest/format_test/capi", 201 "$av_codec_root_dir/test/unittest/avsource_test", 202 "$av_codec_root_dir/test/unittest/avsource_test/capi", 203 "$av_codec_root_dir/test/unittest/common/common_mock", 204 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 205 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/capi", 206 "$av_codec_root_dir/test/nativedemo/include", 207 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 208 "$av_codec_root_dir/services/utils/include", 209 ] 210 211 cflags = demuxer_unittest_cflags 212 213 if (av_codec_support_demuxer) { 214 sources = [ 215 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 216 "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock.cpp", 217 "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock_factory.cpp", 218 "./capi/demuxer_capi_buffer_mock.cpp", 219 "./capi/demuxer_capi_mock_factory.cpp", 220 "./demuxer_func_unit_test.cpp", 221 "./demuxer_hevc_unit_test.cpp", 222 "./demuxer_unit_test.cpp", 223 "./demuxer_uri_unit_test.cpp", 224 "./demuxer_video_mpg_unit_test.cpp", 225 ] 226 } 227 228 if (target_cpu == "arm64" || is_emulator) { 229 av_codec_path = "\"/system/lib64\"" 230 } else { 231 av_codec_path = "\"/system/lib\"" 232 } 233 defines = [ 234 "AV_CODEC_PATH=${av_codec_path}", 235 "DEMUXER_CAPI_UNIT_TEST", 236 "DEMUXER_CAPI_BUFFER_UNIT_TEST", 237 ] 238 public_deps = 239 [ "$av_codec_root_dir/test/unittest/common:av_codec_capi_unit_test" ] 240 deps = [ 241 "$av_codec_root_dir/interfaces/kits/c:capi_packages", 242 "$av_codec_root_dir/services/utils:av_codec_service_utils", 243 ] 244 external_deps = [ 245 "av_codec:av_codec_client", 246 "c_utils:utils", 247 "graphic_surface:surface", 248 "hilog:libhilog", 249 "ipc:ipc_single", 250 ] 251 252 resource_config_file = 253 "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 254} 255 256#################################################################################################################muxer 257ohos_unittest("demuxer_inner_buffer_unit_test") { 258 sanitize = av_codec_test_sanitize 259 module_out_path = module_output_path 260 include_dirs = [ 261 "./", 262 "./inner", 263 "$av_codec_root_dir/interfaces/inner_api/inner", 264 "$av_codec_root_dir/interfaces/inner_api/native", 265 "$av_codec_root_dir/interfaces/kits/c", 266 "$av_codec_root_dir/test/unittest/format_test", 267 "$av_codec_root_dir/test/unittest/format_test/inner", 268 "$av_codec_root_dir/test/unittest/avsource_test", 269 "$av_codec_root_dir/test/unittest/avsource_test/inner", 270 "$av_codec_root_dir/test/unittest/common/common_mock", 271 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 272 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/inner", 273 "$av_codec_root_dir/test/nativedemo/include", 274 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 275 "$av_codec_root_dir/services/utils/include", 276 ] 277 278 cflags = demuxer_unittest_cflags 279 280 if (av_codec_support_demuxer) { 281 sources = [ 282 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 283 "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock.cpp", 284 "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock_factory.cpp", 285 "./demuxer_func_unit_test.cpp", 286 "./demuxer_hevc_unit_test.cpp", 287 "./demuxer_unit_test.cpp", 288 "./demuxer_uri_unit_test.cpp", 289 "./demuxer_video_mpg_unit_test.cpp", 290 "./inner/demuxer_inner_buffer_mock.cpp", 291 "./inner/demuxer_inner_mock_factory.cpp", 292 ] 293 } 294 295 if (target_cpu == "arm64" || is_emulator) { 296 av_codec_path = "\"/system/lib64\"" 297 } else { 298 av_codec_path = "\"/system/lib\"" 299 } 300 defines = [ "AV_CODEC_PATH=${av_codec_path}" ] 301 public_deps = 302 [ "$av_codec_root_dir/test/unittest/common:av_codec_inner_unit_test" ] 303 deps = [ "$av_codec_root_dir/services/utils:av_codec_service_utils" ] 304 external_deps = [ 305 "av_codec:av_codec_client", 306 "c_utils:utils", 307 "graphic_surface:surface", 308 "hilog:libhilog", 309 "ipc:ipc_single", 310 ] 311 312 resource_config_file = 313 "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 314} 315