1da853ecaSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd. 2da853ecaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3da853ecaSopenharmony_ci# you may not use this file except in compliance with the License. 4da853ecaSopenharmony_ci# You may obtain a copy of the License at 5da853ecaSopenharmony_ci# 6da853ecaSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7da853ecaSopenharmony_ci# 8da853ecaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9da853ecaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10da853ecaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11da853ecaSopenharmony_ci# See the License for the specific language governing permissions and 12da853ecaSopenharmony_ci# limitations under the License. 13da853ecaSopenharmony_ci 14da853ecaSopenharmony_ciimport("//build/test.gni") 15da853ecaSopenharmony_ciimport("//foundation/multimedia/av_codec/config.gni") 16da853ecaSopenharmony_ci 17da853ecaSopenharmony_cimodule_output_path = "av_codec/unittest" 18da853ecaSopenharmony_ci 19da853ecaSopenharmony_cidemuxer_unittest_cflags = [ 20da853ecaSopenharmony_ci "-std=c++17", 21da853ecaSopenharmony_ci "-fno-rtti", 22da853ecaSopenharmony_ci "-fno-exceptions", 23da853ecaSopenharmony_ci "-Wall", 24da853ecaSopenharmony_ci "-fno-common", 25da853ecaSopenharmony_ci "-fstack-protector-strong", 26da853ecaSopenharmony_ci "-Wshadow", 27da853ecaSopenharmony_ci "-FPIC", 28da853ecaSopenharmony_ci "-FS", 29da853ecaSopenharmony_ci "-O2", 30da853ecaSopenharmony_ci "-D_FORTIFY_SOURCE=2", 31da853ecaSopenharmony_ci "-fvisibility=hidden", 32da853ecaSopenharmony_ci "-Wformat=2", 33da853ecaSopenharmony_ci "-Wdate-time", 34da853ecaSopenharmony_ci "-Werror", 35da853ecaSopenharmony_ci "-Wextra", 36da853ecaSopenharmony_ci "-Wimplicit-fallthrough", 37da853ecaSopenharmony_ci "-Wsign-compare", 38da853ecaSopenharmony_ci "-Wunused-parameter", 39da853ecaSopenharmony_ci] 40da853ecaSopenharmony_ci 41da853ecaSopenharmony_ci################################################################################################################# 42da853ecaSopenharmony_ciohos_unittest("demuxer_capi_unit_test") { 43da853ecaSopenharmony_ci sanitize = av_codec_test_sanitize 44da853ecaSopenharmony_ci module_out_path = module_output_path 45da853ecaSopenharmony_ci testonly = true 46da853ecaSopenharmony_ci include_dirs = [ 47da853ecaSopenharmony_ci "./", 48da853ecaSopenharmony_ci "./capi", 49da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/inner_api/native", 50da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/kits/c", 51da853ecaSopenharmony_ci "$av_codec_root_dir/frameworks/native/capi/common", 52da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/format_test", 53da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/format_test/capi", 54da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test", 55da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/capi", 56da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock", 57da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 58da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/capi", 59da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/include", 60da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 61da853ecaSopenharmony_ci "$av_codec_root_dir/services/utils/include", 62da853ecaSopenharmony_ci "$av_codec_root_dir/services/media_engine/modules/demuxer", 63da853ecaSopenharmony_ci ] 64da853ecaSopenharmony_ci 65da853ecaSopenharmony_ci cflags = demuxer_unittest_cflags 66da853ecaSopenharmony_ci 67da853ecaSopenharmony_ci if (av_codec_support_demuxer) { 68da853ecaSopenharmony_ci sources = [ 69da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 70da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock.cpp", 71da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock_factory.cpp", 72da853ecaSopenharmony_ci "./capi/demuxer_capi_mock.cpp", 73da853ecaSopenharmony_ci "./capi/demuxer_capi_mock_factory.cpp", 74da853ecaSopenharmony_ci "./demuxer_hevc_unit_test.cpp", 75da853ecaSopenharmony_ci "./demuxer_plugin_manager_test.cpp", 76da853ecaSopenharmony_ci "./demuxer_unit_test.cpp", 77da853ecaSopenharmony_ci "./demuxer_uri_unit_test.cpp", 78da853ecaSopenharmony_ci ] 79da853ecaSopenharmony_ci } 80da853ecaSopenharmony_ci 81da853ecaSopenharmony_ci if (target_cpu == "arm64" || is_emulator) { 82da853ecaSopenharmony_ci av_codec_path = "\"/system/lib64\"" 83da853ecaSopenharmony_ci } else { 84da853ecaSopenharmony_ci av_codec_path = "\"/system/lib\"" 85da853ecaSopenharmony_ci } 86da853ecaSopenharmony_ci defines = [ 87da853ecaSopenharmony_ci "AV_CODEC_PATH=${av_codec_path}", 88da853ecaSopenharmony_ci "DEMUXER_CAPI_UNIT_TEST", 89da853ecaSopenharmony_ci ] 90da853ecaSopenharmony_ci public_deps = 91da853ecaSopenharmony_ci [ "$av_codec_root_dir/test/unittest/common:av_codec_capi_unit_test" ] 92da853ecaSopenharmony_ci deps = [ 93da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/kits/c:capi_packages", 94da853ecaSopenharmony_ci "$av_codec_root_dir/services/engine/base:av_codec_codec_base", 95da853ecaSopenharmony_ci "$av_codec_root_dir/services/media_engine/modules:av_codec_media_engine_modules", 96da853ecaSopenharmony_ci "$av_codec_root_dir/services/utils:av_codec_service_utils", 97da853ecaSopenharmony_ci ] 98da853ecaSopenharmony_ci external_deps = [ 99da853ecaSopenharmony_ci "audio_framework:audio_capturer", 100da853ecaSopenharmony_ci "av_codec:av_codec_client", 101da853ecaSopenharmony_ci "c_utils:utils", 102da853ecaSopenharmony_ci "ffmpeg:libohosffmpeg", 103da853ecaSopenharmony_ci "graphic_surface:surface", 104da853ecaSopenharmony_ci "graphic_surface:sync_fence", 105da853ecaSopenharmony_ci "hilog:libhilog", 106da853ecaSopenharmony_ci "hitrace:libhitracechain", 107da853ecaSopenharmony_ci "init:libbegetutil", 108da853ecaSopenharmony_ci "ipc:ipc_single", 109da853ecaSopenharmony_ci "media_foundation:media_foundation", 110da853ecaSopenharmony_ci "safwk:system_ability_fwk", 111da853ecaSopenharmony_ci ] 112da853ecaSopenharmony_ci if (av_codec_support_drm) { 113da853ecaSopenharmony_ci external_deps += [ 114da853ecaSopenharmony_ci "drm_framework:drm_framework", 115da853ecaSopenharmony_ci "drm_framework:native_drm", 116da853ecaSopenharmony_ci ] 117da853ecaSopenharmony_ci } 118da853ecaSopenharmony_ci 119da853ecaSopenharmony_ci resource_config_file = 120da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 121da853ecaSopenharmony_ci} 122da853ecaSopenharmony_ci 123da853ecaSopenharmony_ci#################################################################################################################muxer 124da853ecaSopenharmony_ciohos_unittest("demuxer_inner_unit_test") { 125da853ecaSopenharmony_ci sanitize = av_codec_test_sanitize 126da853ecaSopenharmony_ci module_out_path = module_output_path 127da853ecaSopenharmony_ci include_dirs = [ 128da853ecaSopenharmony_ci "./", 129da853ecaSopenharmony_ci "./inner", 130da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/inner_api/inner", 131da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/inner_api/native", 132da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/kits/c", 133da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/format_test", 134da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/format_test/inner", 135da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test", 136da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/inner", 137da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock", 138da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 139da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/inner", 140da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/include", 141da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 142da853ecaSopenharmony_ci "$av_codec_root_dir/services/utils/include", 143da853ecaSopenharmony_ci ] 144da853ecaSopenharmony_ci 145da853ecaSopenharmony_ci cflags = demuxer_unittest_cflags 146da853ecaSopenharmony_ci 147da853ecaSopenharmony_ci if (av_codec_support_demuxer) { 148da853ecaSopenharmony_ci sources = [ 149da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 150da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock.cpp", 151da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock_factory.cpp", 152da853ecaSopenharmony_ci "./demuxer_hevc_unit_test.cpp", 153da853ecaSopenharmony_ci "./demuxer_unit_test.cpp", 154da853ecaSopenharmony_ci "./demuxer_uri_unit_test.cpp", 155da853ecaSopenharmony_ci "./inner/demuxer_inner_mock.cpp", 156da853ecaSopenharmony_ci "./inner/demuxer_inner_mock_factory.cpp", 157da853ecaSopenharmony_ci ] 158da853ecaSopenharmony_ci } 159da853ecaSopenharmony_ci 160da853ecaSopenharmony_ci if (target_cpu == "arm64" || is_emulator) { 161da853ecaSopenharmony_ci av_codec_path = "\"/system/lib64\"" 162da853ecaSopenharmony_ci } else { 163da853ecaSopenharmony_ci av_codec_path = "\"/system/lib\"" 164da853ecaSopenharmony_ci } 165da853ecaSopenharmony_ci defines = [ "AV_CODEC_PATH=${av_codec_path}" ] 166da853ecaSopenharmony_ci public_deps = 167da853ecaSopenharmony_ci [ "$av_codec_root_dir/test/unittest/common:av_codec_inner_unit_test" ] 168da853ecaSopenharmony_ci deps = [ "$av_codec_root_dir/services/utils:av_codec_service_utils" ] 169da853ecaSopenharmony_ci external_deps = [ 170da853ecaSopenharmony_ci "av_codec:av_codec_client", 171da853ecaSopenharmony_ci "c_utils:utils", 172da853ecaSopenharmony_ci "graphic_surface:surface", 173da853ecaSopenharmony_ci "hilog:libhilog", 174da853ecaSopenharmony_ci ] 175da853ecaSopenharmony_ci 176da853ecaSopenharmony_ci resource_config_file = 177da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 178da853ecaSopenharmony_ci} 179da853ecaSopenharmony_ci 180da853ecaSopenharmony_ci################################################################################################################# 181da853ecaSopenharmony_ciohos_unittest("demuxer_capi_buffer_unit_test") { 182da853ecaSopenharmony_ci sanitize = av_codec_test_sanitize 183da853ecaSopenharmony_ci module_out_path = module_output_path 184da853ecaSopenharmony_ci include_dirs = [ 185da853ecaSopenharmony_ci "./", 186da853ecaSopenharmony_ci "./capi", 187da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/inner_api/native", 188da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/kits/c", 189da853ecaSopenharmony_ci "$av_codec_root_dir/frameworks/native/capi/common", 190da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/format_test", 191da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/format_test/capi", 192da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test", 193da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/capi", 194da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock", 195da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 196da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/capi", 197da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/include", 198da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 199da853ecaSopenharmony_ci "$av_codec_root_dir/services/utils/include", 200da853ecaSopenharmony_ci ] 201da853ecaSopenharmony_ci 202da853ecaSopenharmony_ci cflags = demuxer_unittest_cflags 203da853ecaSopenharmony_ci 204da853ecaSopenharmony_ci if (av_codec_support_demuxer) { 205da853ecaSopenharmony_ci sources = [ 206da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 207da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock.cpp", 208da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/capi/avsource_capi_mock_factory.cpp", 209da853ecaSopenharmony_ci "./capi/demuxer_capi_buffer_mock.cpp", 210da853ecaSopenharmony_ci "./capi/demuxer_capi_mock_factory.cpp", 211da853ecaSopenharmony_ci "./demuxer_hevc_unit_test.cpp", 212da853ecaSopenharmony_ci "./demuxer_unit_test.cpp", 213da853ecaSopenharmony_ci "./demuxer_uri_unit_test.cpp", 214da853ecaSopenharmony_ci ] 215da853ecaSopenharmony_ci } 216da853ecaSopenharmony_ci 217da853ecaSopenharmony_ci if (target_cpu == "arm64" || is_emulator) { 218da853ecaSopenharmony_ci av_codec_path = "\"/system/lib64\"" 219da853ecaSopenharmony_ci } else { 220da853ecaSopenharmony_ci av_codec_path = "\"/system/lib\"" 221da853ecaSopenharmony_ci } 222da853ecaSopenharmony_ci defines = [ 223da853ecaSopenharmony_ci "AV_CODEC_PATH=${av_codec_path}", 224da853ecaSopenharmony_ci "DEMUXER_CAPI_UNIT_TEST", 225da853ecaSopenharmony_ci "DEMUXER_CAPI_BUFFER_UNIT_TEST", 226da853ecaSopenharmony_ci ] 227da853ecaSopenharmony_ci public_deps = 228da853ecaSopenharmony_ci [ "$av_codec_root_dir/test/unittest/common:av_codec_capi_unit_test" ] 229da853ecaSopenharmony_ci deps = [ 230da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/kits/c:capi_packages", 231da853ecaSopenharmony_ci "$av_codec_root_dir/services/utils:av_codec_service_utils", 232da853ecaSopenharmony_ci ] 233da853ecaSopenharmony_ci external_deps = [ 234da853ecaSopenharmony_ci "av_codec:av_codec_client", 235da853ecaSopenharmony_ci "c_utils:utils", 236da853ecaSopenharmony_ci "graphic_surface:surface", 237da853ecaSopenharmony_ci "hilog:libhilog", 238da853ecaSopenharmony_ci ] 239da853ecaSopenharmony_ci 240da853ecaSopenharmony_ci resource_config_file = 241da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 242da853ecaSopenharmony_ci} 243da853ecaSopenharmony_ci 244da853ecaSopenharmony_ci#################################################################################################################muxer 245da853ecaSopenharmony_ciohos_unittest("demuxer_inner_buffer_unit_test") { 246da853ecaSopenharmony_ci sanitize = av_codec_test_sanitize 247da853ecaSopenharmony_ci module_out_path = module_output_path 248da853ecaSopenharmony_ci include_dirs = [ 249da853ecaSopenharmony_ci "./", 250da853ecaSopenharmony_ci "./inner", 251da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/inner_api/inner", 252da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/inner_api/native", 253da853ecaSopenharmony_ci "$av_codec_root_dir/interfaces/kits/c", 254da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/format_test", 255da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/format_test/inner", 256da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test", 257da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/inner", 258da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock", 259da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock/avmemory", 260da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/common/common_mock/avmemory/inner", 261da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/include", 262da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo", 263da853ecaSopenharmony_ci "$av_codec_root_dir/services/utils/include", 264da853ecaSopenharmony_ci ] 265da853ecaSopenharmony_ci 266da853ecaSopenharmony_ci cflags = demuxer_unittest_cflags 267da853ecaSopenharmony_ci 268da853ecaSopenharmony_ci if (av_codec_support_demuxer) { 269da853ecaSopenharmony_ci sources = [ 270da853ecaSopenharmony_ci "$av_codec_root_dir/test/nativedemo/avdemuxer/server_demo/file_server_demo.cpp", 271da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock.cpp", 272da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/avsource_test/inner/avsource_inner_mock_factory.cpp", 273da853ecaSopenharmony_ci "./demuxer_hevc_unit_test.cpp", 274da853ecaSopenharmony_ci "./demuxer_unit_test.cpp", 275da853ecaSopenharmony_ci "./demuxer_uri_unit_test.cpp", 276da853ecaSopenharmony_ci "./inner/demuxer_inner_buffer_mock.cpp", 277da853ecaSopenharmony_ci "./inner/demuxer_inner_mock_factory.cpp", 278da853ecaSopenharmony_ci ] 279da853ecaSopenharmony_ci } 280da853ecaSopenharmony_ci 281da853ecaSopenharmony_ci if (target_cpu == "arm64" || is_emulator) { 282da853ecaSopenharmony_ci av_codec_path = "\"/system/lib64\"" 283da853ecaSopenharmony_ci } else { 284da853ecaSopenharmony_ci av_codec_path = "\"/system/lib\"" 285da853ecaSopenharmony_ci } 286da853ecaSopenharmony_ci defines = [ "AV_CODEC_PATH=${av_codec_path}" ] 287da853ecaSopenharmony_ci public_deps = 288da853ecaSopenharmony_ci [ "$av_codec_root_dir/test/unittest/common:av_codec_inner_unit_test" ] 289da853ecaSopenharmony_ci deps = [ "$av_codec_root_dir/services/utils:av_codec_service_utils" ] 290da853ecaSopenharmony_ci external_deps = [ 291da853ecaSopenharmony_ci "av_codec:av_codec_client", 292da853ecaSopenharmony_ci "c_utils:utils", 293da853ecaSopenharmony_ci "graphic_surface:surface", 294da853ecaSopenharmony_ci "hilog:libhilog", 295da853ecaSopenharmony_ci ] 296da853ecaSopenharmony_ci 297da853ecaSopenharmony_ci resource_config_file = 298da853ecaSopenharmony_ci "$av_codec_root_dir/test/unittest/resources/ohos_test.xml" 299da853ecaSopenharmony_ci} 300