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