CMakeLists.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. if (CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
  2. set(TEST_BUILD_TYPE --test)
  3. elseif (CMAKE_BUILD_TYPE STREQUAL Debug)
  4. set(TEST_BUILD_TYPE --debug)
  5. endif ()
  6. if (NO_ICU)
  7. set(TEST_ICU --not-tag exclude_noicu)
  8. elseif (NOT EMBED_ICU)
  9. set(TEST_ICU --not-tag exclude_icu62AndAboveTestFailures)
  10. endif()
  11. if (BuildJIT)
  12. set(VARIANT --jit)
  13. else ()
  14. set(TEST_VARIANT --variants=disable_jit)
  15. set(VARIANT --noJit)
  16. endif()
  17. if (CMAKE_BUILD_TYPE STREQUAL Release)
  18. set(TEST_SUITE echo "Running Hello World test" && ${CMAKE_BINARY_DIR}/ch ${CMAKE_CURRENT_SOURCE_DIR}/Basics/hello.js)
  19. else()
  20. set(BYTE_CODE_CHECK ${CMAKE_CURRENT_SOURCE_DIR}/../tools/regenByteCode.py ${VARIANT} --verify --binary=${CMAKE_BINARY_DIR}/ch)
  21. set(TEST_SUITE ${CMAKE_CURRENT_SOURCE_DIR}/runtests.py ${TEST_BUILD_TYPE} ${TEST_ICU} ${TEST_VARIANT} --binary=${CMAKE_BINARY_DIR}/ch)
  22. endif()
  23. if (NOT NO_ICU AND NOT EMBED_ICU)
  24. set(NATIVE_TEST cd ${CMAKE_CURRENT_SOURCE_DIR}/native-tests && ./test_native.sh ${CMAKE_BINARY_DIR}/ch ${CMAKE_BUILD_TYPE} ${CMAKE_C_COMPILER} ${CMAKE_CXX_COMPILER} ${CMAKE_SOURCE_DIR})
  25. else()
  26. set(NATIVE_TEST echo "Native tests NOT RUN, they require ICU to be installed not embedded. NO_ICU = ${NO_ICU} EMBED_ICU = ${EMBED_ICU}")
  27. endif()
  28. add_custom_target(check
  29. COMMAND ${BYTE_CODE_CHECK}
  30. COMMAND ${TEST_SUITE}
  31. COMMAND ${NATIVE_TEST}
  32. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  33. USES_TERMINAL
  34. DEPENDS ch
  35. )
  36. if (NOT STATIC_LIBRARY)
  37. add_dependencies(check ChakraCore)
  38. endif()