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