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