1 /*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "napi/native_api.h"
17 #include <cstdint>
18 #include <hilog/log.h>
19 #include <multimedia/player_framework/native_avcodec_base.h>
20 #include <native_image/native_image.h>
21 #include <native_window/external_window.h>
22 #include <native_buffer/native_buffer.h>
23 #include "nativewindow.h"
24 #include "ace/xcomponent/native_interface_xcomponent.h"
25 #include <string>
26
27 #define SUCCESS 0
28 #define FAIL (-1)
29
30 #define CONSTANT_2147483647 2147483647
31 #define CONSTANT_2147483648 2147483648
32 #define CONSTANT_NEG_2147483647 (-2147483647)
33 #define CONSTANT_NEG_2147483648 (-2147483648)
34 #define CONSTANT_NEG_9223372036854775807 (9223372036854775807)
35 #define CONSTANT_NEG_9223372036854775808 (-9223372036854775808)
36
37
38 #define CONSTANT_0 0
39 #define CONSTANT_1 1
40 #define CONSTANT_2 2
41 #define CONSTANT_3 3
42 #define CONSTANT_4 4
43 #define CONSTANT_5 5
44 #define CONSTANT_6 6
45 #define CONSTANT_7 7
46 #define CONSTANT_8 8
47 #define CONSTANT_60 60
48 #define CONSTANT_2999 2999
49 #define CONSTANT_3000 3000
50 #define CONSTANT_3001 3001
51 #define CONSTANT_998899 998899
52 #define CONSTANT_100 100
53 #define CONSTANT_1000 1000
54 #define CONSTANT_10000 10000
55 #define CONSTANT_100000 100000
56 #define CONSTANT_1000000 1000000
57 #define CONSTANT_10000000 10000000
58 #define CONSTANT_100000000 100000000
59 #define CONSTANT_1000000000 1000000000
60 #define CONSTANT_1999999 1999999
61 #define CONSTANT_99999999 99999999
62 #define CONSTANT_99999999999999999 99999999999999999
63 #define CONSTANT_999999999999999999 999999999999999999
64 #define CONSTANT_40001000 40001000
65 #define CONSTANT_50002000 50002000
66 #define CONSTANT_50102000 50102000
67
68 OH_NativeBuffer_Format bufferFormatType[] = {
69 NATIVEBUFFER_PIXEL_FMT_CLUT8, NATIVEBUFFER_PIXEL_FMT_CLUT1, NATIVEBUFFER_PIXEL_FMT_CLUT4,
70 NATIVEBUFFER_PIXEL_FMT_RGB_565, NATIVEBUFFER_PIXEL_FMT_RGBA_5658, NATIVEBUFFER_PIXEL_FMT_RGBX_4444,
71 NATIVEBUFFER_PIXEL_FMT_RGBA_4444, NATIVEBUFFER_PIXEL_FMT_RGB_444, NATIVEBUFFER_PIXEL_FMT_RGBX_5551,
72 NATIVEBUFFER_PIXEL_FMT_RGBA_5551, NATIVEBUFFER_PIXEL_FMT_RGB_555, NATIVEBUFFER_PIXEL_FMT_RGBX_8888,
73 NATIVEBUFFER_PIXEL_FMT_RGBA_8888, NATIVEBUFFER_PIXEL_FMT_RGB_888, NATIVEBUFFER_PIXEL_FMT_BGR_565,
74 NATIVEBUFFER_PIXEL_FMT_BGRX_4444, NATIVEBUFFER_PIXEL_FMT_BGRA_4444, NATIVEBUFFER_PIXEL_FMT_BGRX_5551,
75 NATIVEBUFFER_PIXEL_FMT_BGRA_5551, NATIVEBUFFER_PIXEL_FMT_BGRX_8888, NATIVEBUFFER_PIXEL_FMT_BGRA_8888,
76 NATIVEBUFFER_PIXEL_FMT_YUV_422_I, NATIVEBUFFER_PIXEL_FMT_YCBCR_422_SP, NATIVEBUFFER_PIXEL_FMT_YCRCB_422_SP,
77 NATIVEBUFFER_PIXEL_FMT_YCBCR_420_SP, NATIVEBUFFER_PIXEL_FMT_YCRCB_420_SP, NATIVEBUFFER_PIXEL_FMT_YCBCR_422_P,
78 NATIVEBUFFER_PIXEL_FMT_YCRCB_422_P, NATIVEBUFFER_PIXEL_FMT_YCBCR_420_P, NATIVEBUFFER_PIXEL_FMT_YCRCB_420_P,
79 NATIVEBUFFER_PIXEL_FMT_YUYV_422_PKG, NATIVEBUFFER_PIXEL_FMT_UYVY_422_PKG, NATIVEBUFFER_PIXEL_FMT_YVYU_422_PKG,
80 NATIVEBUFFER_PIXEL_FMT_VYUY_422_PKG, NATIVEBUFFER_PIXEL_FMT_RGBA_1010102, NATIVEBUFFER_PIXEL_FMT_YCBCR_P010,
81 NATIVEBUFFER_PIXEL_FMT_YCRCB_P010, NATIVEBUFFER_PIXEL_FMT_RAW10, NATIVEBUFFER_PIXEL_FMT_VENDER_MASK,
82 NATIVEBUFFER_PIXEL_FMT_BUTT, NATIVEBUFFER_PIXEL_FMT_BLOB, NATIVEBUFFER_PIXEL_FMT_RGBA16_FLOAT,
83 NATIVEBUFFER_PIXEL_FMT_Y8, NATIVEBUFFER_PIXEL_FMT_Y16,
84 };
85
86 int32_t TransformType[] = {
87 NATIVEBUFFER_ROTATE_NONE, NATIVEBUFFER_ROTATE_90, NATIVEBUFFER_ROTATE_180, NATIVEBUFFER_ROTATE_270,
88 NATIVEBUFFER_FLIP_H, NATIVEBUFFER_FLIP_V, NATIVEBUFFER_FLIP_H_ROT90, NATIVEBUFFER_FLIP_V_ROT90,
89 NATIVEBUFFER_FLIP_H_ROT180, NATIVEBUFFER_FLIP_V_ROT180, NATIVEBUFFER_FLIP_H_ROT270, NATIVEBUFFER_FLIP_V_ROT270,
90 };
91
92 int32_t ColorGamut[] = {
93 NATIVEBUFFER_COLOR_GAMUT_NATIVE, NATIVEBUFFER_COLOR_GAMUT_STANDARD_BT601,
94 NATIVEBUFFER_COLOR_GAMUT_STANDARD_BT709, NATIVEBUFFER_COLOR_GAMUT_DCI_P3,
95 NATIVEBUFFER_COLOR_GAMUT_SRGB, NATIVEBUFFER_COLOR_GAMUT_ADOBE_RGB,
96 NATIVEBUFFER_COLOR_GAMUT_DISPLAY_P3, NATIVEBUFFER_COLOR_GAMUT_BT2020,
97 NATIVEBUFFER_COLOR_GAMUT_BT2100_PQ, NATIVEBUFFER_COLOR_GAMUT_BT2100_HLG,
98 NATIVEBUFFER_COLOR_GAMUT_DISPLAY_BT2020,
99 };
100
101 uint64_t usageType[] = {
102 NATIVEBUFFER_USAGE_CPU_READ, NATIVEBUFFER_USAGE_CPU_WRITE, NATIVEBUFFER_USAGE_MEM_DMA,
103 NATIVEBUFFER_USAGE_HW_RENDER, NATIVEBUFFER_USAGE_HW_TEXTURE, NATIVEBUFFER_USAGE_CPU_READ_OFTEN,
104 NATIVEBUFFER_USAGE_ALIGNMENT_512, NATIVEBUFFER_USAGE_MEM_MMZ_CACHE, NATIVEBUFFER_USAGE_CPU_READ
105 | NATIVEBUFFER_USAGE_CPU_WRITE | NATIVEBUFFER_USAGE_MEM_DMA | NATIVEBUFFER_USAGE_HW_RENDER
106 | NATIVEBUFFER_USAGE_HW_TEXTURE | NATIVEBUFFER_USAGE_CPU_READ_OFTEN
107 | NATIVEBUFFER_USAGE_ALIGNMENT_512 | NATIVEBUFFER_USAGE_MEM_MMZ_CACHE,
108 };
109
DestroyNativeWindowImage(OH_NativeImage * image,OHNativeWindow * window)110 static void DestroyNativeWindowImage(OH_NativeImage *image, OHNativeWindow *window)
111 {
112 OH_NativeWindow_DestroyNativeWindow(window);
113 OH_NativeImage_Destroy(&image);
114 }
115
testNativeWindowNativeWindowHandleOptSetGetFormatNormal(napi_env env,napi_callback_info info)116 napi_value testNativeWindowNativeWindowHandleOptSetGetFormatNormal(napi_env env, napi_callback_info info)
117 {
118 napi_value result = nullptr;
119 InitNativeWindow* initNative = new InitNativeWindow();
120 OHNativeWindow *nativeWindow = nullptr;
121 nativeWindow = initNative->returnNativeWindow();
122 if (nativeWindow == nullptr) {
123 napi_create_int32(env, CONSTANT_998899, &result);
124 return result;
125 }
126 OH_NativeImage *iamge = initNative->returnNativeImage();
127 // OHNativeWindow* nativeWindow;
128 for (int i = 0; i < sizeof(bufferFormatType)/sizeof(bufferFormatType[0]); ++i) {
129 int32_t flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_FORMAT, bufferFormatType[i]);
130 if (flag != 0) {
131 napi_create_int32(env, CONSTANT_1, &result);
132 return result;
133 }
134 int32_t getFormat;
135 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_FORMAT, &getFormat);
136 if (flag != 0) {
137 napi_create_int32(env, CONSTANT_2, &result);
138 return result;
139 }
140 if (getFormat != bufferFormatType[i]) {
141 napi_create_int32(env, CONSTANT_3, &result);
142 return result;
143 }
144 }
145 delete initNative;
146 napi_create_int32(env, SUCCESS, &result);
147 return result;
148 }
149
testNativeWindowNativeWindowHandleOptSetGetFormatAbnormal(napi_env env,napi_callback_info info)150 napi_value testNativeWindowNativeWindowHandleOptSetGetFormatAbnormal(napi_env env, napi_callback_info info)
151 {
152 napi_value result = nullptr;
153 InitNativeWindow* initNative = new InitNativeWindow();
154 OHNativeWindow *nativeWindow = nullptr;
155 nativeWindow = initNative->returnNativeWindow();
156 if (nativeWindow == nullptr) {
157 napi_create_int32(env, CONSTANT_998899, &result);
158 return result;
159 }
160 OH_NativeImage *iamge = initNative->returnNativeImage();
161 int32_t flag;
162 int32_t arr[] = {-CONSTANT_2147483648, -CONSTANT_2147483647, -CONSTANT_1000000, -CONSTANT_100, -CONSTANT_1,
163 CONSTANT_0, CONSTANT_1, CONSTANT_100000, CONSTANT_2147483647};
164
165 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
166 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_FORMAT, arr[i]);
167 if (flag != 0) {
168 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_1, &result);
169 return result;
170 }
171 int32_t format;
172 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_FORMAT, &format);
173 if (flag != 0) {
174 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_2, &result);
175 return result;
176 }
177 if (format != arr[i]) {
178 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_3, &result);
179 return result;
180 }
181 }
182
183 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_FORMAT, "ab%^!#8c");
184 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_FORMAT, CONSTANT_999999999999999999);
185 int32_t flag3 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_FORMAT, NULL);
186 int32_t flag4 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_FORMAT);
187 if (flag1 != 0 || flag2 != 0 || flag3 != 0 || flag4 != 0) {
188 napi_create_int32(env, CONSTANT_10000 + CONSTANT_4, &result);
189 return result;
190 }
191 delete initNative;
192 napi_create_int32(env, SUCCESS, &result);
193 return result;
194 }
195
testNativeWindowNativeWindowHandleOptSetGetUsageNormal(napi_env env,napi_callback_info info)196 napi_value testNativeWindowNativeWindowHandleOptSetGetUsageNormal(napi_env env, napi_callback_info info)
197 {
198 napi_value result = nullptr;
199 InitNativeWindow* initNative = new InitNativeWindow();
200 OHNativeWindow *_nativeWindow = nullptr;
201 _nativeWindow = initNative->returnNativeWindow();
202 if (_nativeWindow == nullptr) {
203 napi_create_int32(env, CONSTANT_998899, &result);
204 return result;
205 }
206 OH_NativeImage *iamge = initNative->returnNativeImage();
207 int code = SET_BUFFER_GEOMETRY;
208 int32_t width_ = 0x100;
209 int32_t height_ = 0x100;
210 OH_NativeWindow_NativeWindowHandleOpt(_nativeWindow, code, width_, height_);
211 for (int i = 0; i < sizeof(usageType)/sizeof(usageType[0]); ++i) {
212 uint64_t getUsage;
213 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(_nativeWindow, SET_USAGE, usageType[i]);
214 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(_nativeWindow, GET_USAGE, &getUsage);
215 if (flag1 != 0 || flag2 != 0) {
216 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_2, &result);
217 return result;
218 }
219 if (getUsage != usageType[i]) {
220 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_3, &result);
221 return result;
222 }
223 }
224 uint64_t arr2[] = {0, 1, 1000, 100000000, 2147483647, 18446744073709551615};
225 for (int i = 0; i < sizeof(arr2) / sizeof(arr2[0]); ++i) {
226 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(_nativeWindow, SET_USAGE, arr2[i]);
227 uint64_t usage;
228 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(_nativeWindow, GET_USAGE, &usage);
229 if (flag1 != 0 || flag2 != 0) {
230 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_5, &result);
231 return result;
232 }
233 if (usage != arr2[i]) {
234 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_6, &result);
235 return result;
236 }
237 }
238 delete initNative;
239 napi_create_int32(env, SUCCESS, &result);
240 return result;
241 }
242
testNativeWindowNativeWindowHandleOptSetGetUsageAbnormal(napi_env env,napi_callback_info info)243 napi_value testNativeWindowNativeWindowHandleOptSetGetUsageAbnormal(napi_env env, napi_callback_info info)
244 {
245 napi_value result = nullptr;
246 InitNativeWindow* initNative = new InitNativeWindow();
247 OHNativeWindow *nativeWindow = nullptr;
248 nativeWindow = initNative->returnNativeWindow();
249 if (nativeWindow == nullptr) {
250 napi_create_int32(env, CONSTANT_998899, &result);
251 return result;
252 }
253 OH_NativeImage *iamge = initNative->returnNativeImage();
254 int32_t flag;
255 unsigned arr[] = {static_cast<unsigned int>(-999999999999999999), static_cast<unsigned int>(-2147483648),
256 static_cast<unsigned int>(-1000), static_cast<unsigned int>(-1),
257 static_cast<unsigned int>(999999999999999999)};
258
259 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
260 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_USAGE, arr[i]);
261 if (flag != 0) {
262 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_1, &result);
263 return result;
264 }
265 uint64_t usage;
266 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_USAGE, &usage);
267 if (flag != 0) {
268 napi_create_int32(env, (i + 1) * CONSTANT_1000 + CONSTANT_2, &result);
269 return result;
270 }
271 }
272
273 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_USAGE, "");
274 if (flag != 0) {
275 napi_create_int32(env, CONSTANT_100000 + CONSTANT_1, &result);
276 return result;
277 }
278 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_USAGE, NULL);
279 if (flag != 0) {
280 napi_create_int32(env, CONSTANT_2 * CONSTANT_100000 + CONSTANT_1, &result);
281 return result;
282 }
283 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_USAGE);
284 if (flag != 0) {
285 napi_create_int32(env, CONSTANT_3 * CONSTANT_100000 + CONSTANT_1, &result);
286 return result;
287 }
288 delete initNative;
289 napi_create_int32(env, SUCCESS, &result);
290 return result;
291 }
292
293
testNativeWindowNativeWindowHandleOptSetGetStrideNormal(napi_env env,napi_callback_info info)294 napi_value testNativeWindowNativeWindowHandleOptSetGetStrideNormal(napi_env env, napi_callback_info info)
295 {
296 napi_value result = nullptr;
297 int32_t flag;
298 InitNativeWindow* initNative = new InitNativeWindow();
299 OHNativeWindow *nativeWindow = nullptr;
300 nativeWindow = initNative->returnNativeWindow();
301 if (nativeWindow == nullptr) {
302 napi_create_int32(env, CONSTANT_998899, &result);
303 return result;
304 }
305 OH_NativeImage *iamge = initNative->returnNativeImage();
306 int32_t arr[] = {-CONSTANT_2147483647, -CONSTANT_1000, -CONSTANT_1, CONSTANT_0,
307 CONSTANT_1, CONSTANT_1000, CONSTANT_2147483647};
308 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
309 int32_t stride;
310 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE, arr[i]);
311 if (flag != 0) {
312 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
313 return result;
314 }
315 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_STRIDE, &stride);
316 if (flag != 0) {
317 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
318 return result;
319 }
320 if (arr[i] != stride) {
321 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_3, &result);
322 return result;
323 }
324 }
325 delete initNative;
326 napi_create_int32(env, SUCCESS, &result);
327 return result;
328 }
329
testNativeWindowNativeWindowHandleOptSetGetStrideAbnormal(napi_env env,napi_callback_info info)330 napi_value testNativeWindowNativeWindowHandleOptSetGetStrideAbnormal(napi_env env, napi_callback_info info)
331 {
332 napi_value result = nullptr;
333 int32_t flag;
334 int32_t stride;
335 InitNativeWindow* initNative = new InitNativeWindow();
336 OHNativeWindow *nativeWindow = nullptr;
337 nativeWindow = initNative->returnNativeWindow();
338 if (nativeWindow == nullptr) {
339 napi_create_int32(env, CONSTANT_998899, &result);
340 return result;
341 }
342 OH_NativeImage *iamge = initNative->returnNativeImage();
343
344 long long arr[] = {-CONSTANT_999999999999999999, static_cast<long long>(CONSTANT_999999999999999999), 1LL << 63};
345 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
346 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE, arr[i]);
347 if (flag != 0) {
348 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
349 return result;
350 }
351 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_STRIDE, &stride);
352 if (flag != 0) {
353 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
354 return result;
355 }
356 }
357 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE, NULL);
358 if (flag != 0) {
359 napi_create_int32(env, CONSTANT_100000 + CONSTANT_1, &result);
360 return result;
361 }
362 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE, "sdasda213!");
363 if (flag != 0) {
364 napi_create_int32(env, CONSTANT_2 * CONSTANT_100000 + CONSTANT_1, &result);
365 return result;
366 }
367 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE);
368 if (flag != 0) {
369 napi_create_int32(env, CONSTANT_3 * CONSTANT_100000 + CONSTANT_1, &result);
370 return result;
371 }
372
373 delete initNative;
374 napi_create_int32(env, SUCCESS, &result);
375 return result;
376 }
377
378
testNativeWindowNativeWindowHandleOptSetGetSwapIntervalNormal(napi_env env,napi_callback_info info)379 napi_value testNativeWindowNativeWindowHandleOptSetGetSwapIntervalNormal(napi_env env, napi_callback_info info)
380 {
381 napi_value result = nullptr;
382 int32_t flag;
383 InitNativeWindow* initNative = new InitNativeWindow();
384 OHNativeWindow *nativeWindow = nullptr;
385 nativeWindow = initNative->returnNativeWindow();
386 if (nativeWindow == nullptr) {
387 napi_create_int32(env, CONSTANT_998899, &result);
388 return result;
389 }
390 OH_NativeImage *iamge = initNative->returnNativeImage();
391
392 int32_t arr[] = {CONSTANT_0, CONSTANT_100, CONSTANT_1000, CONSTANT_10000, CONSTANT_1000000,
393 CONSTANT_1000000000, CONSTANT_2147483647, -CONSTANT_1999999, -CONSTANT_99999999};
394 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
395 int32_t interval;
396 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SWAP_INTERVAL, arr[i]);
397 if (flag != 0) {
398 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
399 return result;
400 }
401 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_SWAP_INTERVAL, &interval);
402 if (flag != 0) {
403 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
404 return result;
405 }
406 }
407
408 delete initNative;
409 napi_create_int32(env, SUCCESS, &result);
410 return result;
411 }
412
testNativeWindowNativeWindowHandleOptSetGetSwapIntervalAbnormal(napi_env env,napi_callback_info info)413 napi_value testNativeWindowNativeWindowHandleOptSetGetSwapIntervalAbnormal(napi_env env, napi_callback_info info)
414 {
415 napi_value result = nullptr;
416 int32_t flag;
417 int32_t stride;
418 InitNativeWindow* initNative = new InitNativeWindow();
419 OHNativeWindow *nativeWindow = nullptr;
420 nativeWindow = initNative->returnNativeWindow();
421 if (nativeWindow == nullptr) {
422 napi_create_int32(env, CONSTANT_998899, &result);
423 return result;
424 }
425 OH_NativeImage *iamge = initNative->returnNativeImage();
426
427 long long arr[] = {-CONSTANT_99999999999999999, static_cast<long long>(CONSTANT_99999999999999999), 1LL << 63};
428 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
429 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE, arr[i]);
430 if (flag != 0) {
431 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
432 return result;
433 }
434 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_STRIDE, &stride);
435 if (flag != 0) {
436 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
437 return result;
438 }
439 }
440 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE, NULL);
441 if (flag != 0) {
442 napi_create_int32(env, CONSTANT_100000 + CONSTANT_1, &result);
443 return result;
444 }
445 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE, "sdasda213!");
446 if (flag != 0) {
447 napi_create_int32(env, CONSTANT_2 * CONSTANT_100000 + CONSTANT_1, &result);
448 return result;
449 }
450 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_STRIDE);
451 if (flag != 0) {
452 napi_create_int32(env, CONSTANT_3 * CONSTANT_100000 + CONSTANT_1, &result);
453 return result;
454 }
455
456 delete initNative;
457 napi_create_int32(env, SUCCESS, &result);
458 return result;
459 }
460
461
testNativeWindowNativeWindowHandleOptSetGetColorGamutNormal(napi_env env,napi_callback_info info)462 napi_value testNativeWindowNativeWindowHandleOptSetGetColorGamutNormal(napi_env env, napi_callback_info info)
463 {
464 napi_value result = nullptr;
465 InitNativeWindow* initNative = new InitNativeWindow();
466 OHNativeWindow *nativeWindow = nullptr;
467 nativeWindow = initNative->returnNativeWindow();
468 if (nativeWindow == nullptr) {
469 napi_create_int32(env, CONSTANT_998899, &result);
470 return result;
471 }
472 OH_NativeImage *iamge = initNative->returnNativeImage();
473
474 for (int i = 0; i < sizeof(ColorGamut) / sizeof(ColorGamut[0]); ++i) {
475 int32_t getColorGamut;
476 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_COLOR_GAMUT, ColorGamut[i]);
477 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_COLOR_GAMUT, &getColorGamut);
478 if (flag1 != 0 || flag2 != 0) {
479 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
480 return result;
481 }
482 if (getColorGamut != ColorGamut[i]) {
483 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
484 return result;
485 }
486 }
487 int32_t arr[] = {-CONSTANT_2147483647, -CONSTANT_1000, -CONSTANT_1, CONSTANT_0,
488 CONSTANT_1, CONSTANT_1000, CONSTANT_2147483647};
489 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
490 int32_t gamut;
491 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_COLOR_GAMUT, arr[i]);
492 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_COLOR_GAMUT, &gamut);
493 if (flag1 != 0 || flag2 != 0) {
494 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_3, &result);
495 return result;
496 }
497 if (arr[i] != gamut) {
498 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_4, &result);
499 return result;
500 }
501 }
502 delete initNative;
503 napi_create_int32(env, SUCCESS, &result);
504 return result;
505 }
506
testNativeWindowNativeWindowHandleOptSetGetColorGamutAbnormal(napi_env env,napi_callback_info info)507 napi_value testNativeWindowNativeWindowHandleOptSetGetColorGamutAbnormal(napi_env env, napi_callback_info info)
508 {
509 napi_value result = nullptr;
510 int32_t flag;
511 int32_t gamut;
512 InitNativeWindow* initNative = new InitNativeWindow();
513 OHNativeWindow *nativeWindow = nullptr;
514 nativeWindow = initNative->returnNativeWindow();
515 if (nativeWindow == nullptr) {
516 napi_create_int32(env, CONSTANT_998899, &result);
517 return result;
518 }
519 OH_NativeImage *iamge = initNative->returnNativeImage();
520
521 long long arr[] = {-CONSTANT_99999999999999999, static_cast<long long>(CONSTANT_99999999999999999), 1LL << 63};
522 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
523 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_COLOR_GAMUT, arr[i]);
524 if (flag != 0) {
525 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
526 return result;
527 }
528 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_COLOR_GAMUT, &gamut);
529 if (flag != 0) {
530 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
531 return result;
532 }
533 }
534 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_COLOR_GAMUT, NULL);
535 if (flag != 0) {
536 napi_create_int32(env, CONSTANT_100000 + CONSTANT_1, &result);
537 return result;
538 }
539 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_COLOR_GAMUT, "sdasda213!");
540 if (flag != 0) {
541 napi_create_int32(env, CONSTANT_2 * CONSTANT_100000 + CONSTANT_1, &result);
542 return result;
543 }
544 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_COLOR_GAMUT);
545 if (flag != 0) {
546 napi_create_int32(env, CONSTANT_3 * CONSTANT_100000 + CONSTANT_1, &result);
547 return result;
548 }
549
550 delete initNative;
551 napi_create_int32(env, SUCCESS, &result);
552 return result;
553 }
554
555
testNativeWindowNativeWindowHandleOptSetGetTransformNormal(napi_env env,napi_callback_info info)556 napi_value testNativeWindowNativeWindowHandleOptSetGetTransformNormal(napi_env env, napi_callback_info info)
557 {
558 napi_value result = nullptr;
559 InitNativeWindow* initNative = new InitNativeWindow();
560 OHNativeWindow *nativeWindow = nullptr;
561 nativeWindow = initNative->returnNativeWindow();
562 if (nativeWindow == nullptr) {
563 napi_create_int32(env, CONSTANT_998899, &result);
564 return result;
565 }
566 OH_NativeImage *iamge = initNative->returnNativeImage();
567 for (int i = 0; i < sizeof(TransformType)/sizeof(TransformType[0]); ++i) {
568 int32_t getTransformType;
569 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_TRANSFORM, TransformType[i]);
570 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_TRANSFORM, &getTransformType);
571 if (flag1 != 0 || flag2 != 0) {
572 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
573 return result;
574 }
575 if (TransformType[i] != getTransformType) {
576 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_3, &result);
577 return result;
578 }
579 }
580 int32_t arr[] = {-CONSTANT_2147483647, -CONSTANT_1000, -CONSTANT_1, CONSTANT_0,
581 CONSTANT_1, CONSTANT_1000, CONSTANT_2147483647};
582 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
583 int32_t transform;
584 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_TRANSFORM, arr[i]);
585 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_TRANSFORM, &transform);
586 if (flag1 != 0 || flag2 != 0) {
587 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_4, &result);
588 return result;
589 }
590 if (arr[i] != transform) {
591 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_5, &result);
592 return result;
593 }
594 }
595
596 delete initNative;
597 napi_create_int32(env, SUCCESS, &result);
598 return result;
599 }
600
testNativeWindowNativeWindowHandleOptSetGetTransformAbnormal(napi_env env,napi_callback_info info)601 napi_value testNativeWindowNativeWindowHandleOptSetGetTransformAbnormal(napi_env env, napi_callback_info info)
602 {
603 napi_value result = nullptr;
604 int32_t flag;
605 int32_t gamut;
606 InitNativeWindow* initNative = new InitNativeWindow();
607 OHNativeWindow *nativeWindow = nullptr;
608 nativeWindow = initNative->returnNativeWindow();
609 if (nativeWindow == nullptr) {
610 napi_create_int32(env, CONSTANT_998899, &result);
611 return result;
612 }
613 OH_NativeImage *iamge = initNative->returnNativeImage();
614
615 long long arr[] = {-CONSTANT_99999999999999999, static_cast<long long>(CONSTANT_99999999999999999), 1LL << 63};
616 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
617 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_TRANSFORM, arr[i]);
618 if (flag != 0) {
619 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
620 return result;
621 }
622 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_TRANSFORM, &gamut);
623 if (flag != 0) {
624 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
625 return result;
626 }
627 }
628 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_TRANSFORM, NULL);
629 if (flag != 0) {
630 napi_create_int32(env, CONSTANT_100000 + CONSTANT_1, &result);
631 return result;
632 }
633 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_TRANSFORM, "sdasda213!");
634 if (flag != 0) {
635 napi_create_int32(env, CONSTANT_2 * CONSTANT_100000 + CONSTANT_1, &result);
636 return result;
637 }
638 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_TRANSFORM);
639 if (flag != 0) {
640 napi_create_int32(env, CONSTANT_3 * CONSTANT_100000 + CONSTANT_1, &result);
641 return result;
642 }
643
644 delete initNative;
645 napi_create_int32(env, SUCCESS, &result);
646 return result;
647 }
648
649
testNativeWindowNativeWindowHandleOptSetUiTimeStampNormal(napi_env env,napi_callback_info info)650 napi_value testNativeWindowNativeWindowHandleOptSetUiTimeStampNormal(napi_env env, napi_callback_info info)
651 {
652 napi_value result = nullptr;
653
654 int32_t flag;
655 InitNativeWindow* initNative = new InitNativeWindow();
656 OHNativeWindow *nativeWindow = nullptr;
657 nativeWindow = initNative->returnNativeWindow();
658 if (nativeWindow == nullptr) {
659 napi_create_int32(env, CONSTANT_998899, &result);
660 return result;
661 }
662 OH_NativeImage *iamge = initNative->returnNativeImage();
663 uint64_t arr[] = {CONSTANT_0, CONSTANT_1, CONSTANT_1000, 1ULL << 63, CONSTANT_999999999999999999,
664 18446744073709551615};
665 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
666 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_UI_TIMESTAMP, arr[i]);
667 if (flag != 0) {
668 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
669 return result;
670 }
671 }
672
673 delete initNative;
674 napi_create_int32(env, SUCCESS, &result);
675 return result;
676 }
677
testNativeWindowNativeWindowHandleOptSetUiTimeStampAbnormal(napi_env env,napi_callback_info info)678 napi_value testNativeWindowNativeWindowHandleOptSetUiTimeStampAbnormal(napi_env env, napi_callback_info info)
679 {
680 napi_value result = nullptr;
681
682 int32_t flag;
683 InitNativeWindow* initNative = new InitNativeWindow();
684 OHNativeWindow *nativeWindow = nullptr;
685 nativeWindow = initNative->returnNativeWindow();
686 if (nativeWindow == nullptr) {
687 napi_create_int32(env, CONSTANT_998899, &result);
688 return result;
689 }
690 OH_NativeImage *iamge = initNative->returnNativeImage();
691 int64_t arr[] = {-CONSTANT_1, -CONSTANT_1000, -CONSTANT_1000000, -922337203685477580};
692 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
693 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_UI_TIMESTAMP, arr[i]);
694 if (flag != 0) {
695 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
696 return result;
697 }
698 }
699 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_UI_TIMESTAMP, "sdasda213!");
700 if (flag != 0) {
701 napi_create_int32(env, CONSTANT_100000 + CONSTANT_1, &result);
702 return result;
703 }
704 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_UI_TIMESTAMP, NULL);
705 if (flag != 0) {
706 napi_create_int32(env, CONSTANT_2 * CONSTANT_100000 + CONSTANT_1, &result);
707 return result;
708 }
709 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_UI_TIMESTAMP);
710 if (flag != 0) {
711 napi_create_int32(env, CONSTANT_3 * CONSTANT_100000 + CONSTANT_1, &result);
712 return result;
713 }
714
715 delete initNative;
716 napi_create_int32(env, SUCCESS, &result);
717 return result;
718 }
719
720
testNativeWindowNativeWindowHandleOptGetBufferQueueSize(napi_env env,napi_callback_info info)721 napi_value testNativeWindowNativeWindowHandleOptGetBufferQueueSize(napi_env env, napi_callback_info info)
722 {
723 napi_value result = nullptr;
724 InitNativeWindow* initNative = new InitNativeWindow();
725 OHNativeWindow *nativeWindow = nullptr;
726 nativeWindow = initNative->returnNativeWindow();
727 if (nativeWindow == nullptr) {
728 napi_create_int32(env, CONSTANT_998899, &result);
729 return result;
730 }
731 OH_NativeImage *iamge = initNative->returnNativeImage();
732 int32_t size;
733
734 int32_t flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_BUFFERQUEUE_SIZE, &size);
735 if (flag != 0) {
736 napi_create_int32(env, CONSTANT_1, &result);
737 return result;
738 }
739 if (size != CONSTANT_3) {
740 napi_create_int32(env, CONSTANT_2, &result);
741 return result;
742 }
743
744 delete initNative;
745 napi_create_int32(env, SUCCESS, &result);
746 return result;
747 }
748
749
testNativeWindowNativeWindowHandleOptSetHdrWhitePointBrightnessNormal(napi_env env,napi_callback_info info)750 napi_value testNativeWindowNativeWindowHandleOptSetHdrWhitePointBrightnessNormal(napi_env env,
751 napi_callback_info info)
752 {
753 napi_value result = nullptr;
754 InitNativeWindow* initNative = new InitNativeWindow();
755 OHNativeWindow *nativeWindow = nullptr;
756 nativeWindow = initNative->returnNativeWindow();
757 if (nativeWindow == nullptr) {
758 napi_create_int32(env, CONSTANT_998899, &result);
759 return result;
760 }
761 OH_NativeImage *iamge = initNative->returnNativeImage();
762 int32_t brightness;
763
764 float arr[] = {0.0f, 0.00001f, 0.5f, 0.123456f, 0.99999f, 1.0f};
765 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
766 int32_t flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_HDR_WHITE_POINT_BRIGHTNESS, brightness);
767 if (flag != 0) {
768 napi_create_int32(env, i + CONSTANT_1, &result);
769 return result;
770 }
771 }
772
773 delete initNative;
774 napi_create_int32(env, SUCCESS, &result);
775 return result;
776 }
777
778
testNativeWindowNativeWindowHandleOptSetHdrWhitePointBrightnessAbnormal(napi_env env,napi_callback_info info)779 napi_value testNativeWindowNativeWindowHandleOptSetHdrWhitePointBrightnessAbnormal(napi_env env,
780 napi_callback_info info)
781 {
782 napi_value result = nullptr;
783 InitNativeWindow* initNative = new InitNativeWindow();
784 OHNativeWindow *nativeWindow = nullptr;
785 nativeWindow = initNative->returnNativeWindow();
786 if (nativeWindow == nullptr) {
787 napi_create_int32(env, CONSTANT_998899, &result);
788 return result;
789 }
790 OH_NativeImage *iamge = initNative->returnNativeImage();
791 int32_t brightness;
792
793 float arr[] = {-0.1f, 1.1f, -CONSTANT_100, 0, CONSTANT_100};
794 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
795 int32_t flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_HDR_WHITE_POINT_BRIGHTNESS, brightness);
796 if (flag != 0) {
797 napi_create_int32(env, i +CONSTANT_1, &result);
798 return result;
799 }
800 }
801 int32_t flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_HDR_WHITE_POINT_BRIGHTNESS, "test123@@#");
802 if (flag != 0) {
803 napi_create_int32(env, CONSTANT_1000 + CONSTANT_1, &result);
804 return result;
805 }
806 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_HDR_WHITE_POINT_BRIGHTNESS);
807 if (flag != 0) {
808 napi_create_int32(env, CONSTANT_1000 + CONSTANT_2, &result);
809 return result;
810 }
811
812 delete initNative;
813 napi_create_int32(env, SUCCESS, &result);
814 return result;
815 }
816
817
testNativeWindowNativeWindowHandleOptSetSdrWhitePointBrightnessNormal(napi_env env,napi_callback_info info)818 napi_value testNativeWindowNativeWindowHandleOptSetSdrWhitePointBrightnessNormal(napi_env env,
819 napi_callback_info info)
820 {
821 napi_value result = nullptr;
822 InitNativeWindow* initNative = new InitNativeWindow();
823 OHNativeWindow *nativeWindow = nullptr;
824 nativeWindow = initNative->returnNativeWindow();
825 if (nativeWindow == nullptr) {
826 napi_create_int32(env, CONSTANT_998899, &result);
827 return result;
828 }
829 OH_NativeImage *iamge = initNative->returnNativeImage();
830 int32_t brightness;
831
832 float arr[] = {0.0f, 0.00001f, 0.5f, 0.123456f, 0.99999f, 1.0f};
833 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
834 int32_t flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SDR_WHITE_POINT_BRIGHTNESS, brightness);
835 if (flag != 0) {
836 napi_create_int32(env, i + CONSTANT_1, &result);
837 return result;
838 }
839 }
840
841 delete initNative;
842 napi_create_int32(env, SUCCESS, &result);
843 return result;
844 }
845
846
testNativeWindowNativeWindowHandleOptSetSdrWhitePointBrightnessAbnormal(napi_env env,napi_callback_info info)847 napi_value testNativeWindowNativeWindowHandleOptSetSdrWhitePointBrightnessAbnormal(napi_env env,
848 napi_callback_info info)
849 {
850 napi_value result = nullptr;
851 InitNativeWindow* initNative = new InitNativeWindow();
852 OHNativeWindow *nativeWindow = nullptr;
853 nativeWindow = initNative->returnNativeWindow();
854 if (nativeWindow == nullptr) {
855 napi_create_int32(env, CONSTANT_998899, &result);
856 return result;
857 }
858 OH_NativeImage *iamge = initNative->returnNativeImage();
859 int32_t brightness;
860
861 float arr[] = {-0.1f, 1.1f, -CONSTANT_100, 0, CONSTANT_100};
862 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
863 int32_t flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SDR_WHITE_POINT_BRIGHTNESS, brightness);
864 if (flag != 0) {
865 napi_create_int32(env, i + CONSTANT_1, &result);
866 return result;
867 }
868 }
869 int32_t flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SDR_WHITE_POINT_BRIGHTNESS, "test123@@#");
870 if (flag != 0) {
871 napi_create_int32(env, CONSTANT_1000 + CONSTANT_1, &result);
872 return result;
873 }
874 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SDR_WHITE_POINT_BRIGHTNESS);
875 if (flag != 0) {
876 napi_create_int32(env, CONSTANT_1000 + CONSTANT_2, &result);
877 return result;
878 }
879
880 delete initNative;
881 napi_create_int32(env, SUCCESS, &result);
882 return result;
883 }
884
885
testNativeWindowNativeWindowHandleOptSetGetSourceTypeNormal(napi_env env,napi_callback_info info)886 napi_value testNativeWindowNativeWindowHandleOptSetGetSourceTypeNormal(napi_env env, napi_callback_info info)
887 {
888 napi_value result = nullptr;
889 InitNativeWindow* initNative = new InitNativeWindow();
890 OHNativeWindow *nativeWindow = nullptr;
891 nativeWindow = initNative->returnNativeWindow();
892 if (nativeWindow == nullptr) {
893 napi_create_int32(env, CONSTANT_998899, &result);
894 return result;
895 }
896 OH_NativeImage *iamge = initNative->returnNativeImage();
897 int32_t SourceType[] = {
898 OH_SURFACE_SOURCE_DEFAULT, OH_SURFACE_SOURCE_UI, OH_SURFACE_SOURCE_GAME,
899 OH_SURFACE_SOURCE_CAMERA, OH_SURFACE_SOURCE_VIDEO,
900 };
901 for (int i = 0; i < sizeof(SourceType)/sizeof(SourceType[i]); ++i) {
902 int32_t getSourceType;
903 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SOURCE_TYPE, SourceType[i]);
904 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_SOURCE_TYPE, &getSourceType);
905 if (flag1 != 0 || flag2 != 0) {
906 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
907 return result;
908 }
909 if (getSourceType != SourceType[i]) {
910 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
911 return result;
912 }
913 }
914 int32_t arr[] = {-2147483647, -1000, -1, 0, 1, 1000, 2147483647};
915 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
916 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SOURCE_TYPE, arr[i]);
917 int32_t sourceType;
918 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_SOURCE_TYPE, &sourceType);
919 if (flag1 != 0 || flag2 != 0) {
920 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_3, &result);
921 return result;
922 }
923 if (sourceType != arr[i]) {
924 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_4, &result);
925 return result;
926 }
927 }
928
929 delete initNative;
930 napi_create_int32(env, SUCCESS, &result);
931 return result;
932 }
933
934
testNativeWindowNativeWindowHandleOptSetGetSourceTypeAbnormal(napi_env env,napi_callback_info info)935 napi_value testNativeWindowNativeWindowHandleOptSetGetSourceTypeAbnormal(napi_env env, napi_callback_info info)
936 {
937 napi_value result = nullptr;
938
939 int32_t flag;
940 InitNativeWindow* initNative = new InitNativeWindow();
941 OHNativeWindow *nativeWindow = nullptr;
942 nativeWindow = initNative->returnNativeWindow();
943 if (nativeWindow == nullptr) {
944 napi_create_int32(env, CONSTANT_998899, &result);
945 return result;
946 }
947 OH_NativeImage *iamge = initNative->returnNativeImage();
948 unsigned arr[] = {static_cast<unsigned int>(-999999999999999999), static_cast<unsigned int>(-2147483648),
949 static_cast<unsigned int>(-1000), static_cast<unsigned int>(-1),
950 static_cast<unsigned int>(999999999999999999)};
951 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
952 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SOURCE_TYPE, arr[i]);
953 if (flag != 0) {
954 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
955 return result;
956 }
957 int32_t sourceType;
958 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_SOURCE_TYPE, &sourceType);
959 if (flag != 0) {
960 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
961 return result;
962 }
963 }
964 int32_t flag1 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SOURCE_TYPE, CONSTANT_999999999999999999);
965 int32_t flag2 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SOURCE_TYPE, "sdasda213!");
966 int32_t flag3 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SOURCE_TYPE, NULL);
967 int32_t flag4 = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_SOURCE_TYPE);
968 if (flag1 != 0 || flag2 != 0 || flag3 != 0 || flag4 != 0) {
969 napi_create_int32(env, CONSTANT_100000 + CONSTANT_3, &result);
970 return result;
971 }
972
973 delete initNative;
974 napi_create_int32(env, SUCCESS, &result);
975 return result;
976 }
977
978
testNativeWindowNativeWindowHandleOptSetGetAppFrameworkTypeNormal(napi_env env,napi_callback_info info)979 napi_value testNativeWindowNativeWindowHandleOptSetGetAppFrameworkTypeNormal(napi_env env, napi_callback_info info)
980 {
981 napi_value result = nullptr;
982 int32_t flag;
983 char *frameworkType;
984 InitNativeWindow* initNative = new InitNativeWindow();
985 OHNativeWindow *nativeWindow = nullptr;
986 nativeWindow = initNative->returnNativeWindow();
987 if (nativeWindow == nullptr) {
988 napi_create_int32(env, CONSTANT_998899, &result);
989 return result;
990 }
991 OH_NativeImage *iamge = initNative->returnNativeImage();
992
993 const char *arr[] = {
994 "", "0123", "natp ", "应用框架", "Test", "!@#$%&*(", "这里一共是二十一个汉字这里一共是二十一个汉"};
995
996 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
997 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_APP_FRAMEWORK_TYPE, arr[i]);
998 if (flag != 0) {
999 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
1000 return result;
1001 }
1002 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_APP_FRAMEWORK_TYPE, &frameworkType);
1003 if (flag != 0) {
1004 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
1005 return result;
1006 }
1007 int com = strcmp(arr[i], frameworkType);
1008 if (com != 0) {
1009 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_3, &result);
1010 return result;
1011 }
1012 }
1013
1014 delete initNative;
1015 napi_create_int32(env, SUCCESS, &result);
1016 return result;
1017 }
1018
1019
testNativeWindowNativeWindowHandleOptSetGetAppFrameworkTypeAbnormal(napi_env env,napi_callback_info info)1020 napi_value testNativeWindowNativeWindowHandleOptSetGetAppFrameworkTypeAbnormal(napi_env env, napi_callback_info info)
1021 {
1022 napi_value result = nullptr;
1023 int32_t flag;
1024 char *frameworkType;
1025 InitNativeWindow* initNative = new InitNativeWindow();
1026 OHNativeWindow *nativeWindow = nullptr;
1027 nativeWindow = initNative->returnNativeWindow();
1028 if (nativeWindow == nullptr) {
1029 napi_create_int32(env, CONSTANT_998899, &result);
1030 return result;
1031 }
1032 OH_NativeImage *iamge = initNative->returnNativeImage();
1033
1034 const char *arr[] = {"这里一共是二十二个汉字这里一共是二十二个汉字",
1035 "abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde"};
1036 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
1037 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_APP_FRAMEWORK_TYPE, arr[i]);
1038 if (flag != 0) {
1039 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
1040 return result;
1041 }
1042 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, GET_APP_FRAMEWORK_TYPE, &frameworkType);
1043 if (flag != 0) {
1044 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
1045 return result;
1046 }
1047 }
1048
1049 delete initNative;
1050 napi_create_int32(env, SUCCESS, &result);
1051 return result;
1052 }
1053
1054
testNativeWindowNativeWindowSetSetScalingModeV2Nullptr(napi_env env,napi_callback_info info)1055 napi_value testNativeWindowNativeWindowSetSetScalingModeV2Nullptr(napi_env env, napi_callback_info info)
1056 {
1057 napi_value result = nullptr;
1058 InitNativeWindow* initNative = new InitNativeWindow();
1059 OHNativeWindow *nativeWindow = nullptr;
1060 nativeWindow = initNative->returnNativeWindow();
1061 if (nativeWindow == nullptr) {
1062 napi_create_int32(env, CONSTANT_998899, &result);
1063 return result;
1064 }
1065 OH_NativeImage *iamge = initNative->returnNativeImage();
1066
1067 int32_t flag = OH_NativeWindow_NativeWindowSetScalingModeV2(nullptr, OH_SCALING_MODE_FREEZE_V2);
1068 if (flag == 0) {
1069 napi_create_int32(env, CONSTANT_1, &result);
1070 return result;
1071 }
1072 flag = OH_NativeWindow_NativeWindowSetScalingModeV2(nativeWindow, static_cast<OHScalingModeV2>(CONSTANT_100));
1073 if (flag == 0) {
1074 napi_create_int32(env, CONSTANT_2, &result);
1075 return result;
1076 }
1077
1078 delete initNative;
1079 napi_create_int32(env, SUCCESS, &result);
1080 return result;
1081 }
1082
1083
testNativeWindowNativeWindowSetScalingModeV2ScalingMode(napi_env env,napi_callback_info info)1084 napi_value testNativeWindowNativeWindowSetScalingModeV2ScalingMode(napi_env env, napi_callback_info info)
1085 {
1086 napi_value result = nullptr;
1087 InitNativeWindow* initNative = new InitNativeWindow();
1088 OHNativeWindow *nativeWindow = nullptr;
1089 nativeWindow = initNative->returnNativeWindow();
1090 if (nativeWindow == nullptr) {
1091 napi_create_int32(env, CONSTANT_998899, &result);
1092 return result;
1093 }
1094 OH_NativeImage *iamge = initNative->returnNativeImage();
1095
1096 int32_t flag;
1097 OHScalingModeV2 arr[] = {OH_SCALING_MODE_FREEZE_V2, OH_SCALING_MODE_SCALE_TO_WINDOW_V2,
1098 OH_SCALING_MODE_SCALE_CROP_V2, OH_SCALING_MODE_NO_SCALE_CROP_V2,
1099 OH_SCALING_MODE_SCALE_FIT_V2};
1100 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
1101 flag = OH_NativeWindow_NativeWindowSetScalingModeV2(nativeWindow, arr[i]);
1102 if (flag != 0) {
1103 napi_create_int32(env, i + CONSTANT_1, &result);
1104 return result;
1105 }
1106 }
1107
1108 delete initNative;
1109 napi_create_int32(env, SUCCESS, &result);
1110 return result;
1111 }
1112
testNativeWindowGetColorSpaceFirst(napi_env env,napi_callback_info info)1113 napi_value testNativeWindowGetColorSpaceFirst(napi_env env, napi_callback_info info)
1114 {
1115 napi_value result = nullptr;
1116 InitNativeWindow* initNative = new InitNativeWindow();
1117 OHNativeWindow *nativeWindow = nullptr;
1118 nativeWindow = initNative->returnNativeWindow();
1119 if (nativeWindow == nullptr) {
1120 napi_create_int32(env, CONSTANT_998899, &result);
1121 return result;
1122 }
1123 OH_NativeImage *iamge = initNative->returnNativeImage();
1124 OHNativeWindowBuffer *windowBuffer = nullptr;
1125 int fenceFd;
1126 int32_t flag = OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow, &windowBuffer, &fenceFd);
1127 if (flag != 0) {
1128 napi_create_int32(env, CONSTANT_1000 + CONSTANT_1, &result);
1129 return result;
1130 }
1131 OH_NativeBuffer_ColorSpace colorSpace;
1132 flag = OH_NativeWindow_GetColorSpace(nativeWindow, &colorSpace);
1133 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1134 napi_create_int32(env, flag, &result);
1135 return result;
1136 }
1137
1138 delete initNative;
1139 napi_create_int32(env, SUCCESS, &result);
1140 return result;
1141 }
1142
testNativeWindowSetColorSpaceNormal(napi_env env,napi_callback_info info)1143 napi_value testNativeWindowSetColorSpaceNormal(napi_env env, napi_callback_info info)
1144 {
1145 napi_value result = nullptr;
1146
1147 int32_t flag;
1148 for (int i = 0; i < sizeof(OH_NativeBuffer_ColorSpace); ++i) {
1149 OH_NativeBuffer_ColorSpace colorspace1 = static_cast<OH_NativeBuffer_ColorSpace>(i);
1150 InitNativeWindow *initNative = new InitNativeWindow();
1151 OHNativeWindow *nativeWindow = nullptr;
1152 nativeWindow = initNative->returnNativeWindow();
1153 if (nativeWindow == nullptr) {
1154 napi_create_int32(env, CONSTANT_998899, &result);
1155 return result;
1156 }
1157 OH_NativeImage *iamge = initNative->returnNativeImage();
1158 OHNativeWindowBuffer *nativeWindowBuffer = nullptr;
1159 int fenceFd;
1160 int32_t res = OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow, &nativeWindowBuffer, &fenceFd);
1161 Region::Rect rect{
1162 .x = 0x100,
1163 .y = 0x100,
1164 .w = 0x100,
1165 .h = 0x100,
1166 };
1167 Region region{.rects = &rect};
1168 res = OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow, nativeWindowBuffer, fenceFd, region);
1169 flag = OH_NativeWindow_SetColorSpace(nativeWindow, colorspace1);
1170 if (flag != 0) {
1171 napi_create_int32(env, CONSTANT_1000 * i + CONSTANT_1, &result);
1172 return result;
1173 }
1174 OH_NativeBuffer_ColorSpace colorSpace;
1175 flag = OH_NativeWindow_GetColorSpace(nativeWindow, &colorSpace);
1176 if (flag != 0) {
1177 napi_create_int32(env, CONSTANT_1000 * i + CONSTANT_2, &result);
1178 return result;
1179 }
1180 if (colorSpace != colorspace1) {
1181 napi_create_int32(env, CONSTANT_1000 * i + CONSTANT_3, &result);
1182 return result;
1183 }
1184
1185 delete initNative;
1186 }
1187
1188 napi_create_int32(env, SUCCESS, &result);
1189 return result;
1190 }
1191
1192
testNativeWindowSetColorSpaceNullptr(napi_env env,napi_callback_info info)1193 napi_value testNativeWindowSetColorSpaceNullptr(napi_env env, napi_callback_info info)
1194 {
1195 napi_value result = nullptr;
1196
1197 int32_t flag = OH_NativeWindow_SetColorSpace(nullptr, OH_COLORSPACE_NONE);
1198 if (flag != CONSTANT_40001000) {
1199 napi_create_int32(env, FAIL, &result);
1200 return result;
1201 }
1202
1203 napi_create_int32(env, SUCCESS, &result);
1204 return result;
1205 }
1206
testNativeWindowSetColorSpaceAbnormal(napi_env env,napi_callback_info info)1207 napi_value testNativeWindowSetColorSpaceAbnormal(napi_env env, napi_callback_info info)
1208 {
1209 napi_value result = nullptr;
1210 InitNativeWindow* initNative = new InitNativeWindow();
1211 OHNativeWindow *nativeWindow = nullptr;
1212 nativeWindow = initNative->returnNativeWindow();
1213 if (nativeWindow == nullptr) {
1214 napi_create_int32(env, CONSTANT_998899, &result);
1215 return result;
1216 }
1217 OH_NativeImage *iamge = initNative->returnNativeImage();
1218
1219 int32_t flag =
1220 OH_NativeWindow_SetColorSpace(nativeWindow, static_cast<OH_NativeBuffer_ColorSpace>(CONSTANT_100000));
1221 if (flag != CONSTANT_40001000) {
1222 napi_create_int32(env, FAIL, &result);
1223 return result;
1224 }
1225
1226 delete initNative;
1227 napi_create_int32(env, SUCCESS, &result);
1228 return result;
1229 }
1230
1231
testNativeWindowGetColorSpaceNullptr(napi_env env,napi_callback_info info)1232 napi_value testNativeWindowGetColorSpaceNullptr(napi_env env, napi_callback_info info)
1233 {
1234 napi_value result = nullptr;
1235
1236 int32_t flag;
1237 OH_NativeBuffer_ColorSpace ret;
1238 flag = OH_NativeWindow_GetColorSpace(nullptr, &ret);
1239 if (flag != CONSTANT_40001000) {
1240 napi_create_int32(env, FAIL, &result);
1241 return result;
1242 }
1243
1244 napi_create_int32(env, SUCCESS, &result);
1245 return result;
1246 }
1247
1248
testNativeWindowGetMetadataValueFirst(napi_env env,napi_callback_info info)1249 napi_value testNativeWindowGetMetadataValueFirst(napi_env env, napi_callback_info info)
1250 {
1251 napi_value result = nullptr;
1252
1253 int32_t flag;
1254 InitNativeWindow* initNative = new InitNativeWindow();
1255 OHNativeWindow *nativeWindow = nullptr;
1256 nativeWindow = initNative->returnNativeWindow();
1257 if (nativeWindow == nullptr) {
1258 napi_create_int32(env, CONSTANT_998899, &result);
1259 return result;
1260 }
1261 OH_NativeImage *iamge = initNative->returnNativeImage();
1262 int32_t ret1;
1263 uint8_t *ret2;
1264 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &ret1, &ret2);
1265 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1266 napi_create_int32(env, FAIL, &result);
1267 return result;
1268 }
1269
1270 delete initNative;
1271 napi_create_int32(env, SUCCESS, &result);
1272 return result;
1273 }
1274
testNativeWindowSetDynamicMetadataValue1(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1275 napi_value testNativeWindowSetDynamicMetadataValue1(napi_env env, napi_callback_info info,
1276 OHNativeWindow *nativeWindow)
1277 {
1278 napi_value result = nullptr;
1279 int32_t bufferSize;
1280 uint8_t *buffer;
1281 int32_t X = -1;
1282 uint8_t metaData[CONSTANT_60];
1283 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, X, metaData);
1284 if (flag != CONSTANT_40001000) {
1285 napi_create_int32(env, CONSTANT_1000 + CONSTANT_1, &result);
1286 return result;
1287 }
1288 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, &bufferSize, &buffer);
1289 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1290 napi_create_int32(env, CONSTANT_1000 + CONSTANT_2, &result);
1291 return result;
1292 }
1293 // 2. X=0 set调用失败 get调用失败
1294 X = 0;
1295 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, X, metaData);
1296 if (flag != CONSTANT_40001000) {
1297 napi_create_int32(env, CONSTANT_2 * CONSTANT_1000 + CONSTANT_1, &result);
1298 return result;
1299 }
1300 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, &bufferSize, &buffer);
1301 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1302 napi_create_int32(env, CONSTANT_2 * CONSTANT_1000 + CONSTANT_2, &result);
1303 return result;
1304 }
1305 return result;
1306 }
1307
testNativeWindowSetDynamicMetadataValue2(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1308 napi_value testNativeWindowSetDynamicMetadataValue2(napi_env env, napi_callback_info info,
1309 OHNativeWindow *nativeWindow)
1310 {
1311 napi_value result = nullptr;
1312 int32_t bufferSize;
1313 uint8_t *buffer;
1314 uint8_t metaData[CONSTANT_60];
1315 int32_t X = 1; // 3. X=1 set调用成功 get调用成功 两者一致
1316 metaData[0] = static_cast<uint8_t>(0);
1317 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, X, metaData);
1318 if (flag != 0) {
1319 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_1, &result);
1320 return result;
1321 }
1322 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, &bufferSize, &buffer);
1323 if (flag != 0) {
1324 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_2, &result);
1325 return result;
1326 }
1327 if (bufferSize != X) {
1328 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_3, &result);
1329 return result;
1330 }
1331 X = CONSTANT_60; // 4. X=60 set调用成功 get调用成功 两者一致
1332 for (int i = 0; i < X; ++i) {
1333 metaData[i] = static_cast<uint8_t>(i);
1334 }
1335 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, CONSTANT_60, metaData);
1336 if (flag != 0) {
1337 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_1, &result);
1338 return result;
1339 }
1340 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, &bufferSize, &buffer);
1341 if (flag != 0) {
1342 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_2, &result);
1343 return result;
1344 }
1345 if (bufferSize != X) {
1346 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_3, &result);
1347 return result;
1348 }
1349 return result;
1350 }
1351
testNativeWindowSetDynamicMetadataValue3(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1352 napi_value testNativeWindowSetDynamicMetadataValue3(napi_env env, napi_callback_info info,
1353 OHNativeWindow *nativeWindow)
1354 {
1355 napi_value result = nullptr;
1356 int32_t bufferSize;
1357 uint8_t *buffer;
1358 uint8_t metaData[CONSTANT_60];
1359 int32_t X = CONSTANT_2999;
1360 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, X, metaData);
1361 if (flag != 0) {
1362 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_1, &result);
1363 return result;
1364 }
1365 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, &bufferSize, &buffer);
1366 if (flag != 0) {
1367 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_2, &result);
1368 return result;
1369 }
1370 if (bufferSize != X) {
1371 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_3, &result);
1372 return result;
1373 }
1374 X = CONSTANT_3000;
1375 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, X, metaData);
1376 if (flag != 0) {
1377 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_1, &result);
1378 return result;
1379 }
1380 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, &bufferSize, &buffer);
1381 if (flag != 0) {
1382 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_2, &result);
1383 return result;
1384 }
1385 if (bufferSize != X) {
1386 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_3, &result);
1387 return result;
1388 }
1389 return result;
1390 }
1391
testNativeWindowSetDynamicMetadataValue4(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1392 napi_value testNativeWindowSetDynamicMetadataValue4(napi_env env, napi_callback_info info,
1393 OHNativeWindow *nativeWindow)
1394 {
1395 napi_value result = nullptr;
1396 int32_t bufferSize;
1397 uint8_t *buffer;
1398 uint8_t metaData[CONSTANT_60];
1399 int32_t X = CONSTANT_3001;
1400 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, X, metaData);
1401 if (flag != CONSTANT_40001000) {
1402 napi_create_int32(env, CONSTANT_7 * CONSTANT_1000 + CONSTANT_1, &result);
1403 return result;
1404 }
1405 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, &bufferSize, &buffer);
1406 if (flag != 0) {
1407 napi_create_int32(env, CONSTANT_7 * CONSTANT_1000 + CONSTANT_2, &result);
1408 return result;
1409 }
1410 X = CONSTANT_100000000;
1411 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, X, metaData);
1412 if (flag != CONSTANT_40001000) {
1413 napi_create_int32(env, CONSTANT_8 * CONSTANT_1000 + CONSTANT_1, &result);
1414 return result;
1415 }
1416 return result;
1417 }
1418
testNativeWindowSetDynamicMetadataValue(napi_env env,napi_callback_info info)1419 napi_value testNativeWindowSetDynamicMetadataValue(napi_env env, napi_callback_info info)
1420 {
1421 napi_value result = nullptr;
1422 InitNativeWindow* initNative = new InitNativeWindow();
1423 OHNativeWindow *nativeWindow = nullptr;
1424 nativeWindow = initNative->returnNativeWindow();
1425 if (nativeWindow == nullptr) {
1426 napi_create_int32(env, CONSTANT_998899, &result);
1427 return result;
1428 }
1429 OH_NativeImage *iamge = initNative->returnNativeImage();
1430 OHNativeWindowBuffer *nativeWindowBuffer = nullptr;
1431 int fenceFd;
1432 int32_t res = OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow, &nativeWindowBuffer, &fenceFd);
1433 Region::Rect rect{.x = 0x100, .y = 0x100, .w = 0x100, .h = 0x100};
1434 Region region{.rects = &rect};
1435 res = OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow, nativeWindowBuffer, fenceFd, region);
1436
1437 result = testNativeWindowSetDynamicMetadataValue1(env, info, nativeWindow);
1438 if (result != nullptr) {
1439 return result;
1440 }
1441 result = testNativeWindowSetDynamicMetadataValue2(env, info, nativeWindow);
1442 if (result != nullptr) {
1443 return result;
1444 }
1445 result = testNativeWindowSetDynamicMetadataValue3(env, info, nativeWindow);
1446 if (result != nullptr) {
1447 return result;
1448 }
1449 result = testNativeWindowSetDynamicMetadataValue4(env, info, nativeWindow);
1450 if (result != nullptr) {
1451 return result;
1452 }
1453
1454 delete initNative;
1455 napi_create_int32(env, SUCCESS, &result);
1456 return result;
1457 }
1458
1459
testNativeWindowSetMetadataValueTimes(napi_env env,napi_callback_info info)1460 napi_value testNativeWindowSetMetadataValueTimes(napi_env env, napi_callback_info info)
1461 {
1462 napi_value result = nullptr;
1463
1464 int32_t flag;
1465 InitNativeWindow* initNative = new InitNativeWindow();
1466 OHNativeWindow *nativeWindow = nullptr;
1467 nativeWindow = initNative->returnNativeWindow();
1468 if (nativeWindow == nullptr) {
1469 napi_create_int32(env, CONSTANT_998899, &result);
1470 return result;
1471 }
1472 OH_NativeImage *iamge = initNative->returnNativeImage();
1473 OHNativeWindowBuffer *nativeWindowBuffer = nullptr;
1474 int fenceFd;
1475 int32_t res = OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow, &nativeWindowBuffer, &fenceFd);
1476 Region::Rect rect{
1477 .x = 0x100,
1478 .y = 0x100,
1479 .w = 0x100,
1480 .h = 0x100,
1481 };
1482 Region region{.rects = &rect};
1483 res = OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow, nativeWindowBuffer, fenceFd, region);
1484 int32_t bufferSize;
1485 uint8_t *buffer;
1486 int32_t X = CONSTANT_60;
1487 uint8_t metaData[X];
1488 for (int j = 0; j < X; ++j) {
1489 metaData[j] = static_cast<uint8_t>(j);
1490 }
1491
1492 for (int i = 0; i < CONSTANT_60; ++i) {
1493 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, X, metaData);
1494 if (flag != 0) {
1495 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
1496 return result;
1497 }
1498 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, &bufferSize, &buffer);
1499 if (flag != 0) {
1500 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_2, &result);
1501 return result;
1502 }
1503 if (bufferSize != X) {
1504 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_3, &result);
1505 return result;
1506 }
1507 }
1508
1509 delete initNative;
1510 napi_create_int32(env, SUCCESS, &result);
1511 return result;
1512 }
1513
1514
testNativeWindowSetStaticMetadataValue1(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1515 napi_value testNativeWindowSetStaticMetadataValue1(napi_env env, napi_callback_info info,
1516 OHNativeWindow *nativeWindow)
1517 {
1518 napi_value result = nullptr;
1519 int32_t bufferSize;
1520 uint8_t *buffer;
1521 uint8_t metaData[CONSTANT_60];
1522 // 1.
1523 int32_t X = -1;
1524 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, X, metaData);
1525 if (flag != CONSTANT_40001000) {
1526 napi_create_int32(env, CONSTANT_1000 + CONSTANT_1, &result);
1527 return result;
1528 }
1529 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, &bufferSize, &buffer);
1530 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1531 napi_create_int32(env, CONSTANT_1000 + CONSTANT_2, &result);
1532 return result;
1533 }
1534 // 2. X=0 set调用失败 get调用失败
1535 X = 0;
1536 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, X, metaData);
1537 if (flag != CONSTANT_40001000) {
1538 napi_create_int32(env, CONSTANT_2 * CONSTANT_1000 + CONSTANT_1, &result);
1539 return result;
1540 }
1541 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, &bufferSize, &buffer);
1542 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1543 napi_create_int32(env, CONSTANT_2 * CONSTANT_1000 + CONSTANT_2, &result);
1544 return result;
1545 }
1546 return result;
1547 }
1548
1549
testNativeWindowSetStaticMetadataValue2(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1550 napi_value testNativeWindowSetStaticMetadataValue2(napi_env env, napi_callback_info info,
1551 OHNativeWindow *nativeWindow)
1552 {
1553 napi_value result = nullptr;
1554 int32_t bufferSize;
1555 uint8_t *buffer;
1556 uint8_t metaData[CONSTANT_60];
1557 int32_t X = 1; // 3. X=1 set调用成功 get调用成功 两者一致
1558 metaData[0] = static_cast<uint8_t>(0);
1559 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, X, metaData);
1560 if (flag != 0) {
1561 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_1, &result);
1562 return result;
1563 }
1564 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, &bufferSize, &buffer);
1565 if (flag != 0) {
1566 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_2, &result);
1567 return result;
1568 }
1569 if (bufferSize != X) {
1570 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_3, &result);
1571 return result;
1572 }
1573 X = CONSTANT_60; // 4.
1574 for (int i = 0; i < X; ++i) {
1575 metaData[i] = static_cast<uint8_t>(i);
1576 }
1577 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, CONSTANT_60, metaData);
1578 if (flag != 0) {
1579 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_1, &result);
1580 return result;
1581 }
1582 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, &bufferSize, &buffer);
1583 if (flag != 0) {
1584 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_2, &result);
1585 return result;
1586 }
1587 if (bufferSize != X) {
1588 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_3, &result);
1589 return result;
1590 }
1591 return result;
1592 }
1593
testNativeWindowSetStaticMetadataValue3(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1594 napi_value testNativeWindowSetStaticMetadataValue3(napi_env env, napi_callback_info info,
1595 OHNativeWindow *nativeWindow)
1596 {
1597 napi_value result = nullptr;
1598 int32_t bufferSize;
1599 uint8_t *buffer;
1600 uint8_t metaData[CONSTANT_60];
1601
1602 int32_t X = CONSTANT_2999;
1603 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, X, metaData);
1604 if (flag != 0) {
1605 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_1, &result);
1606 return result;
1607 }
1608 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, &bufferSize, &buffer);
1609 if (flag != 0) {
1610 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_2, &result);
1611 return result;
1612 }
1613 if (bufferSize != X) {
1614 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_3, &result);
1615 return result;
1616 }
1617 X = CONSTANT_3000;
1618 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, X, metaData);
1619 if (flag != 0) {
1620 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_1, &result);
1621 return result;
1622 }
1623 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, &bufferSize, &buffer);
1624 if (flag != 0) {
1625 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_2, &result);
1626 return result;
1627 }
1628 if (bufferSize != X) {
1629 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_3, &result);
1630 return result;
1631 }
1632 return result;
1633 }
1634
testNativeWindowSetStaticMetadataValue4(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1635 napi_value testNativeWindowSetStaticMetadataValue4(napi_env env, napi_callback_info info,
1636 OHNativeWindow *nativeWindow)
1637 {
1638 napi_value result = nullptr;
1639 int32_t bufferSize;
1640 uint8_t *buffer;
1641 uint8_t metaData[CONSTANT_60];
1642 int32_t X = CONSTANT_3001;
1643 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, X, buffer);
1644 if (flag != CONSTANT_40001000) {
1645 napi_create_int32(env, CONSTANT_7 * CONSTANT_1000 + CONSTANT_1, &result);
1646 return result;
1647 }
1648 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, &bufferSize, &buffer);
1649 if (flag != 0) {
1650 napi_create_int32(env, CONSTANT_7 * CONSTANT_1000 + CONSTANT_2, &result);
1651 return result;
1652 }
1653 X = CONSTANT_100000000;
1654 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_STATIC_METADATA, X, metaData);
1655 if (flag != CONSTANT_40001000) {
1656 napi_create_int32(env, CONSTANT_8 * CONSTANT_1000 + CONSTANT_1, &result);
1657 return result;
1658 }
1659 return result;
1660 }
1661
testNativeWindowSetStaticMetadataValue(napi_env env,napi_callback_info info)1662 napi_value testNativeWindowSetStaticMetadataValue(napi_env env, napi_callback_info info)
1663 {
1664 napi_value result = nullptr;
1665 InitNativeWindow* initNative = new InitNativeWindow();
1666 OHNativeWindow *nativeWindow = nullptr;
1667 nativeWindow = initNative->returnNativeWindow();
1668 if (nativeWindow == nullptr) {
1669 napi_create_int32(env, CONSTANT_998899, &result);
1670 return result;
1671 }
1672 OH_NativeImage *iamge = initNative->returnNativeImage();
1673 OHNativeWindowBuffer *nativeWindowBuffer = nullptr;
1674 int fenceFd;
1675 int32_t res = OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow, &nativeWindowBuffer, &fenceFd);
1676 Region::Rect rect{.x = 0x100, .y = 0x100, .w = 0x100, .h = 0x100};
1677 Region region{.rects = &rect};
1678 res = OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow, nativeWindowBuffer, fenceFd, region);
1679
1680 result = testNativeWindowSetStaticMetadataValue1(env, info, nativeWindow);
1681 if (result != nullptr) {
1682 return result;
1683 }
1684 result = testNativeWindowSetStaticMetadataValue2(env, info, nativeWindow);
1685 if (result != nullptr) {
1686 return result;
1687 }
1688 result = testNativeWindowSetStaticMetadataValue3(env, info, nativeWindow);
1689 if (result != nullptr) {
1690 return result;
1691 }
1692 result = testNativeWindowSetStaticMetadataValue4(env, info, nativeWindow);
1693 if (result != nullptr) {
1694 return result;
1695 }
1696
1697 delete initNative;
1698 napi_create_int32(env, SUCCESS, &result);
1699 return result;
1700 }
1701
testNativeWindowSetMetadataValue1(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1702 napi_value testNativeWindowSetMetadataValue1(napi_env env, napi_callback_info info, OHNativeWindow *nativeWindow)
1703 {
1704 napi_value result = nullptr;
1705 int32_t flag;
1706 int32_t bufferSize;
1707 uint8_t *buffer;
1708 int32_t X = -1;
1709 uint8_t metaData[CONSTANT_60];
1710 // 1.
1711 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, X, metaData);
1712 if (flag != CONSTANT_40001000) {
1713 napi_create_int32(env, CONSTANT_1000 + CONSTANT_1, &result);
1714 return result;
1715 }
1716 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &bufferSize, &buffer);
1717 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1718 napi_create_int32(env, CONSTANT_1000 + CONSTANT_2, &result);
1719 return result;
1720 }
1721 // 2. X=0 set调用失败 get调用失败
1722 X = 0;
1723 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, X, metaData);
1724 if (flag != CONSTANT_40001000) {
1725 napi_create_int32(env, CONSTANT_2 * CONSTANT_1000 + CONSTANT_1, &result);
1726 return result;
1727 }
1728 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &bufferSize, &buffer);
1729 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1730 napi_create_int32(env, CONSTANT_2 * CONSTANT_1000 + CONSTANT_2, &result);
1731 return result;
1732 }
1733 return result;
1734 }
1735
testNativeWindowSetMetadataValue2(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1736 napi_value testNativeWindowSetMetadataValue2(napi_env env, napi_callback_info info, OHNativeWindow *nativeWindow)
1737 {
1738 napi_value result = nullptr;
1739 int32_t bufferSize;
1740 uint8_t *buffer;
1741 int32_t X = 1; // 3. X=1 set调用成功 get调用成功 两者一致
1742 uint8_t metaData[CONSTANT_60];
1743 metaData[0] = static_cast<uint8_t>(X);
1744 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, X, metaData);
1745 if (flag != 0) {
1746 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_1, &result);
1747 return result;
1748 }
1749 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &bufferSize, &buffer);
1750 if (flag != 0) {
1751 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_2, &result);
1752 return result;
1753 }
1754 if (bufferSize != CONSTANT_4) {
1755 napi_create_int32(env, CONSTANT_3 * CONSTANT_1000 + CONSTANT_3, &result);
1756 return result;
1757 }
1758 X = CONSTANT_4; // 4. X=60 set调用成功 get调用成功 两者一致
1759 for (int i = 0; i < X; ++i) {
1760 metaData[i] = static_cast<uint8_t>(i);
1761 }
1762 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, X, metaData);
1763 if (flag != 0) {
1764 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_1, &result);
1765 return result;
1766 }
1767 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &bufferSize, &buffer);
1768 if (flag != 0) {
1769 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_2, &result);
1770 return result;
1771 }
1772 if (bufferSize != CONSTANT_4) {
1773 napi_create_int32(env, CONSTANT_4 * CONSTANT_1000 + CONSTANT_3, &result);
1774 return result;
1775 }
1776 return result;
1777 }
1778
testNativeWindowSetMetadataValue3(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1779 napi_value testNativeWindowSetMetadataValue3(napi_env env, napi_callback_info info, OHNativeWindow *nativeWindow)
1780 {
1781 napi_value result = nullptr;
1782 int32_t flag;
1783 int32_t bufferSize;
1784 uint8_t *buffer;
1785 int32_t X = -1;
1786 uint8_t metaData[CONSTANT_60];
1787 // 5. X=2999 set调用成功 get调用成功 两者一致
1788 X = CONSTANT_2999;
1789 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, X, metaData);
1790 if (flag != 0) {
1791 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_1, &result);
1792 return result;
1793 }
1794 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &bufferSize, &buffer);
1795 if (flag != 0) {
1796 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_2, &result);
1797 return result;
1798 }
1799 if (bufferSize != CONSTANT_4) {
1800 napi_create_int32(env, CONSTANT_5 * CONSTANT_1000 + CONSTANT_3, &result);
1801 return result;
1802 }
1803 // 6. X=3000 set调用成功 get调用成功 两者一致
1804 X = CONSTANT_3000;
1805 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, X, metaData);
1806 if (flag != 0) {
1807 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_1, &result);
1808 return result;
1809 }
1810 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &bufferSize, &buffer);
1811 if (flag != 0) {
1812 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_2, &result);
1813 return result;
1814 }
1815 if (bufferSize != CONSTANT_4) {
1816 napi_create_int32(env, CONSTANT_6 * CONSTANT_1000 + CONSTANT_3, &result);
1817 return result;
1818 }
1819 return result;
1820 }
1821
testNativeWindowSetMetadataValue4(napi_env env,napi_callback_info info,OHNativeWindow * nativeWindow)1822 napi_value testNativeWindowSetMetadataValue4(napi_env env, napi_callback_info info, OHNativeWindow *nativeWindow)
1823 {
1824 napi_value result = nullptr;
1825 int32_t flag;
1826 int32_t bufferSize;
1827 uint8_t *buffer;
1828 int32_t X = -1;
1829 uint8_t metaData[CONSTANT_60];
1830 // 7.
1831 X = CONSTANT_3001;
1832 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, X, metaData);
1833 if (flag != CONSTANT_40001000) {
1834 napi_create_int32(env, CONSTANT_7 * CONSTANT_1000 + CONSTANT_1, &result);
1835 return result;
1836 }
1837 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &bufferSize, &buffer);
1838 if (flag != 0) {
1839 napi_create_int32(env, CONSTANT_7 * CONSTANT_1000 + CONSTANT_2, &result);
1840 return result;
1841 }
1842 // 8. X=100000000 set调用失败 get调用失败
1843 X = CONSTANT_100000000;
1844 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, X, metaData);
1845 if (flag != CONSTANT_40001000) {
1846 napi_create_int32(env, CONSTANT_8 * CONSTANT_1000 + CONSTANT_1, &result);
1847 return result;
1848 }
1849 return result;
1850 }
1851
testNativeWindowSetMetadataValue(napi_env env,napi_callback_info info)1852 napi_value testNativeWindowSetMetadataValue(napi_env env, napi_callback_info info)
1853 {
1854 napi_value result = nullptr;
1855 InitNativeWindow* initNative = new InitNativeWindow();
1856 OHNativeWindow *nativeWindow = nullptr;
1857 nativeWindow = initNative->returnNativeWindow();
1858 if (nativeWindow == nullptr) {
1859 napi_create_int32(env, CONSTANT_998899, &result);
1860 return result;
1861 }
1862 OH_NativeImage *iamge = initNative->returnNativeImage();
1863 OHNativeWindowBuffer *nativeWindowBuffer = nullptr;
1864 int fenceFd;
1865 int32_t flag = OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow, &nativeWindowBuffer, &fenceFd);
1866 Region::Rect rect{.x = 0x100, .y = 0x100, .w = 0x100, .h = 0x100};
1867 Region region{.rects = &rect};
1868 flag = OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow, nativeWindowBuffer, fenceFd, region);
1869
1870 result = testNativeWindowSetMetadataValue1(env, info, nativeWindow);
1871 if (result != nullptr) {
1872 return result;
1873 }
1874 result = testNativeWindowSetMetadataValue2(env, info, nativeWindow);
1875 if (result != nullptr) {
1876 return result;
1877 }
1878 result = testNativeWindowSetMetadataValue3(env, info, nativeWindow);
1879 if (result != nullptr) {
1880 return result;
1881 }
1882 result = testNativeWindowSetMetadataValue4(env, info, nativeWindow);
1883 if (result != nullptr) {
1884 return result;
1885 }
1886
1887 delete initNative;
1888 napi_create_int32(env, SUCCESS, &result);
1889 return result;
1890 }
1891
testNativeWindowSetNullMetadataValue(napi_env env,napi_callback_info info)1892 napi_value testNativeWindowSetNullMetadataValue(napi_env env, napi_callback_info info)
1893 {
1894 napi_value result = nullptr;
1895
1896 int32_t flag;
1897 InitNativeWindow* initNative = new InitNativeWindow();
1898 OHNativeWindow *nativeWindow = nullptr;
1899 nativeWindow = initNative->returnNativeWindow();
1900 if (nativeWindow == nullptr) {
1901 napi_create_int32(env, CONSTANT_998899, &result);
1902 return result;
1903 }
1904 OH_NativeImage *iamge = initNative->returnNativeImage();
1905 uint8_t *buffer = new uint8_t[CONSTANT_60];
1906 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, static_cast<OH_NativeBuffer_MetadataKey>(CONSTANT_1000000),
1907 CONSTANT_60, buffer);
1908 if (flag != CONSTANT_50002000 && flag != CONSTANT_50102000) {
1909 napi_create_int32(env, FAIL, &result);
1910 return result;
1911 }
1912
1913 delete initNative;
1914 napi_create_int32(env, SUCCESS, &result);
1915 return result;
1916 }
1917
1918
testNativeWindowSetMetadataValueNullptr(napi_env env,napi_callback_info info)1919 napi_value testNativeWindowSetMetadataValueNullptr(napi_env env, napi_callback_info info)
1920 {
1921 napi_value result = nullptr;
1922
1923 int32_t flag;
1924 InitNativeWindow* initNative = new InitNativeWindow();
1925 OHNativeWindow *nativeWindow = nullptr;
1926 nativeWindow = initNative->returnNativeWindow();
1927 if (nativeWindow == nullptr) {
1928 napi_create_int32(env, CONSTANT_998899, &result);
1929 return result;
1930 }
1931 OH_NativeImage *iamge = initNative->returnNativeImage();
1932 uint8_t *buffer = new uint8_t[CONSTANT_60];
1933 flag = OH_NativeWindow_SetMetadataValue(nullptr, OH_HDR_DYNAMIC_METADATA, CONSTANT_60, buffer);
1934 if (flag != CONSTANT_40001000) {
1935 napi_create_int32(env, 1, &result);
1936 return result;
1937 }
1938 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, CONSTANT_60, nullptr);
1939 if (flag != CONSTANT_40001000) {
1940 napi_create_int32(env, 1, &result);
1941 return result;
1942 }
1943
1944 delete initNative;
1945 napi_create_int32(env, SUCCESS, &result);
1946 return result;
1947 }
1948
1949
testNativeWindowGetMetadataValueAbnormal(napi_env env,napi_callback_info info)1950 napi_value testNativeWindowGetMetadataValueAbnormal(napi_env env, napi_callback_info info)
1951 {
1952 napi_value result = nullptr;
1953
1954 int32_t flag;
1955 InitNativeWindow* initNative = new InitNativeWindow();
1956 OHNativeWindow *nativeWindow = nullptr;
1957 nativeWindow = initNative->returnNativeWindow();
1958 if (nativeWindow == nullptr) {
1959 napi_create_int32(env, CONSTANT_998899, &result);
1960 return result;
1961 }
1962 OH_NativeImage *iamge = initNative->returnNativeImage();
1963 uint8_t *buffer = new uint8_t[CONSTANT_60];
1964 flag = OH_NativeWindow_SetMetadataValue(nullptr, OH_HDR_DYNAMIC_METADATA, CONSTANT_60, buffer);
1965 if (flag != CONSTANT_40001000) {
1966 napi_create_int32(env, 1, &result);
1967 return result;
1968 }
1969 flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_DYNAMIC_METADATA, CONSTANT_60, nullptr);
1970 if (flag != CONSTANT_40001000) {
1971 napi_create_int32(env, 1, &result);
1972 return result;
1973 }
1974
1975 delete initNative;
1976 napi_create_int32(env, SUCCESS, &result);
1977 return result;
1978 }
1979
testNativeWindowGetMetadataValueNullptr(napi_env env,napi_callback_info info)1980 napi_value testNativeWindowGetMetadataValueNullptr(napi_env env, napi_callback_info info)
1981 {
1982 napi_value result = nullptr;
1983
1984 int32_t flag;
1985 InitNativeWindow* initNative = new InitNativeWindow();
1986 OHNativeWindow *nativeWindow = nullptr;
1987 nativeWindow = initNative->returnNativeWindow();
1988 if (nativeWindow == nullptr) {
1989 napi_create_int32(env, CONSTANT_998899, &result);
1990 return result;
1991 }
1992 OH_NativeImage *iamge = initNative->returnNativeImage();
1993 uint8_t *buffer = new uint8_t[CONSTANT_60];
1994 int32_t ret1;
1995 uint8_t *ret2;
1996 // 1.
1997 flag = OH_NativeWindow_SetMetadataValue(nullptr, OH_HDR_DYNAMIC_METADATA, CONSTANT_60, buffer);
1998 if (flag != CONSTANT_40001000) {
1999 napi_create_int32(env, CONSTANT_1, &result);
2000 return result;
2001 }
2002 // 2.
2003 flag = OH_NativeWindow_GetMetadataValue(nullptr, OH_HDR_DYNAMIC_METADATA, &ret1, nullptr);
2004 if (flag != CONSTANT_40001000) {
2005 napi_create_int32(env, CONSTANT_2, &result);
2006 return result;
2007 }
2008 // 3.
2009 flag = OH_NativeWindow_GetMetadataValue(nullptr, OH_HDR_DYNAMIC_METADATA, nullptr, &ret2);
2010 if (flag != CONSTANT_40001000) {
2011 napi_create_int32(env, CONSTANT_3, &result);
2012 return result;
2013 }
2014 // 4.
2015 flag = OH_NativeWindow_GetMetadataValue(nullptr, OH_HDR_DYNAMIC_METADATA, &ret1, &ret2);
2016 if (flag != CONSTANT_40001000) {
2017 napi_create_int32(env, CONSTANT_4, &result);
2018 return result;
2019 }
2020 delete[] buffer;
2021
2022 delete initNative;
2023 napi_create_int32(env, SUCCESS, &result);
2024 return result;
2025 }
2026
testNativeWindowNativeWindowHandleOptSetDesiredPresentTimeStampNormal(napi_env env,napi_callback_info info)2027 napi_value testNativeWindowNativeWindowHandleOptSetDesiredPresentTimeStampNormal(napi_env env,
2028 napi_callback_info info)
2029 {
2030 napi_value result = nullptr;
2031 int32_t flag;
2032 InitNativeWindow* initNative = new InitNativeWindow();
2033 OHNativeWindow *nativeWindow = nullptr;
2034 nativeWindow = initNative->returnNativeWindow();
2035 if (nativeWindow == nullptr) {
2036 napi_create_int32(env, CONSTANT_998899, &result);
2037 return result;
2038 }
2039 OH_NativeImage *iamge = initNative->returnNativeImage();
2040 uint64_t arr[] = {CONSTANT_1, CONSTANT_1000, CONSTANT_1000000000, 1ULL << 63, CONSTANT_999999999999999999};
2041 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
2042 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_DESIRED_PRESENT_TIMESTAMP, arr[i]);
2043 if (flag != 0) {
2044 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
2045 return result;
2046 }
2047 }
2048
2049 delete initNative;
2050 napi_create_int32(env, SUCCESS, &result);
2051 return result;
2052 }
2053
testNativeWindowNativeWindowHandleOptSetDesiredPresentTimeStampAbNormal(napi_env env,napi_callback_info info)2054 napi_value testNativeWindowNativeWindowHandleOptSetDesiredPresentTimeStampAbNormal(napi_env env,
2055 napi_callback_info info)
2056 {
2057 napi_value result = nullptr;
2058 int32_t flag;
2059 InitNativeWindow* initNative = new InitNativeWindow();
2060 OHNativeWindow *nativeWindow = nullptr;
2061 nativeWindow = initNative->returnNativeWindow();
2062 if (nativeWindow == nullptr) {
2063 napi_create_int32(env, CONSTANT_998899, &result);
2064 return result;
2065 }
2066 OH_NativeImage *iamge = initNative->returnNativeImage();
2067 int64_t arr[] = {CONSTANT_0, -CONSTANT_1, -CONSTANT_1000, -CONSTANT_1000000, CONSTANT_NEG_9223372036854775807};
2068 for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i) {
2069 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_DESIRED_PRESENT_TIMESTAMP, arr[i]);
2070 if (flag != 0) {
2071 napi_create_int32(env, CONSTANT_1000 * (i + 1) + CONSTANT_1, &result);
2072 return result;
2073 }
2074 }
2075 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_DESIRED_PRESENT_TIMESTAMP, "sdasda213!");
2076 if (flag != 0) {
2077 napi_create_int32(env, CONSTANT_100000 + CONSTANT_1, &result);
2078 return result;
2079 }
2080 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_DESIRED_PRESENT_TIMESTAMP, NULL);
2081 if (flag != 0) {
2082 napi_create_int32(env, CONSTANT_2 * CONSTANT_100000 + CONSTANT_1, &result);
2083 return result;
2084 }
2085 flag = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_DESIRED_PRESENT_TIMESTAMP);
2086 if (flag != 0) {
2087 napi_create_int32(env, CONSTANT_3 * CONSTANT_100000 + CONSTANT_1, &result);
2088 return result;
2089 }
2090
2091 delete initNative;
2092 napi_create_int32(env, SUCCESS, &result);
2093 return result;
2094 }
2095
testNativeWindowSetMetadataValue_metadata_type(napi_env env,napi_callback_info info)2096 napi_value testNativeWindowSetMetadataValue_metadata_type(napi_env env, napi_callback_info info)
2097 {
2098 napi_value result = nullptr;
2099 InitNativeWindow* initNative = new InitNativeWindow();
2100 OHNativeWindow *nativeWindow = nullptr;
2101 nativeWindow = initNative->returnNativeWindow();
2102 if (nativeWindow == nullptr) {
2103 napi_create_int32(env, CONSTANT_998899, &result);
2104 return result;
2105 }
2106 OH_NativeImage *iamge = initNative->returnNativeImage();
2107 OH_NativeBuffer_MetadataType hdr_type[] = {OH_VIDEO_HDR_HLG, OH_VIDEO_HDR_HDR10, OH_VIDEO_HDR_VIVID, OH_VIDEO_NONE};
2108 for (int i = 0; i <= sizeof(hdr_type) / sizeof(hdr_type[0]); i++) {
2109 int32_t bufferSize;
2110 uint8_t *buffer;
2111 uint8_t val = hdr_type[i];
2112 int32_t flag = OH_NativeWindow_SetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, sizeof(uint8_t), &val);
2113 if (flag != SUCCESS) {
2114 napi_create_int32(env, CONSTANT_1000 * i + CONSTANT_1, &result);
2115 return result;
2116 }
2117 flag = OH_NativeWindow_GetMetadataValue(nativeWindow, OH_HDR_METADATA_TYPE, &bufferSize, &buffer);
2118 if (*buffer != val) {
2119 napi_create_int32(env, CONSTANT_1000 * i + CONSTANT_2, &result);
2120 return result;
2121 }
2122 }
2123
2124 delete initNative;
2125 napi_create_int32(env, SUCCESS, &result);
2126 return result;
2127 }