PageRenderTime 25ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/tests/run_tests_in_parallel.ksh

https://gitlab.com/ECCC_CMDN/vgrid
Korn Shell | 82 lines | 63 code | 17 blank | 2 comment | 9 complexity | 155280ee5e765962ffecde50604e14aa MD5 | raw file
  1. #!/bin/ksh
  2. eval `cclargs \
  3. -MAX_CPUS 12 12 "[Number of cpus to run tests]"\
  4. ++ $*`
  5. set -e
  6. # Get list of tests
  7. if [ -z "$*" ] ; then
  8. set -A tests $(ls -1 src_tests/*.F90 | perl -p -e 's|src_tests/(.+)\.F90|$1|g') $(ls -1 src_tests/*.c | perl -p -e 's|src_tests/(.+)\.c|$1|g')
  9. else
  10. set -A tests $*
  11. fi
  12. which gmake && MAKE=gmake || MAKE=make
  13. MASTER=$PWD
  14. rm -rf WORK/$EC_ARCH
  15. mkdir -p WORK/$EC_ARCH
  16. cd WORK/$EC_ARCH
  17. ln -s ${MASTER}/../src .
  18. NCPUS=1
  19. DONE=0
  20. echo "==============================================================================="
  21. echo "Tests begin"
  22. echo
  23. echo "Using ${MAX_CPUS} cpus"
  24. echo
  25. for test in ${tests[*]} ; do
  26. rm -rf ${test}
  27. mkdir ${test}
  28. cd ${test}
  29. ln -s ${MASTER}/data_AIX .
  30. ln -s ${MASTER}/data_Linux .
  31. ln -s ${MASTER}/src_tests .
  32. ln -s ${MASTER}/Makefile.tmpl
  33. ln -s ${MASTER}/Makefile
  34. ln -s ${MASTER}/run_tests.ksh
  35. ln -s ${MASTER}/unit_testing.F90
  36. ln -s ${MASTER}/c_ut_report.c
  37. ln -s ${MASTER}/ksh .
  38. mkdir data
  39. echo " test ${test}"
  40. ${MAKE} tests ONLY=${test} > ../log_${test} 2>&1 &
  41. ((NCPUS=NCPUS+1))
  42. if [[ ${NCPUS} -gt ${MAX_CPUS} ]];then
  43. NCPUS=1
  44. echo "================"
  45. echo "waiting for cpus"
  46. echo "----------------"
  47. wait
  48. fi
  49. cd ..
  50. done
  51. wait
  52. echo RESULTS
  53. for test in ${tests[*]} ; do
  54. if grep -q 'Builds Succeeded' log_${test};then
  55. Build_COLOR='\033[0;32m'
  56. else
  57. Build_COLOR='\033[0;31m'
  58. fi
  59. if grep -q 'Tests Succeeded' log_${test};then
  60. Test_COLOR='\033[0;32m'
  61. else
  62. Test_COLOR='\033[0;31m'
  63. fi
  64. echo " ${Build_COLOR} $(grep 'Builds Succeeded' log_${test}) $(grep 'ERROR compiling' log_${test}) ${Test_COLOR} $(grep 'Tests Succeeded' log_${test}) $(grep Failed log_${test}) -> '\033[0m' ${test}"
  65. done