Newer
Older
dub_jkp / test / cache-generated-test-config.sh
  1. #!/usr/bin/env bash
  2.  
  3. . $(dirname "${BASH_SOURCE[0]}")/common.sh
  4. cd ${CURR_DIR}/cache-generated-test-config
  5. rm -rf .dub
  6.  
  7. ## default test
  8. ${DUB} test --compiler=${DC}
  9.  
  10. STAT="stat -c '%Y'"
  11. [[ "$OSTYPE" == "darwin"* ]] && STAT="stat -f '%m' -t '%Y'"
  12.  
  13. EXECUTABLE_TIME="$(${STAT} cache-generated-test-config-test-library)"
  14. [ -z "$EXECUTABLE_TIME" ] && die $LINENO 'no EXECUTABLE_TIME was found'
  15. MAIN_TIME="$(${STAT} "$(ls .dub/code/*/dub_test_root.d)")"
  16. [ -z "$MAIN_TIME" ] && die $LINENO 'no MAIN_TIME was found'
  17.  
  18. ${DUB} test --compiler=${DC}
  19. MAIN_FILES_COUNT=$(ls .dub/code/*/dub_test_root.d | wc -l)
  20.  
  21. [ $MAIN_FILES_COUNT -ne 1 ] && die $LINENO 'DUB generated more then one main file'
  22. [ "$EXECUTABLE_TIME" != "$(${STAT} cache-generated-test-config-test-library)" ] && die $LINENO 'The executable has been rebuilt'
  23. [ "$MAIN_TIME" != "$(${STAT} "$(ls .dub/code/*/dub_test_root.d | head -n1)")" ] && die $LINENO 'The test main file has been rebuilt'
  24.  
  25. ## test with empty DFLAGS environment variable
  26. DFLAGS="" ${DUB} test --compiler=${DC}
  27.  
  28. STAT="stat -c '%Y'"
  29. [[ "$OSTYPE" == "darwin"* ]] && STAT="stat -f '%m' -t '%Y'"
  30.  
  31. EXECUTABLE_TIME="$(${STAT} cache-generated-test-config-test-library)"
  32. [ -z "$EXECUTABLE_TIME" ] && die $LINENO 'no EXECUTABLE_TIME was found'
  33. MAIN_TIME="$(${STAT} "$(ls .dub/code/*-\$DFLAGS-*/dub_test_root.d)")"
  34. [ -z "$MAIN_TIME" ] && die $LINENO 'no MAIN_TIME was found'
  35.  
  36. DFLAGS="" ${DUB} test --compiler=${DC}
  37. MAIN_FILES_COUNT=$(ls .dub/code/*-\$DFLAGS-*/dub_test_root.d | wc -l)
  38.  
  39. [ $MAIN_FILES_COUNT -ne 1 ] && die $LINENO 'DUB generated more then one main file'
  40. [ "$EXECUTABLE_TIME" != "$(${STAT} cache-generated-test-config-test-library)" ] && die $LINENO 'The executable has been rebuilt'
  41. [ "$MAIN_TIME" != "$(${STAT} "$(ls .dub/code/*-\$DFLAGS-*/dub_test_root.d | head -n1)")" ] && die $LINENO 'The test main file has been rebuilt'
  42.  
  43. ## test with DFLAGS environment variable
  44. DFLAGS="-g" ${DUB} test --compiler=${DC}
  45.  
  46. STAT="stat -c '%Y'"
  47. [[ "$OSTYPE" == "darwin"* ]] && STAT="stat -f '%m' -t '%Y'"
  48.  
  49. EXECUTABLE_TIME="$(${STAT} cache-generated-test-config-test-library)"
  50. [ -z "$EXECUTABLE_TIME" ] && die $LINENO 'no EXECUTABLE_TIME was found'
  51. MAIN_TIME="$(${STAT} "$(ls .dub/code/*-\$DFLAGS-*/dub_test_root.d)")"
  52. [ -z "$MAIN_TIME" ] && die $LINENO 'no MAIN_TIME was found'
  53.  
  54. DFLAGS="-g" ${DUB} test --compiler=${DC}
  55. MAIN_FILES_COUNT=$(ls .dub/code/*-\$DFLAGS-*/dub_test_root.d | wc -l)
  56.  
  57. [ $MAIN_FILES_COUNT -ne 1 ] && die $LINENO 'DUB generated more then one main file'
  58. [ "$EXECUTABLE_TIME" != "$(${STAT} cache-generated-test-config-test-library)" ] && die $LINENO 'The executable has been rebuilt'
  59. [ "$MAIN_TIME" != "$(${STAT} "$(ls .dub/code/*-\$DFLAGS-*/dub_test_root.d | head -n1)")" ] && die $LINENO 'The test main file has been rebuilt'
  60.  
  61.  
  62.  
  63. exit 0