1# Copyright (c) 2023-2025 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/AVCodec_Video/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_base_mock.cpp", 75 "./capi/demuxer_capi_memory_mock.cpp", 76 "./capi/demuxer_capi_mock_factory.cpp", 77 "./demuxer_func_unit_test.cpp", 78 "./demuxer_hevc_unit_test.cpp", 79 "./demuxer_plugin_manager_test.cpp", 80 "./demuxer_unit_test.cpp", 81 "./demuxer_uri_unit_test.cpp", 82 "./demuxer_video_mpg_unit_test.cpp", 83 ] 84 } 85 86 if (target_cpu == "arm64" || is_emulator) { 87 av_codec_path = "\"/system/lib64\"" 88 } else { 89 av_codec_path = "\"/system/lib\"" 90 } 91 defines = [ 92 "AV_CODEC_PATH=${av_codec_path}", 93 "DEMUXER_CAPI_UNIT_TEST", 94 ] 95 defines += av_codec_defines 96 public_deps = 97 [ "$av_codec_root_dir/test/unittest/common:av_codec_capi_unit_test" ] 98 deps = [ 99 "$av_codec_root_dir/interfaces/kits/c:capi_packages", 100 "$av_codec_root_dir/services/engine/base:av_codec_codec_base", 101 "$av_codec_root_dir/services/media_engine/modules:av_codec_media_engine_modules", 102 "$av_codec_root_dir/services/utils:av_codec_service_utils", 103 ] 104 external_deps = [ 105 "audio_framework:audio_capturer", 106 "av_codec:av_codec_client", 107 "c_utils:utils", 108 "ffmpeg:libohosffmpeg", 109 "googletest:gmock_main", 110 "graphic_surface:surface", 111 "graphic_surface:sync_fence", 112 "hilog:libhilog", 113 "hitrace:libhitracechain", 114 "init:libbegetutil", 115 "ipc:ipc_single", 116 "media_foundation:media_foundation", 117 "safwk:system_ability_fwk", 118 ] 119 if (av_codec_support_drm) { 120 external_deps += [ 121 "drm_framework:drm_framework", 122 "drm_framework:native_drm", 123 ] 124 } 125 126 resource_config_file = 127 "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 128} 129 130#################################################################################################################muxer 131ohos_unittest("demuxer_inner_unit_test") { 132 sanitize = av_codec_test_sanitize 133 module_out_path = module_output_path 134 include_dirs = [ 135 "./", 136 "./inner", 137 "$av_codec_root_dir/interfaces/inner_api/inner", 138 "$av_codec_root_dir/interfaces/inner_api/native", 139 "$av_codec_root_dir/interfaces/kits/c", 140 "$av_codec_root_dir/test/unittest/format_test", 141 "$av_codec_root_dir/test/unittest/format_test/inner", 142 "$av_codec_root_dir/test/unittest/avsource_test", 143 "$av_codec_root_dir/test/unittest/avsource_test/inner", 144 "$av_codec_root_dir/test/unittest/common/common_mock", 145 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 146 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/inner", 147 "$av_codec_root_dir/test/nativedemo/include", 148 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 149 "$av_codec_root_dir/services/utils/include", 150 ] 151 152 cflags = demuxer_unittest_cflags 153 154 if (av_codec_support_demuxer) { 155 sources = [ 156 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 157 "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock.cpp", 158 "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock_factory.cpp", 159 "./demuxer_func_unit_test.cpp", 160 "./demuxer_hevc_unit_test.cpp", 161 "./demuxer_inner_func_unit_test.cpp", 162 "./demuxer_unit_test.cpp", 163 "./demuxer_uri_unit_test.cpp", 164 "./demuxer_video_mpg_unit_test.cpp", 165 "./inner/demuxer_inner_base_mock.cpp", 166 "./inner/demuxer_inner_memory_mock.cpp", 167 "./inner/demuxer_inner_mock_factory.cpp", 168 ] 169 } 170 171 if (target_cpu == "arm64" || is_emulator) { 172 av_codec_path = "\"/system/lib64\"" 173 } else { 174 av_codec_path = "\"/system/lib\"" 175 } 176 defines = [ 177 "AV_CODEC_PATH=${av_codec_path}", 178 "DEMUXER_INNER_UNIT_TEST", 179 ] 180 public_deps = 181 [ "$av_codec_root_dir/test/unittest/common:av_codec_inner_unit_test" ] 182 deps = [ "$av_codec_root_dir/services/utils:av_codec_service_utils" ] 183 external_deps = [ 184 "av_codec:av_codec_client", 185 "c_utils:utils", 186 "graphic_surface:surface", 187 "hilog:libhilog", 188 "ipc:ipc_single", 189 ] 190 191 resource_config_file = 192 "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 193} 194 195################################################################################################################# 196ohos_unittest("demuxer_capi_buffer_unit_test") { 197 sanitize = av_codec_test_sanitize 198 module_out_path = module_output_path 199 include_dirs = [ 200 "./", 201 "./capi", 202 "$av_codec_root_dir/interfaces/inner_api/native", 203 "$av_codec_root_dir/interfaces/kits/c", 204 "$av_codec_root_dir/frameworks/native/capi/common", 205 "$av_codec_root_dir/test/unittest/format_test", 206 "$av_codec_root_dir/test/unittest/format_test/capi", 207 "$av_codec_root_dir/test/unittest/avsource_test", 208 "$av_codec_root_dir/test/unittest/avsource_test/capi", 209 "$av_codec_root_dir/test/unittest/common/common_mock", 210 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 211 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/capi", 212 "$av_codec_root_dir/test/nativedemo/include", 213 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 214 "$av_codec_root_dir/services/utils/include", 215 ] 216 217 cflags = demuxer_unittest_cflags 218 219 if (av_codec_support_demuxer) { 220 sources = [ 221 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 222 "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock.cpp", 223 "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock_factory.cpp", 224 "./capi/demuxer_capi_base_mock.cpp", 225 "./capi/demuxer_capi_buffer_mock.cpp", 226 "./capi/demuxer_capi_mock_factory.cpp", 227 "./demuxer_func_unit_test.cpp", 228 "./demuxer_hevc_unit_test.cpp", 229 "./demuxer_unit_test.cpp", 230 "./demuxer_uri_unit_test.cpp", 231 "./demuxer_video_mpg_unit_test.cpp", 232 ] 233 } 234 235 if (target_cpu == "arm64" || is_emulator) { 236 av_codec_path = "\"/system/lib64\"" 237 } else { 238 av_codec_path = "\"/system/lib\"" 239 } 240 defines = [ 241 "AV_CODEC_PATH=${av_codec_path}", 242 "DEMUXER_CAPI_UNIT_TEST", 243 "DEMUXER_CAPI_BUFFER_UNIT_TEST", 244 ] 245 public_deps = 246 [ "$av_codec_root_dir/test/unittest/common:av_codec_capi_unit_test" ] 247 deps = [ 248 "$av_codec_root_dir/interfaces/kits/c:capi_packages", 249 "$av_codec_root_dir/services/utils:av_codec_service_utils", 250 ] 251 external_deps = [ 252 "av_codec:av_codec_client", 253 "c_utils:utils", 254 "graphic_surface:surface", 255 "hilog:libhilog", 256 "ipc:ipc_single", 257 ] 258 259 resource_config_file = 260 "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 261} 262 263#################################################################################################################muxer 264ohos_unittest("demuxer_inner_buffer_unit_test") { 265 sanitize = av_codec_test_sanitize 266 module_out_path = module_output_path 267 include_dirs = [ 268 "./", 269 "./inner", 270 "$av_codec_root_dir/interfaces/inner_api/inner", 271 "$av_codec_root_dir/interfaces/inner_api/native", 272 "$av_codec_root_dir/interfaces/kits/c", 273 "$av_codec_root_dir/test/unittest/format_test", 274 "$av_codec_root_dir/test/unittest/format_test/inner", 275 "$av_codec_root_dir/test/unittest/avsource_test", 276 "$av_codec_root_dir/test/unittest/avsource_test/inner", 277 "$av_codec_root_dir/test/unittest/common/common_mock", 278 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 279 "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/inner", 280 "$av_codec_root_dir/test/nativedemo/include", 281 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 282 "$av_codec_root_dir/services/utils/include", 283 ] 284 285 cflags = demuxer_unittest_cflags 286 287 if (av_codec_support_demuxer) { 288 sources = [ 289 "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 290 "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock.cpp", 291 "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock_factory.cpp", 292 "./demuxer_func_unit_test.cpp", 293 "./demuxer_hevc_unit_test.cpp", 294 "./demuxer_inner_func_unit_test.cpp", 295 "./demuxer_unit_test.cpp", 296 "./demuxer_uri_unit_test.cpp", 297 "./demuxer_video_mpg_unit_test.cpp", 298 "./inner/demuxer_inner_base_mock.cpp", 299 "./inner/demuxer_inner_buffer_mock.cpp", 300 "./inner/demuxer_inner_mock_factory.cpp", 301 ] 302 } 303 304 if (target_cpu == "arm64" || is_emulator) { 305 av_codec_path = "\"/system/lib64\"" 306 } else { 307 av_codec_path = "\"/system/lib\"" 308 } 309 defines = [ 310 "AV_CODEC_PATH=${av_codec_path}", 311 "DEMUXER_INNER_UNIT_TEST", 312 ] 313 public_deps = 314 [ "$av_codec_root_dir/test/unittest/common:av_codec_inner_unit_test" ] 315 deps = [ "$av_codec_root_dir/services/utils:av_codec_service_utils" ] 316 external_deps = [ 317 "av_codec:av_codec_client", 318 "c_utils:utils", 319 "graphic_surface:surface", 320 "hilog:libhilog", 321 "ipc:ipc_single", 322 ] 323 324 resource_config_file = 325 "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 326} 327