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