test_native.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #-------------------------------------------------------------------------------------------------------
  2. # Copyright (C) Microsoft. All rights reserved.
  3. # Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. #-------------------------------------------------------------------------------------------------------
  5. CH_DIR=$1
  6. BUILD_TYPE=$2
  7. RES=
  8. CC=0
  9. CXX=0
  10. FIND_CLANG() {
  11. for i in 7 8 9
  12. do
  13. if [[ -f "/usr/bin/clang-3.${i}" ]]; then
  14. CC="/usr/bin/clang-3.${i}"
  15. CXX="/usr/bin/clang++-3.${i}"
  16. fi
  17. done
  18. if [[ $CC == 0 ]]; then
  19. echo "Error: Couldn't find Clang"
  20. exit 1
  21. fi
  22. }
  23. SAFE_RUN() {
  24. local SF_RETURN_VALUE=$($1 2>&1)
  25. if [[ $? != 0 ]]; then
  26. >&2 echo $SF_RETURN_VALUE
  27. exit 1
  28. fi
  29. }
  30. TEST () {
  31. if [[ $RES =~ $1 ]]; then
  32. echo "${TEST_PATH} : PASS"
  33. else
  34. echo "${TEST_PATH} FAILED"
  35. echo -e "$RES"
  36. exit 1
  37. fi
  38. }
  39. RES=$(c++ --version)
  40. if [[ ! $RES =~ "Apple LLVM" ]]; then
  41. FIND_CLANG
  42. else
  43. CC="cc"
  44. CXX="c++"
  45. fi
  46. RUN () {
  47. TEST_PATH=$1
  48. echo "Testing $TEST_PATH"
  49. SAFE_RUN `cd $TEST_PATH; ${CH_DIR} Platform.js > Makefile`
  50. RES=$(cd $TEST_PATH; cat Makefile)
  51. if [[ $RES =~ "# IGNORE_THIS_TEST" ]]; then
  52. echo "Ignoring $TEST_PATH"
  53. else
  54. SAFE_RUN `cd $TEST_PATH; make CC=${CC} CXX=${CXX}`
  55. RES=$(cd $TEST_PATH; ./sample.o)
  56. TEST "SUCCESS"
  57. SAFE_RUN `cd $TEST_PATH; rm -rf ./sample.o`
  58. fi
  59. }
  60. RUN_CMD () {
  61. TEST_PATH=$1
  62. CMD=$2
  63. echo "Testing $TEST_PATH"
  64. SAFE_RUN `cd $TEST_PATH; $CMD`
  65. }
  66. # static lib tests
  67. # test-c98
  68. RUN "test-c98"
  69. # test-char
  70. RUN "test-char"
  71. # test-char16
  72. RUN "test-char16"
  73. # test-static-native
  74. RUN "test-static-native"
  75. # shared lib tests
  76. LIB_DIR="$(dirname ${CH_DIR})"
  77. if [[ `uname -a` =~ "Darwin" ]]; then
  78. export DYLD_LIBRARY_PATH=${LIB_DIR}/:$DYLD_LIBRARY_PATH
  79. else
  80. export LD_LIBRARY_PATH=${LIB_DIR}/:$LD_LIBRARY_PATH
  81. fi
  82. RUN "test-shared-basic"
  83. # test python
  84. RUN_CMD "test-python" "python helloWorld.py ${BUILD_TYPE}"
  85. SAFE_RUN `rm -rf Makefile`