1# Copyright (c) 2021-2022 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# Test suite for Panda. 14 15# Targets for running separate suites: 16add_custom_target(cts-assembly COMMENT "Running compliance tests for Panda Assembly") 17add_custom_target(regression COMMENT "Running panda compiler regression tests") 18add_custom_target(cts-aot-tests COMMENT "Running panda aot tests") 19add_custom_target(cts-jit-tests COMMENT "Running panda jit-enforce tests") 20add_custom_target(irtoc-interpreter-tests COMMENT "Running irtoc interpreter tests") 21add_custom_target(irtoc-opcode-suite COMMENT "Running irtoc interpreter opcode test suite") 22 23add_dependencies(tests irtoc-interpreter-tests) 24add_dependencies(irtoc-interpreter-tests irtoc-opcode-suite) 25# TODO(maksenov): disable tests subdirectory for Windows build to remove this condition 26if(NOT PANDA_TARGET_AMD64 OR PANDA_TARGET_WINDOWS) 27 add_dependencies(tests cts-assembly regression) 28 add_subdirectory(cts-coverage-tool) 29else() 30 add_custom_target(verifier-tests COMMENT "Regression tests for verifier") 31 add_dependencies(tests cts-assembly regression cts-generator-build verifier-tests) 32 add_subdirectory(cts-coverage-tool) 33 add_subdirectory(cts-generator) 34endif() 35if (PANDA_TARGET_ARM64) 36 add_custom_target(ecmascript-tests COMMENT "Compiler tests for ECMAScript") 37 add_dependencies(tests ecmascript-tests) 38endif() 39 40if(PANDA_COMPILER_ENABLE) 41 add_subdirectory(checked) 42 add_dependencies(tests checked_tests) 43endif() 44 45# Add a single test run to the build tree. 46# 47# Usage: 48# 49# panda_add_test_run( 50# FILE <source> 51# TARGET <target> 52# [SUBDIR <subdir>] 53# [EXPECTED_STDOUT <out_value>] 54# [SEARCH_DEBUG_STDERR <msg_value>] 55# [DEPENDS <dependency>...] 56# [RUNTIME_OPTIONS <option>...] 57# [COMPILER_OPTIONS <option>...] 58# [GC_OPTIONS <option>] 59# [ARGUMENTS <argument>...] 60# [AOT_MODE TRUE|FALSE] 61# [LANGUAGE_CONTEXT <context>] 62# ) 63# 64# Adds a test run target <target> with <source> 65# 66# Options: 67# 68# SUBDIR 69# Subdirectory in the current binary directory that is used to store build artifacts. 70# Full path to directory with artifacts: ${CMAKE_CURRENT_BINARY_DIR}/<subdir>/<target>-execute 71# 72# EXPECTED_STDOUT 73# Excepted value of test's stdout 74# 75# SEARCH_DEBUG_STDERR 76# Message which is expected to present in stderr output 77# 78# DEPENDS 79# List of additional dependences (exclude assembler and interpreter) 80# 81# RUNTIME_OPTIONS 82# Runtime options 83# 84# COMPILER_OPTIONS 85# Options for compiler, given both to panda and paoc 86# 87# GC_OPTIONS 88# Type of a gc 89# 90# ARGUMENTS 91# List of arguments that will be passed to program's entry point 92# 93# AOT_MODE, LANGUAGE_CONTEXT 94# See panda_add_asm_file 95function(panda_add_test_run) 96 set(prefix ARG) 97 set(singleValues FILE TARGET SUBDIR SEARCH_DEBUG_STDERR AOT_MODE LANGUAGE_CONTEXT GC_OPTIONS) 98 set(multiValues EXPECTED_STDOUT DEPENDS RUNTIME_OPTIONS COMPILER_OPTIONS ARGUMENTS PRLIMIT_OPTIONS) 99 cmake_parse_arguments(${prefix} 100 "${noValues}" 101 "${singleValues}" 102 "${multiValues}" 103 ${ARGN}) 104 105 if (NOT DEFINED ARG_FILE) 106 message(FATAL_ERROR "Mandatory FILE argument is not defined.") 107 endif() 108 109 if (NOT DEFINED ARG_TARGET) 110 message(FATAL_ERROR "Mandatory TARGET argument is not defined.") 111 endif() 112 113 if (TARGET ARG_TARGET) 114 message(FATAL_ERROR "Target ${ARG_TARGET} is already defined.") 115 endif() 116 117 if(DEFINED ARG_GC_OPTIONS) 118 set(ARG_RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS}" "${ARG_GC_OPTIONS}") 119 endif() 120 121 set(output_file) 122 set(error_file) 123 124 panda_add_asm_file( 125 FILE ${ARG_FILE} 126 TARGET ${ARG_TARGET}-execute 127 SUBDIR "${ARG_SUBDIR}" 128 OUTPUT_FILE_VARIABLE output_file 129 ERROR_FILE_VARIABLE error_file 130 LANGUAGE_CONTEXT "${ARG_LANGUAGE_CONTEXT}" 131 AOT_MODE ${ARG_AOT_MODE} 132 DEPENDS "${ARG_DEPENDS}" 133 RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS}" 134 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 135 AOT_GC_OPTION "${ARG_GC_OPTIONS}" 136 ENTRY_ARGUMENTS "${ARG_ARGUMENTS}" 137 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 138 ) 139 140 add_custom_target(${ARG_TARGET} COMMENT "Running ${ARG_TARGET} test") 141 add_dependencies(${ARG_TARGET} ${ARG_TARGET}-execute) 142 143 if (DEFINED ARG_EXPECTED_STDOUT) 144 set(expected_output_file "${output_file}.expected") 145 file(WRITE "${expected_output_file}" "${ARG_EXPECTED_STDOUT}") 146 147 add_custom_target(${ARG_TARGET}-check-stdout 148 COMMENT "Check ${ARG_TARGET} stdout" 149 COMMAND ${CMAKE_COMMAND} -E compare_files "${output_file}" "${expected_output_file}" 150 DEPENDS ${ARG_TARGET}-execute) 151 152 add_dependencies(${ARG_TARGET} ${ARG_TARGET}-check-stdout) 153 endif() 154 155 if (DEFINED ARG_SEARCH_DEBUG_STDERR AND NOT (CMAKE_BUILD_TYPE MATCHES Release)) 156 # TODO: Drop 'grep' usage, there must be some way like: 157 # file(READ "${error_file}" STDERR_AS_STRING) 158 # string(FIND ${STDERR_AS_STRING} ${ARG_SEARCH_DEBUG_STDERR}) 159 # but my cmake knowledge is not enough. 160 161 add_custom_target(${ARG_TARGET}-check-logmsg 162 COMMENT "Check ${ARG_TARGET} log message" 163 COMMAND grep "${ARG_SEARCH_DEBUG_STDERR}" ${error_file} >/dev/null 164 DEPENDS ${ARG_TARGET}-execute) 165 166 add_dependencies(${ARG_TARGET} ${ARG_TARGET}-check-logmsg) 167 endif() 168 169endfunction() 170 171# Add a single test run for verifier to the build tree. 172# 173# Usage: 174# 175# verifier_add_test_run( 176# FILE <source> 177# TARGET <target> 178# [SUBDIR <subdir>] 179# [EXPECTED_STDOUT <out_value>] 180# [SEARCH_STDERR <msg_value>] 181# [DEPENDS <dependency>...] 182# [LANGUAGE_CONTEXT <context>] 183# ) 184# 185# Adds a test run target <target> with <source> 186# 187# Options: 188# 189# SUBDIR 190# Subdirectory in the current binary directory that is used to store build artifacts. 191# Full path to directory with artifacts: ${CMAKE_CURRENT_BINARY_DIR}/<subdir>/<target>-execute 192# 193# EXPECTED_STDOUT 194# Excepted value of test's stdout 195# 196# SEARCH_STDERR 197# Message which is expected to present in stderr output 198# 199# DEPENDS 200# List of additional dependences (exclude assembler and interpreter) 201function(verifier_add_test_run) 202 set(prefix ARG) 203 set(noValues VERIFIER_FAIL_TEST) 204 set(singleValues FILE TARGET SUBDIR LANGUAGE_CONTEXT) 205 set(multiValues RUNTIME_OPTIONS VERIFIER_OPTIONS EXPECTED_STDOUT SEARCH_STDERR DEPENDS) 206 cmake_parse_arguments(${prefix} 207 "${noValues}" 208 "${singleValues}" 209 "${multiValues}" 210 ${ARGN}) 211 212 if (NOT DEFINED ARG_FILE) 213 message(FATAL_ERROR "Mandatory FILE argument is not defined.") 214 endif() 215 216 if (NOT DEFINED ARG_TARGET) 217 message(FATAL_ERROR "Mandatory TARGET argument is not defined.") 218 endif() 219 220 if (TARGET ARG_TARGET) 221 message(FATAL_ERROR "Target ${ARG_TARGET} is already defined.") 222 endif() 223 224 set(output_file) 225 set(error_file) 226 227 if (ARG_VERIFIER_FAIL_TEST) 228 set(VERIFIER_FAIL_TEST VERIFIER_FAIL_TEST) 229 else() 230 set(VERIFIER_FAIL_TEST) 231 endif() 232 233 set(ARG_VERIFIER_OPTIONS "${ARG_VERIFIER_OPTIONS} --config-file=${CMAKE_CURRENT_SOURCE_DIR}/cts-generator/verifier.config") 234 235 verifier_add_asm_file( 236 FILE ${ARG_FILE} 237 TARGET ${ARG_TARGET}-verify 238 SUBDIR "${ARG_SUBDIR}" 239 ${VERIFIER_FAIL_TEST} 240 RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS}" 241 VERIFIER_OPTIONS "${ARG_VERIFIER_OPTIONS}" 242 OUTPUT_FILE_VARIABLE output_file 243 ERROR_FILE_VARIABLE error_file 244 LANGUAGE_CONTEXT "${ARG_LANGUAGE_CONTEXT}" 245 DEPENDS "${ARG_DEPENDS}" 246 ) 247 248 add_custom_target(${ARG_TARGET} COMMENT "Verifying ${ARG_TARGET} test") 249 add_dependencies(${ARG_TARGET} ${ARG_TARGET}-verify) 250 251 if (DEFINED ARG_EXPECTED_STDOUT) 252 set(expected_output_file "${output_file}.expected") 253 file(WRITE "${expected_output_file}" "${ARG_EXPECTED_STDOUT}") 254 255 add_custom_target(${ARG_TARGET}-check-stdout 256 COMMENT "Check ${ARG_TARGET} stdout" 257 COMMAND ${CMAKE_COMMAND} -E compare_files "${output_file}" "${expected_output_file}" 258 DEPENDS ${ARG_TARGET}-verify) 259 260 add_dependencies(${ARG_TARGET} ${ARG_TARGET}-check-stdout) 261 endif() 262 263 if (DEFINED ARG_SEARCH_STDERR AND NOT (CMAKE_BUILD_TYPE MATCHES Release)) 264 # TODO: Drop 'grep' usage, there must be some way like: 265 # file(READ "${error_file}" STDERR_AS_STRING) 266 # string(FIND ${STDERR_AS_STRING} ${ARG_SEARCH_STDERR}) 267 # but my cmake knowledge is not enough. 268 269 add_custom_target(${ARG_TARGET}-check-logmsg 270 COMMENT "Check ${ARG_TARGET} log message" 271 COMMAND grep -zo \"${ARG_SEARCH_STDERR}\" ${error_file} >/dev/null 272 DEPENDS ${ARG_TARGET}-verify) 273 274 add_dependencies(${ARG_TARGET} ${ARG_TARGET}-check-logmsg) 275 endif() 276 277endfunction() 278 279 280# Add a test with default and enforced jit runs 281# 282# Usage: 283# 284# add_test_file( 285# FILE <source> 286# [RUNTIME_OPTIONS <option>...] 287# [COMPILER_OPTIONS <option>...] 288# [ARGUMENTS <argument>...] 289# [EXPECTED_STDOUT <out_value>] 290# [DEBUG_LOG_MESSAGE <msg_value>] 291# [DEBUG_LOG_MESSAGE_ENFORCED_JIT <jit_msg_value>] 292# [DISABLE_LIMIT_STD_ALLOC] 293# [SKIP_AOT] 294# [SKIP_OSR] 295# [SKIP_VERIFICATION] 296# [SKIP_INTERPRETER_IRTOC] 297# [SKIP_CROSS] 298# ) 299# 300# Adds a test <source> 301# 302# Options: 303# 304# RUNTIME_OPTIONS 305# Runtime options 306# 307# COMPILER_OPTIONS 308# Options for compiler, given both to panda and paoc 309# 310# ARGUMENTS 311# List of arguments that will be passed to program's entry point 312# 313# EXPECTED_STDOUT 314# Excepted value of test's stdout 315# 316# DEBUG_LOG_MESSAGE 317# Message which is expected to present in stderr output with --log-level=debug 318# 319# DEBUG_LOG_MESSAGE_ENFORCED_JIT 320# Same as previous, but only for enforce-jit-compiler case. 321# 322# DISABLE_LIMIT_STD_ALLOC 323# Do not check malloc usage 324# 325# SKIP_AOT 326# Skip AOT run 327# 328# SKIP_OSR 329# Skip OSR run 330# 331# SKIP_VERIFICATION 332# Skip verification run 333# 334# SKIP_INTERPRETER_IRTOC 335# Skip run with irtoc implemented interpreter 336# 337# SKIP_CROSS 338# Skip cross-tests launch on host 339# Arguments: arm32, arm64 340function(add_test_file) 341 set(prefix ARG) 342 set(noValues DISABLE_LIMIT_STD_ALLOC SKIP_AOT SKIP_OSR SKIP_VERIFICATION VERIFIER_FAIL_TEST SKIP_INTERPRETER_IRTOC) 343 set(singleValues FILE DEBUG_LOG_MESSAGE DEBUG_LOG_MESSAGE_ENFORCED_JIT SKIP_CROSS) 344 set(multiValues EXPECTED_STDOUT VERIFIER_OPTIONS VERIFIER_EXPECTED_STDOUT SEARCH_STDERR ARGUMENTS RUNTIME_OPTIONS 345 COMPILER_OPTIONS PRLIMIT_OPTIONS) 346 cmake_parse_arguments(${prefix} 347 "${noValues}" 348 "${singleValues}" 349 "${multiValues}" 350 ${ARGN}) 351 352 353 if (NOT DEFINED ARG_FILE) 354 message(FATAL_ERROR "Mandatory FILE argument is not defined.") 355 endif() 356 357 get_filename_component(target "${ARG_FILE}" NAME) 358 get_filename_component(path "${ARG_FILE}" DIRECTORY) 359 get_filename_component(suite ${path} NAME) 360 361 if (NOT ARG_DISABLE_LIMIT_STD_ALLOC) 362 set(ARG_RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS} --limit-standard-alloc=true") 363 endif() 364 365 if (PANDA_ENABLE_EVENTS) 366 set(ARG_RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS} --events-output=csv") 367 endif() 368 369 #TODO: add test suite to check with PANDA_COMPILER_TARGET 370 if (((PANDA_TARGET_ARM64) OR (PANDA_TARGET_ARM32) OR (PANDA_TARGET_AMD64)) AND DEFINED ARG_DEBUG_LOG_MESSAGE_ENFORCED_JIT) 371 set(CUR_RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS}" "--log-level=debug") 372 set(CUR_JIT_DEBUG_LOG_MESSAGE "${ARG_DEBUG_LOG_MESSAGE_ENFORCED_JIT}") 373 elseif(DEFINED ARG_DEBUG_LOG_MESSAGE) 374 set(CUR_RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS}" "--log-level=debug") 375 set(CUR_JIT_DEBUG_LOG_MESSAGE "${ARG_DEBUG_LOG_MESSAGE}") 376 set(CUR_DEBUG_LOG_MESSAGE "${ARG_DEBUG_LOG_MESSAGE}") 377 else() 378 set(CUR_RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS}") 379 endif() 380 381 # Enable compiler-runtime entrypoints verification. It slows down tests execution a bit. If it will be a problem, 382 # consider removing this option from the cts tests. 383 set(CUR_RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS} --verify-entrypoints=true") 384 385 set(language_context "core") 386 387 if (ARG_VERIFIER_FAIL_TEST) 388 set(VERIFIER_FAIL_TEST VERIFIER_FAIL_TEST) 389 else() 390 set(VERIFIER_FAIL_TEST) 391 endif() 392 393 if (NOT ARG_SKIP_VERIFICATION) 394 verifier_add_test_run( 395 FILE "${ARG_FILE}" 396 TARGET ${target}-verifier 397 SUBDIR ${suite}-verifier 398 ${VERIFIER_FAIL_TEST} 399 VERIFIER_OPTIONS "${ARG_VERIFIER_OPTIONS}" 400 EXPECTED_STDOUT "${ARG_VERIFIER_EXPECTED_STDOUT}" 401 SEARCH_STDERR "${ARG_SEARCH_STDERR}" 402 LANGUAGE_CONTEXT "${language_context}" 403 ) 404 add_dependencies(${suite} ${target}-verifier) 405 endif() 406 407 if (NOT ARG_SKIP_INTERPRETER_IRTOC AND NOT PANDA_TARGET_ARM32) # Arm32 is not supported in the Irtoc 408 panda_add_test_run( 409 FILE "${ARG_FILE}" 410 TARGET ${target}-g1-gc-irtoc 411 SUBDIR ${suite}-${gc_type} 412 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 413 SEARCH_DEBUG_STDERR ${CUR_DEBUG_LOG_MESSAGE} 414 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-enable-jit=false --gc-type=g1-gc --interpreter-type=irtoc" 415 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 416 ARGUMENTS "${ARG_ARGUMENTS}" 417 LANGUAGE_CONTEXT "${language_context}" 418 AOT_MODE FALSE 419 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 420 ) 421 add_dependencies(${suite} ${target}-g1-gc-irtoc) 422 endif() 423 424 set(gc_types "stw" "gen-gc" "g1-gc") 425 foreach (gc_type IN LISTS gc_types) 426 panda_add_test_run( 427 FILE "${ARG_FILE}" 428 TARGET ${target}-${gc_type}-cpp 429 SUBDIR ${suite}-${gc_type} 430 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 431 SEARCH_DEBUG_STDERR ${CUR_DEBUG_LOG_MESSAGE} 432 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-enable-jit=false --gc-type=${gc_type}" 433 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 434 ARGUMENTS "${ARG_ARGUMENTS}" 435 LANGUAGE_CONTEXT "${language_context}" 436 AOT_MODE FALSE 437 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 438 ) 439 add_dependencies(${suite} ${target}-${gc_type}-cpp) 440 endforeach() 441 442 # Check if JIT-compilation wasn't turned off explicitly: 443 if (PANDA_COMPILER_ENABLE AND NOT CUR_RUNTIME_OPTIONS MATCHES "^.*--compiler-enable-jit=false.*$") 444 panda_add_test_run( 445 FILE "${ARG_FILE}" 446 TARGET ${target}-cpp-enforce-jit-compiler 447 SUBDIR ${suite}-enforce-jit-compiler 448 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 449 SEARCH_DEBUG_STDERR ${CUR_JIT_DEBUG_LOG_MESSAGE} 450 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-enable-jit=true --compiler-hotness-threshold=0 --no-async-jit=true" 451 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 452 ARGUMENTS "${ARG_ARGUMENTS}" 453 LANGUAGE_CONTEXT "${language_context}" 454 AOT_MODE FALSE 455 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 456 ) 457 add_dependencies(${suite} ${target}-cpp-enforce-jit-compiler) 458 add_dependencies(cts-jit-tests ${target}-cpp-enforce-jit-compiler) 459 460 if (PANDA_CI_TESTING_MODE STREQUAL "Nightly") 461 panda_add_test_run( 462 FILE "${ARG_FILE}" 463 TARGET ${target}-cpp-enforce-jit-compiler-no-inline 464 SUBDIR ${suite}-enforce-jit-compiler-no-inline 465 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 466 SEARCH_DEBUG_STDERR ${CUR_JIT_DEBUG_LOG_MESSAGE} 467 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-enable-jit=true --compiler-hotness-threshold=0 --no-async-jit=true --compiler-inlining=false" 468 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 469 ARGUMENTS "${ARG_ARGUMENTS}" 470 LANGUAGE_CONTEXT "${language_context}" 471 AOT_MODE FALSE 472 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 473 ) 474 add_dependencies(${suite} ${target}-cpp-enforce-jit-compiler-no-inline) 475 add_dependencies(cts-jit-tests ${target}-cpp-enforce-jit-compiler-no-inline) 476 endif() 477 478 if (PANDA_TARGET_ARM64 AND NOT ARG_SKIP_OSR) 479 panda_add_test_run( 480 FILE "${ARG_FILE}" 481 TARGET ${target}-cpp-osr-jit 482 SUBDIR ${suite}-osr-jit 483 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 484 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-enable-jit=true --compiler-hotness-threshold=2 --compiler-enable-osr=true" 485 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 486 ARGUMENTS "${ARG_ARGUMENTS}" 487 LANGUAGE_CONTEXT "${language_context}" 488 AOT_MODE FALSE 489 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 490 ) 491 add_dependencies(${suite} ${target}-cpp-osr-jit) 492 add_dependencies(cts-jit-tests ${target}-cpp-osr-jit) 493 endif() 494 endif() 495 496 if (PANDA_TARGET_AMD64 AND PANDA_CI_TESTING_MODE STREQUAL "Nightly") 497 if (NOT DEFINED ARG_SKIP_CROSS OR NOT ${ARG_SKIP_CROSS} MATCHES ".*arm32.*") 498 panda_add_test_run( 499 FILE "${ARG_FILE}" 500 TARGET ${target}-arm32 501 SUBDIR ${suite}-arm32 502 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 503 SEARCH_DEBUG_STDERR ${CUR_DEBUG_LOG_MESSAGE} 504 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-cross-arch=arm" 505 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 506 ARGUMENTS "${ARG_ARGUMENTS}" 507 LANGUAGE_CONTEXT "${language_context}" 508 AOT_MODE FALSE 509 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 510 ) 511 add_dependencies(${suite} ${target}-arm32) 512 513 panda_add_test_run( 514 FILE "${ARG_FILE}" 515 TARGET ${target}-arm32-enforce-jit-compiler 516 SUBDIR ${suite}-arm32-enforce-jit-compiler 517 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 518 SEARCH_DEBUG_STDERR ${CUR_JIT_DEBUG_LOG_MESSAGE} 519 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-hotness-threshold=0 --no-async-jit=true --compiler-cross-arch=arm" 520 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 521 ARGUMENTS "${ARG_ARGUMENTS}" 522 LANGUAGE_CONTEXT "${language_context}" 523 AOT_MODE FALSE 524 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 525 ) 526 add_dependencies(${suite} ${target}-arm32-enforce-jit-compiler) 527 endif() 528 529 if (NOT DEFINED ARG_SKIP_CROSS OR NOT ${ARG_SKIP_CROSS} MATCHES ".*arm64.*") 530 panda_add_test_run( 531 FILE "${ARG_FILE}" 532 TARGET ${target}-arm64 533 SUBDIR ${suite}-arm64 534 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 535 SEARCH_DEBUG_STDERR ${CUR_DEBUG_LOG_MESSAGE} 536 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-cross-arch=arm64" 537 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 538 ARGUMENTS "${ARG_ARGUMENTS}" 539 LANGUAGE_CONTEXT "${language_context}" 540 AOT_MODE FALSE 541 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 542 ) 543 add_dependencies(${suite} ${target}-arm64) 544 545 panda_add_test_run( 546 FILE "${ARG_FILE}" 547 TARGET ${target}-arm64-enforce-jit-compiler 548 SUBDIR ${suite}-arm64-enforce-jit-compiler 549 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 550 SEARCH_DEBUG_STDERR ${CUR_JIT_DEBUG_LOG_MESSAGE} 551 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" "--compiler-hotness-threshold=0 --no-async-jit=true --compiler-cross-arch=arm64" 552 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 553 ARGUMENTS "${ARG_ARGUMENTS}" 554 LANGUAGE_CONTEXT "${language_context}" 555 AOT_MODE FALSE 556 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 557 ) 558 add_dependencies(${suite} ${target}-arm64-enforce-jit-compiler) 559 endif() 560 endif() 561 562 if ((PANDA_TARGET_ARM64 OR PANDA_TARGET_AMD64) AND NOT ARG_SKIP_AOT) 563 foreach (gc_type IN LISTS gc_types) 564 panda_add_test_run( 565 FILE "${ARG_FILE}" 566 TARGET ${target}-aot-${gc_type} 567 SUBDIR ${suite}-aot-${gc_type} 568 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 569 RUNTIME_OPTIONS "${CUR_RUNTIME_OPTIONS}" 570 COMPILER_OPTIONS "${ARG_COMPILER_OPTIONS}" 571 GC_OPTIONS "--gc-type=${gc_type}" 572 ARGUMENTS "${ARG_ARGUMENTS}" 573 LANGUAGE_CONTEXT "${language_context}" 574 AOT_MODE TRUE 575 PRLIMIT_OPTIONS "${ARG_PRLIMIT_OPTIONS}" 576 ) 577 add_dependencies(${suite} ${target}-aot-${gc_type}) 578 add_dependencies(cts-aot-tests ${target}-aot-${gc_type}) 579 endforeach() 580 endif() 581 582endfunction() 583 584# Add a test for verifier 585# 586# Usage: 587# 588# add_verifier_test( 589# FILE <source> 590# [RUNTIME_OPTIONS <option>...] 591# [ARGUMENTS <argument>...] 592# [EXPECTED_STDOUT <out_value>] 593# [DEBUG_LOG_MESSAGE <msg_value>] 594# ) 595# 596# Adds a test <source> 597# 598# Options: 599# 600# RUNTIME_OPTIONS 601# Runtime (interpreter and compiler) options 602# 603# VERIFER_OPTIONS 604# Verifier CLI additional options 605# 606# EXPECTED_STDOUT 607# Excepted value of test's stdout 608# 609# SEARCH_STDERR 610# Message which is expected to present in stderr output 611# 612# VERIFIER_FAIL_TEST 613# Force verifier do not set exit code 614# 615function(add_verifier_test) 616 set(prefix ARG) 617 set(noValues VERIFIER_FAIL_TEST) 618 set(singleValues FILE) 619 set(multiValues EXPECTED_STDOUT SEARCH_STDERR RUNTIME_OPTIONS VERIFIER_OPTIONS) 620 cmake_parse_arguments(${prefix} 621 "${noValues}" 622 "${singleValues}" 623 "${multiValues}" 624 ${ARGN}) 625 626 627 if (NOT DEFINED ARG_FILE) 628 message(FATAL_ERROR "Mandatory FILE argument is not defined.") 629 endif() 630 631 get_filename_component(target "${ARG_FILE}" NAME) 632 get_filename_component(path "${ARG_FILE}" DIRECTORY) 633 get_filename_component(suite ${path} NAME) 634 635 if (ARG_VERIFIER_FAIL_TEST) 636 set(VERIFIER_FAIL_TEST VERIFIER_FAIL_TEST) 637 else() 638 set(VERIFIER_FAIL_TEST) 639 endif() 640 641 set(language_context "core") 642 643 verifier_add_test_run( 644 FILE "${ARG_FILE}" 645 TARGET ${target}-verifier 646 SUBDIR ${suite}-verifier 647 ${VERIFIER_FAIL_TEST} 648 VERIFIER_OPTIONS "${ARG_VERIFIER_OPTIONS}" 649 RUNTIME_OPTIONS "${ARG_RUNTIME_OPTIONS}" 650 EXPECTED_STDOUT "${ARG_EXPECTED_STDOUT}" 651 SEARCH_STDERR "${ARG_SEARCH_STDERR}" 652 LANGUAGE_CONTEXT "${language_context}" 653 ) 654 add_dependencies(${suite} ${target}-verifier) 655 656endfunction() 657 658add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/env-01.pa" ARGUMENTS -- 1 2 EXPECTED_STDOUT "1\n2\n") 659add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-01.pa") 660add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-02.pa") 661add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-03.pa") 662add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-04.pa") 663add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-05.pa") 664add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-06.pa") 665add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-07.pa") 666add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-08.pa") 667add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-09.pa") 668add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-10.pa") 669add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-11.pa") 670add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-12.pa") 671add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-13.pa") 672add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-14.pa") 673add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-15.pa") 674add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-16.pa") 675add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-17.pa") 676add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-18.pa") 677add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-21.pa") 678add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-22.pa") 679add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-23.pa") 680add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-24.pa") 681add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-25.pa") 682add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-26.pa") 683add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-27.pa") 684add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-28.pa") 685add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-29.pa") 686add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-30.pa") 687add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-31.pa") 688add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-32.pa") 689add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-33.pa" SKIP_VERIFICATION) 690add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-34.pa" SKIP_VERIFICATION) 691add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-35.pa") 692add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-36.pa") 693add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-40.pa") 694add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-41.pa") 695add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-42.pa") 696add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-43.pa") 697add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-44.pa") 698add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-45.pa") 699add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-46.pa") 700add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-47.pa" EXPECTED_STDOUT "/ by zero" SKIP_INTERPRETER_IRTOC) 701add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-48.pa" EXPECTED_STDOUT "/ by zero" SKIP_INTERPRETER_IRTOC) 702add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-49.pa") 703add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-50.pa") 704add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-51.pa") 705add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-52.pa") 706add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-53.pa" COMPILER_OPTIONS --compiler-inlining=false) 707add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-54.pa" COMPILER_OPTIONS --compiler-inlining=false) 708add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-55.pa" COMPILER_OPTIONS --compiler-inlining=false) 709add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-56.pa" COMPILER_OPTIONS --compiler-inlining=false) 710add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-57.pa" COMPILER_OPTIONS --compiler-inlining=false) 711add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-58.pa" RUNTIME_OPTIONS --compiler-inlining=false) 712add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-59.pa" RUNTIME_OPTIONS --compiler-inlining=false) 713add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-60.pa" RUNTIME_OPTIONS --compiler-inlining=false) 714add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-61.pa" RUNTIME_OPTIONS --compiler-inlining=false) 715add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-62.pa" RUNTIME_OPTIONS --compiler-inlining=false) 716add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-63.pa" RUNTIME_OPTIONS --compiler-inlining=false) 717add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-64.pa" RUNTIME_OPTIONS --compiler-inlining=false) 718add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-65.pa" RUNTIME_OPTIONS --compiler-inlining=false) 719add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-66.pa" RUNTIME_OPTIONS --compiler-inlining=false) 720add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-67.pa" RUNTIME_OPTIONS --compiler-inlining=false) 721add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/math-68.pa" RUNTIME_OPTIONS --compiler-inlining=false) 722add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-01.pa") 723add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-02.pa") 724add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-03.pa") 725add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-04.pa") 726add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-05.pa") 727add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-06.pa") 728add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-07.pa") 729add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-08.pa") 730add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-09.pa") 731add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-10.pa") 732add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-11.pa") 733add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-12.pa") 734add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-13.pa") 735add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-14.pa") 736add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-15.pa") 737add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-16.pa") 738add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-17.pa") 739add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-18.pa") 740add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-19.pa") 741add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-20.pa") 742add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-21.pa") 743add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-22.pa") 744add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-25.pa") 745add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-26.pa") 746add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-jeq-obj.pa") 747add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-jne-obj.pa") 748add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-jeqz-obj.pa") 749add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/op-jnez-obj.pa") 750add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/literalarrays-01.pa") 751add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/literalarrays-02.pa") 752add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/literalarrays-03.pa") 753add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/literalarrays-04.pa") 754add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/literalarrays-05.pa") 755add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-01.pa") 756add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-02.pa") 757add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-03.pa") 758add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-04.pa") 759add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-05.pa") 760add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-06.pa") 761add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-07.pa") 762add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-08.pa") 763add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-09.pa" VERIFIER_FAIL_TEST VERIFIER_OPTIONS "--log-level=warning" SEARCH_STDERR "Verifier warning 4" SKIP_INTERPRETER_IRTOC) 764add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-10.pa" VERIFIER_FAIL_TEST VERIFIER_OPTIONS "--log-level=warning" SEARCH_STDERR "Verifier warning 4" SKIP_INTERPRETER_IRTOC) 765add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-11.pa" SKIP_INTERPRETER_IRTOC) 766add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-12.pa" EXPECTED_STDOUT "idx = 2; length = 1" SKIP_INTERPRETER_IRTOC) 767add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-13.pa" EXPECTED_STDOUT "idx = 2; length = 1" SKIP_INTERPRETER_IRTOC) 768add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/arrays-14.pa" EXPECTED_STDOUT "size = -1" SKIP_INTERPRETER_IRTOC) 769add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/exceptions-02.pa" SKIP_INTERPRETER_IRTOC) 770add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/exceptions-03.pa" SKIP_INTERPRETER_IRTOC) 771add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/exceptions-04.pa" SKIP_INTERPRETER_IRTOC) 772add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-01.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 773add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-02.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 774add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-03.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 775add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-04.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 776add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-05.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 777add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-06.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 778add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-07.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 779add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-08.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 780add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-09.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 781add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-10.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 782add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-11.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 783add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-12.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 784add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-13.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 785add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-14.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 786add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-15.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 787add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-16.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 788add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-17.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 789add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-18.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 790add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/far-jump-19.pa" COMPILER_OPTIONS --compiler-max-bytecode-size=40000) 791add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-01.pa") 792add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-02.pa") 793add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-03.pa") 794add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-04.pa") 795add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-05.pa") 796add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-06.pa") 797add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-07.pa") 798add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-08.pa") 799add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-09.pa") 800add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-10.pa") 801add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-11.pa") 802add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-12.pa") 803add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-13.pa" SKIP_CROSS "arm32") 804add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-14.pa") 805add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-15.pa") 806add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-16.pa") 807add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-17.pa") 808add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-18.pa") 809add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-23.pa") 810add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-24.pa") 811add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-25.pa") 812add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-26.pa" VERIFIER_FAIL_TEST VERIFIER_OPTIONS "--log-level=warning" SEARCH_STDERR "Verifier warning 4" SKIP_INTERPRETER_IRTOC) 813add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-27.pa" VERIFIER_FAIL_TEST VERIFIER_OPTIONS "--log-level=warning" SEARCH_STDERR "Verifier warning 4" SKIP_INTERPRETER_IRTOC) 814add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-28.pa" EXPECTED_STDOUT "R1 cannot be cast to R2" VERIFIER_OPTIONS "--log-level=warning" SEARCH_STDERR "Possibly incompatible accumulator type" SKIP_INTERPRETER_IRTOC) 815add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-29.pa" SKIP_INTERPRETER_IRTOC) 816add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-30.pa" EXPECTED_STDOUT "abstract method \"R.foo\"" SKIP_INTERPRETER_IRTOC) 817add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-31.pa") 818add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-32.pa") 819add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-33.pa" SKIP_CROSS "arm32" SKIP_INTERPRETER_IRTOC) 820add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-34.pa") 821add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-35.pa") 822add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/obj-36.pa" VERIFIER_OPTIONS "--log-level=warning" SEARCH_STDERR "Possibly incompatible accumulator type" SKIP_INTERPRETER_IRTOC) 823 824add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-01.pa" SKIP_VERIFICATION) 825add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-02.pa" SKIP_VERIFICATION) 826add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-03.pa") 827add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-04.pa") 828add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-05.pa") 829add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-06.pa") 830add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-07.pa" SKIP_VERIFICATION) 831add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-08.pa") 832add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-09.pa" SKIP_VERIFICATION) 833add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-10.pa") 834add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-11.pa" SKIP_VERIFICATION) 835add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-12.pa") 836add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-13.pa" EXPECTED_STDOUT "23") 837add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-14.pa" EXPECTED_STDOUT "24") 838add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-15.pa" EXPECTED_STDOUT "26.6" SKIP_VERIFICATION) 839add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-16.pa" EXPECTED_STDOUT "26.6") 840add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-17.pa" EXPECTED_STDOUT "27") 841add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-18.pa" EXPECTED_STDOUT "28") 842add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-19.pa" EXPECTED_STDOUT "asdf\n") 843add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-20.pa") 844add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-21.pa") 845add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-22.pa") 846add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-23.pa") 847add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-24.pa") 848add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-25.pa") 849add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-26.pa") 850add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-28.pa") 851add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-29.pa") 852add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-54.pa" PRLIMIT_OPTIONS "${prlimit_options}") 853add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-55.pa") 854add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/intrinsics-f32-01.pa") 855 856add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/initobj-01.pa") 857add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/initobj-02.pa") 858add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/initobj-03.pa") 859add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/initobj-04.pa") 860add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/initobj-05.pa") 861add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/initobj-06.pa") 862 863add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/initobj-bad-02.pa" SKIP_VERIFICATION SKIP_INTERPRETER_IRTOC) 864 865add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/big_ark_option_value.pa" RUNTIME_OPTIONS --code-cache-size-limit=3221225472) 866 867add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/oom-01.pa" COMPILER_OPTIONS --compiler-hotness-threshold=0 --compiler-inlining=false RUNTIME_OPTIONS --heap-size-limit=13000000 SKIP_INTERPRETER_IRTOC) 868add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/oom-02.pa" RUNTIME_OPTIONS --heap-size-limit=13000000 SKIP_INTERPRETER_IRTOC) 869 870add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/tst-branch.pa") 871add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/tst-compare.pa") 872add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/cts-assembly/tst-select.pa") 873 874add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/allocate-252-params.pa") 875 876add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/bitops-bitwise-and.pa" COMPILER_OPTIONS --compiler-print-stats) 877add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/math-partial-sums.pa" COMPILER_OPTIONS --compiler-print-stats DISABLE_LIMIT_STD_ALLOC) 878add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/fmod.pa" COMPILER_OPTIONS --compiler-inlining=false) 879add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/stack-4-params.pa" COMPILER_OPTIONS --compiler-inlining=false VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 880add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/stack-9-params.pa" COMPILER_OPTIONS --compiler-inlining=false VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 881add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/fcmp.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 882add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/irreducible_loop.pa") 883if (NOT PANDA_ENABLE_ADDRESS_SANITIZER) 884#TODO(mwx851039): This test may exceed 400Mb stack in CI (#4061). 885add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/loop-unroll.pa" COMPILER_OPTIONS --compiler-inlining=false) 886endif() 887add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/loop-peeling.pa") 888add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/shr32.pa") 889add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/deopt_false_test.pa" COMPILER_OPTIONS --compiler-inlining=false) 890add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/deopt_true_test.pa" COMPILER_OPTIONS --compiler-inlining=false SKIP_INTERPRETER_IRTOC) 891add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/regression/deopt_true_call_test.pa" COMPILER_OPTIONS --compiler-inlining=true SKIP_INTERPRETER_IRTOC) 892 893add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/sum.pa") 894add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/signed_imms.pa") 895add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/array.pa") 896add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/newobj.pa") 897add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/static.pa") 898add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/call.pa") 899add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/call1.pa") 900add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/call2.pa") 901add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/call.acc.pa") 902add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/initobj.pa") 903add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/call.virt.pa") 904# Lots of runtime calls with enabled '--verify-entrypoints' option cause lots of standard allocations 905add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/barriers.pa" DISABLE_LIMIT_STD_ALLOC SKIP_CROSS "arm32") 906 907add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/ldai.pa") 908add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/and.pa") 909add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/andi.pa") 910add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/or.pa") 911add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/ori.pa") 912add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/shr.pa") 913add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/shri.pa") 914add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/shl.pa") 915add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/shli.pa") 916add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i32toi16.pa") 917add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i32toi8.pa") 918add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i64toi32.pa") 919add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u64toi32.pa") 920add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u64tou32.pa") 921add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i32toi64.pa") 922add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u32toi64.pa") 923add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i32tou1.pa") 924add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u32tou1.pa") 925add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i64tou1.pa") 926add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u64tou1.pa") 927add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i32tof32.pa") 928add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i32tof64.pa") 929add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u32tof32.pa") 930add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u32tof64.pa") 931add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i64tof32.pa") 932add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i64tof64.pa") 933add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u64tof32.pa") 934add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u64tof64.pa") 935add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i32tou16.pa") 936add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/i32tou8.pa") 937add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u32toi16.pa") 938add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u32toi8.pa") 939add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u32tou16.pa") 940add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/u32tou8.pa") 941add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fadd2.pa") 942add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fadd2.64.pa") 943add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fsub2.pa") 944add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fsub2.64.pa") 945add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fmul2.pa") 946add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fmul2.64.pa") 947add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fdiv2.pa") 948add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fdiv2.64.pa") 949add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fmod2.pa") 950add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fmod2.64.pa") 951add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fneg.pa") 952add_test_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/irtoc-interpreter-tests/irtoc-opcode-suite/fneg.64.pa") 953 954if (TARGET verifier-tests) 955# Verifier regression tests 956# Negative (must fail) 957add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/cflow_err_beyond_end_of_function.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Invalid last instruction in method, execution beyond the method code boundary.") 958add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/cflow_jump_on_exc_handler.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Cflow invalid jump into exc handler") 959add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/cflow_jump_on_exc_handler_from_body.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Cflow invalid jump into exc handler") 960add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/cflow_jump_out_of_body.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Jump offset is out of bounds of method body") 961add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/cflow_execution_may_go_beyond_the_end.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Invalid last instruction in method, execution beyond the method code boundary.") 962add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/cflow_fallthrough_from_exc_handler_to_exc_handler.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Cflow body fall into exc handler") 963add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/cflow_fallthrough_to_exc_handler_from_body.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Cflow body fall into exc handler") 964add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/cflow_jump_from_exc_handler_to_exc_handler.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Cflow invalid jump into exc handler") 965add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/wrong_accumulator_position.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Accumulator position is out of range") 966# regression 967add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1926.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad call") 968add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1940.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad call undefined register") 969add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1863.pa") 970add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1745.pa") 971add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/issue_1163.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 972add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2084.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Undefined register") 973add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/issue_1981.pa") 974add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1697.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 975add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1702.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Undefined register") 976add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1813.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 977add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1826.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Inconsistent register and field types") 978add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1827.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Inconsistent register and field types") 979add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1834.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 980add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1828.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Expected instance field") 981add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2072.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 982add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2075.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 983add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2085.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Inconsistent register and field types") 984add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2086_1.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Expected instance field") 985add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2086_2.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Inconsistent register and field types") 986add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2088.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Unexpected field type") 987add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2090.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 988add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2107_1.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 989add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2107_2.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 990add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2136.pa") 991add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2256.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad call") 992add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2260.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 993add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2374.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad call static method as virtual") 994add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/issue_964.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 995add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_1833.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Inconsistent register and field types") 996add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/jumps_1.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Register type conflict") 997add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/jumps_2.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 998add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/jumps_3.pa") 999add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2089.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 1000add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2702_1.pa") 1001add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2702_2.pa") 1002add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2702_3.pa") 1003add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2702_4.pa") 1004add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2740.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 1005add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2787.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Undefined register") 1006add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2816.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 1007add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2817.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 1008add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2818_1.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Undefined register") 1009add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2818_2.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Undefined register") 1010add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_2921.pa") 1011add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_3060.pa") 1012add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_3133.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Bad register type") 1013add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_3197.pa" VERIFIER_FAIL_TEST VERIFIER_OPTIONS "--log-level=info" SEARCH_STDERR "lways NPE") 1014add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_3219.pa") 1015add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/bug_3228.pa" VERIFIER_FAIL_TEST VERIFIER_OPTIONS "--log-level=info" SEARCH_STDERR "lways NPE") 1016add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/mr_3176.pa" VERIFIER_OPTIONS "--methods=_GLOBAL::main") 1017add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/initobj-bad-03.pa" VERIFIER_FAIL_TEST SEARCH_STDERR "Initobj calls not constructor") 1018add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/access_field_nomodifier_core.pa") 1019add_verifier_test(FILE "${CMAKE_CURRENT_SOURCE_DIR}/verifier-tests/exception_type.pa") 1020endif() 1021