test_native.sh 2.2 KB

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