• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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