• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 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 */
15import {BusinessError} from "@ohos.base";
16import * as StructTest from "struct_test";
17
18loadLibrary("ani_struct");
19
20let structD: StructTest.StructD = StructTest.getStructD();
21let structE: StructTest.StructE = StructTest.getStructE();
22let structF: StructTest.StructF = StructTest.getStructF();
23let structG: StructTest.StructG = StructTest.getStructG();
24let structDB5: StructTest.SDB5Readonly = StructTest.getSDB5Readonly();
25let structEB: StructTest.SEBReadonly = StructTest.getSEBReadonly();
26function test_struct_dbase5() {
27    let str: StructTest.DBase5 = {
28        param1: 8,
29        param2: 16,
30        param3: 32,
31        param4: 64,
32        param5: "StructD",
33    };
34    structD.structD = str;
35
36    let info = structD.structD;
37
38    console.log("StructTest.StructD: " + str.param1);
39    assertEQ(str.param1, info.param1);
40}
41
42function test_struct_ebigint() {
43    let str: StructTest.EBigint = {
44        param1: true,
45        param2: 16.32f,
46        param3: 32.16,
47        param4: 641632,
48    };
49    structE.structE = str;
50
51    let info = structE.structE;
52
53    console.log("StructTest.StructE: " + str.param1);
54    assertEQ(str.param1, info.param1);
55}
56
57function test_struct_funion() {
58    let str: StructTest.FUnion = {
59        param1: "optionalStr",
60        param2: "unionStr",
61        param3: {"today":"19"}
62    };
63    structF.structF = str;
64
65    let info = structF.structF;
66
67    console.log("StructTest.StructF: " + str.param1);
68    assertEQ(str.param1, info.param1);
69}
70
71function test_struct_array() {
72    let i8Array = new Int8Array([1, -2, 3, -4, 5]);
73    let numbersU8: byte[] = [1, 2, 3, 4, 5];
74    let arrayBuffer = new ArrayBuffer(numbersU8.length);
75    for (let i = 0; i < numbersU8.length; i++) {
76        arrayBuffer.set(i, numbersU8[i]);
77    }
78
79    let str: StructTest.GArray = {
80        param1: i8Array,
81        param2: arrayBuffer
82    };
83    structG.gArray = str;
84    let info = structG.gArray;
85
86    console.log("StructTest.GArray: " + str.param1);
87    console.log("StructTest.GArray: " + info.param1);
88    assertEQ(str.param1[0], info.param1[0]);
89}
90
91function test_struct_addNewCanvas() {
92    let canvas1 = StructTest.addNewCanvas("RedCanvas");
93
94    console.log("canvas1's name is " + canvas1.name);
95    canvas1.r += 255;
96    canvas1.g += 0;
97    canvas1.b += 0;
98    console.log("canvas1's color is " + canvas1.r + "," + canvas1.g + "," + canvas1.b);
99}
100
101function test_struct_dbase5readonly() {
102    let info = structDB5.dB5Readonly;
103
104    console.log("StructTest.DB5Readonly: " + info.param1);
105    assertEQ(info.param1, 1 as byte);
106}
107
108function test_struct_sebreadonly() {
109    let info = structEB.sEBReadonly;
110
111    console.log("StructTest.SEBReadonly: " + info.param1);
112    assertEQ(info.param1, true);
113}
114
115function test_struct_addNewDraw() {
116    let draw = StructTest.addNewDraw("addNewDraw");
117
118    console.log("draw's name is " + draw.name);
119    draw.r += 255;
120    draw.g += 255;
121    draw.b += 255;
122    console.log("draw's color is " + draw.r + "," + draw.g + "," + draw.b);
123}
124
125function main() {
126    let a: StructTest.A = {
127        param1: 1,
128    };
129    let b: StructTest.B = {
130        param1: 2,
131        param2: 3,
132    };
133    let c: StructTest.C = new StructTest.C(4, 5, 6);
134
135    console.log("############## ani_struct start #############");
136    const suite = new ArkTestsuite("BundleManager Tests");
137
138    console.log("a:", a);
139    console.log("b:", b);
140    console.log("c:", c);
141
142    suite.addTest("test_struct_dbase5", test_struct_dbase5);
143    suite.addTest("test_struct_ebigint", test_struct_ebigint);
144    suite.addTest("test_struct_funion", test_struct_funion);
145    suite.addTest("test_struct_array", test_struct_array);
146    suite.addTest("test_struct_addNewCanvas", test_struct_addNewCanvas);
147    suite.addTest("test_struct_dbase5readonly", test_struct_dbase5readonly);
148    suite.addTest("test_struct_sebreadonly", test_struct_sebreadonly);
149    suite.addTest("test_struct_addNewDraw", test_struct_addNewDraw);
150
151    exit(suite.run());
152}