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