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