• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2025 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14set(ETS_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/arktsconfig.json)
15configure_file(${CMAKE_CURRENT_SOURCE_DIR}/arktsconfig.in.json ${ETS_CONFIG})
16
17panda_ets_interop_js_test(ets_interop_js_test_promise1
18    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
19    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
20    LAUNCHER_ARGS "testPendingPromise"
21)
22
23panda_ets_interop_js_test(ets_interop_js_test_promise2
24    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
25    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
26    LAUNCHER_ARGS "testResolvedPromise"
27)
28
29panda_ets_interop_js_test(ets_interop_js_test_promise3
30    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
31    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
32    LAUNCHER_ARGS "testRejectedPromise"
33)
34
35panda_ets_interop_js_test(ets_interop_js_test_promise4
36    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
37    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
38    LAUNCHER_ARGS "testThenBeforeResolve"
39)
40
41panda_ets_interop_js_test(ets_interop_js_test_promise5
42    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
43    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
44    LAUNCHER_ARGS "testPromiseEmptyThen"
45)
46
47panda_ets_interop_js_test(ets_interop_js_test_promise6
48    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
49    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
50    LAUNCHER_ARGS "testPromiseChain"
51)
52
53panda_ets_interop_js_test(ets_interop_js_test_promise_catch_finally_chain
54    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
55    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
56    LAUNCHER_ARGS "testPromiseCatchFinallyChain"
57)
58
59panda_ets_interop_js_test(ets_interop_js_test_resolve_promise_then_finally
60    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
61    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
62    LAUNCHER_ARGS "testResolvePromiseThenFinally"
63)
64
65panda_ets_interop_js_test(ets_interop_js_test_reject_promise_then_finally
66    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
67    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
68    LAUNCHER_ARGS "testRejectPromiseThenFinally"
69)
70
71panda_ets_interop_js_test(ets_interop_js_test_promise7
72    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
73    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
74    LAUNCHER_ARGS "testReturnPromise" "Panda"
75)
76
77panda_ets_interop_js_test(ets_interop_js_test_promise8
78    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
79    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
80    LAUNCHER_ARGS "testReturnPromiseFromAsync" "Panda"
81)
82
83panda_ets_interop_js_test(ets_interop_js_test_promise9
84    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
85    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_pending_promise_to_js_test.js
86    LAUNCHER_ARGS "then"
87)
88
89panda_ets_interop_js_test(ets_interop_js_test_promise10
90    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
91    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_pending_promise_to_js_test.js
92    LAUNCHER_ARGS "await"
93)
94
95panda_ets_interop_js_test(ets_interop_js_test_promise11
96    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
97    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/await_js_promise.js
98    LAUNCHER_ARGS "pending"
99    COMPILATION_JS_WITH_CJS_ON
100)
101
102panda_ets_interop_js_test(ets_interop_js_test_promise12
103    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
104    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/await_js_promise.js
105    LAUNCHER_ARGS "resolved"
106    COMPILATION_JS_WITH_CJS_ON
107)
108
109panda_ets_interop_js_test(ets_interop_js_test_await_two
110    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
111    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/await_two.js
112    COMPILATION_JS_WITH_CJS_ON
113)
114
115panda_ets_interop_js_test(ets_interop_js_test_await_promise
116    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
117    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
118    LAUNCHER_ARGS "testAwaitPromise"
119)
120
121panda_ets_interop_js_test(ets_interop_js_test_async_bool
122    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
123    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
124    LAUNCHER_ARGS "testAsyncBoolean" true 2
125)
126
127panda_ets_interop_js_test(ets_interop_js_test_async_byte
128    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
129    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
130    LAUNCHER_ARGS "testAsyncByte" 127 2
131)
132
133panda_ets_interop_js_test(ets_interop_js_test_async_char
134    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
135    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
136    LAUNCHER_ARGS "testAsyncChar" "x" 2
137)
138
139panda_ets_interop_js_test(ets_interop_js_test_async_short
140    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
141    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
142    LAUNCHER_ARGS "testAsyncShort" 32767 2
143)
144
145panda_ets_interop_js_test(ets_interop_js_test_async_int
146    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
147    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
148    LAUNCHER_ARGS "testAsyncInt" 5 2
149)
150
151panda_ets_interop_js_test(ets_interop_js_test_async_long
152    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
153    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
154    LAUNCHER_ARGS "testAsyncLong" 9223372036854775807 2
155)
156
157panda_ets_interop_js_test(ets_interop_js_test_async_float
158    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
159    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
160    LAUNCHER_ARGS "testAsyncFloat" 3.14 2
161)
162
163panda_ets_interop_js_test(ets_interop_js_test_async_double
164    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
165    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
166    LAUNCHER_ARGS "testAsyncDouble" 3.2 2
167)
168
169panda_ets_interop_js_test(ets_interop_js_test_async_string
170    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
171    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
172    LAUNCHER_ARGS "testAsyncString" "Panda" 2
173)
174
175panda_ets_interop_js_test(ets_interop_js_test_async_void1
176    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
177    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
178    LAUNCHER_ARGS "testAsyncVoid" "undefined" 2
179)
180
181panda_ets_interop_js_test(ets_interop_js_test_async_void2
182    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
183    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
184    LAUNCHER_ARGS "testAsyncVoidEmpty" "undefined" 2
185)
186
187panda_ets_interop_js_test(ets_interop_js_test_async_void3
188    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
189    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/return_promise_to_js_test.js
190    LAUNCHER_ARGS "testAsyncVoidNothing" "undefined" 2
191)
192
193panda_ets_interop_js_test(ets_interop_js_test_promise_all_empty
194    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
195    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
196    LAUNCHER_ARGS "testPromiseAllEmpty"
197)
198
199panda_ets_interop_js_test(ets_interop_js_test_promise_all_resolved
200    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
201    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
202    LAUNCHER_ARGS "testPromiseAllResolved"
203)
204
205panda_ets_interop_js_test(ets_interop_js_test_promise_all_rejected
206    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
207    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
208    LAUNCHER_ARGS "testPromiseAllRejected"
209)
210
211panda_ets_interop_js_test(ets_interop_js_test_promise_all_raw
212    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
213    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
214    LAUNCHER_ARGS "testPromiseAllRawValues"
215)
216
217panda_ets_interop_js_test(ets_interop_js_test_promise_all_iterable
218    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
219    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
220    LAUNCHER_ARGS "testPromiseAllIterable"
221)
222
223panda_ets_interop_js_test(ets_interop_js_test_promise_allsettled_empty
224    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
225    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
226    LAUNCHER_ARGS "testPromiseAllSettledEmpty"
227)
228
229panda_ets_interop_js_test(ets_interop_js_test_promise_allsettled
230    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
231    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
232    LAUNCHER_ARGS "testPromiseAllSettled"
233)
234
235panda_ets_interop_js_test(ets_interop_js_test_promise_any_empty
236    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
237    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
238    LAUNCHER_ARGS "testPromiseAnyEmpty"
239)
240
241panda_ets_interop_js_test(ets_interop_js_test_promise_any_resolved
242    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
243    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
244    LAUNCHER_ARGS "testPromiseAnyResolved"
245)
246
247panda_ets_interop_js_test(ets_interop_js_test_promise_any_rejected
248    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
249    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
250    LAUNCHER_ARGS "testPromiseAnyRejected"
251)
252
253panda_ets_interop_js_test(ets_interop_js_test_promise_any_raw
254    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
255    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
256    LAUNCHER_ARGS "testPromiseAnyRawValues"
257)
258
259panda_ets_interop_js_test(ets_interop_js_test_promise_any_iterable
260    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
261    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
262    LAUNCHER_ARGS "testPromiseAnyRejected"
263)
264
265panda_ets_interop_js_test(ets_interop_js_test_promise_race_resolved
266    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
267    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
268    LAUNCHER_ARGS "testPromiseRaceResolved"
269)
270
271panda_ets_interop_js_test(ets_interop_js_test_promise_race_rejected
272    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
273    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
274    LAUNCHER_ARGS "testPromiseRaceRejected"
275)
276
277panda_ets_interop_js_test(ets_interop_js_test_to_js_and_back
278    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
279    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_to_js_and_back_test.js
280)
281
282panda_ets_interop_js_test(ets_interop_js_test_to_ets_and_back
283    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
284    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_to_ets_and_back_test.js
285)
286
287panda_ets_interop_js_test(ets_interop_js_test_resolve_js_promise_from_non_main_coro
288    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/resolve_js_promise_from_non_main_coro_test.ets
289    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/resolve_js_promise_from_non_main_coro_test.js
290    LAUNCHER_ARGS "testPromiseResolve"
291)
292
293panda_ets_interop_js_test(ets_interop_js_test_schedule_main_coro
294    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/schedule_main_coro.ets
295    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/schedule_main_coro.js
296)
297
298panda_ets_interop_js_test(ets_interop_js_test_promise_proxy
299    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.ets
300    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.js
301    JS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test_exports.js
302    ETS_CONFIG ${ETS_CONFIG}
303    LAUNCHER_ARGS "testProxyPromise"
304)
305
306panda_ets_interop_js_test(ets_interop_js_test_promise_proxy_with_await
307    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.ets
308    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.js
309    JS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test_exports.js
310    ETS_CONFIG ${ETS_CONFIG}
311    LAUNCHER_ARGS "testAwaitPromiseProxy"
312)
313
314panda_ets_interop_js_test(ets_interop_js_test_promise_proxy_reject
315    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.ets
316    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.js
317    JS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test_exports.js
318    ETS_CONFIG ${ETS_CONFIG}
319    LAUNCHER_ARGS "testProxyPromiseReject"
320)
321
322panda_ets_interop_js_test(ets_interop_js_test_promise_proxy_with_await_reject
323    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.ets
324    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.js
325    JS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test_exports.js
326    ETS_CONFIG ${ETS_CONFIG}
327    LAUNCHER_ARGS "testAwaitPromiseProxyReject"
328)
329
330panda_ets_interop_js_test(ets_interop_js_test_promise_proxy_with_await_reject_fail
331    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.ets
332    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.js
333    JS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test_exports.js
334    ETS_CONFIG ${ETS_CONFIG}
335    LAUNCHER_ARGS "testAwaitPromiseProxyRejectShouldFail"
336)
337
338panda_ets_interop_js_test(ets_interop_js_test_promise_proxy_with_then_await_reject_fail
339    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.ets
340    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test.js
341    JS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_proxy_test_exports.js
342    ETS_CONFIG ${ETS_CONFIG}
343    LAUNCHER_ARGS "testAwaitPromiseProxyThenRejectShouldFail"
344)
345
346panda_ets_interop_js_test(ets_interop_js_test_promise_then_on_rejection
347    ETS_SOURCES ${CMAKE_CURRENT_LIST_DIR}/promise_tests.ets
348    JS_LAUNCHER ${CMAKE_CURRENT_LIST_DIR}/run_promise_test.js
349    LAUNCHER_ARGS "testPromiseThenOnRejection"
350)
351