CMakeLists.txt 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. find_package (Python COMPONENTS Interpreter)
  2. if (CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
  3. set(TEST_BUILD_TYPE --test)
  4. elseif (CMAKE_BUILD_TYPE STREQUAL Debug)
  5. set(TEST_BUILD_TYPE --debug)
  6. endif ()
  7. if (NO_ICU)
  8. set(TEST_ICU --not-tag exclude_noicu)
  9. elseif (NOT EMBED_ICU)
  10. set(TEST_ICU --not-tag exclude_icu62AndAboveTestFailures)
  11. endif()
  12. if (BuildJIT)
  13. set(VARIANT --jit)
  14. else ()
  15. set(TEST_VARIANT --variants=disable_jit)
  16. set(VARIANT --noJit)
  17. endif()
  18. # Target to run all tests
  19. add_custom_target(check)
  20. if (CMAKE_BUILD_TYPE STREQUAL Release)
  21. add_custom_target(smoke-check
  22. COMMAND echo "Running Hello World test"
  23. COMMAND ${CMAKE_BINARY_DIR}/ch ${CMAKE_CURRENT_SOURCE_DIR}/Basics/hello.js
  24. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  25. USES_TERMINAL
  26. DEPENDS ch
  27. )
  28. add_dependencies(check smoke-check)
  29. else()
  30. add_custom_target(bytecode-check
  31. COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tools/regenByteCode.py ${VARIANT} --verify --binary=${CMAKE_BINARY_DIR}/ch
  32. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  33. USES_TERMINAL
  34. DEPENDS ch
  35. )
  36. add_custom_target(regression-check
  37. COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/runtests.py ${TEST_BUILD_TYPE} ${TEST_ICU} ${TEST_VARIANT} --binary=${CMAKE_BINARY_DIR}/ch
  38. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  39. USES_TERMINAL
  40. DEPENDS ch
  41. )
  42. add_dependencies(check bytecode-check regression-check)
  43. endif()
  44. if (NOT NO_ICU AND NOT EMBED_ICU)
  45. add_custom_target(native-check
  46. COMMAND ./test_native.sh ${CMAKE_BINARY_DIR}/ch ${CMAKE_BUILD_TYPE} ${CMAKE_C_COMPILER} ${CMAKE_CXX_COMPILER} ${CMAKE_SOURCE_DIR}
  47. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/native-tests
  48. USES_TERMINAL
  49. DEPENDS ch
  50. )
  51. add_dependencies(check native-check)
  52. else()
  53. set(ICU_MESSAGE "Native tests are DISABLED, as they require ICU to be installed, and not embedded. NO_ICU = ${NO_ICU} EMBED_ICU = ${EMBED_ICU}")
  54. message(WARNING ${ICU_MESSAGE})
  55. add_custom_target(warn-icu-tests
  56. COMMAND echo "${ICU_MESSAGE}"
  57. USES_TERMINAL
  58. )
  59. add_dependencies(check warn-icu-tests)
  60. endif()
  61. if (NOT STATIC_LIBRARY)
  62. add_dependencies(check ChakraCore)
  63. endif()