Newer
Older
dub_jkp / test / 4-describe-data-2-dmd.sh
@Martin Nowak Martin Nowak on 19 Dec 2017 3 KB rewrite generator targets configuration
  1. #!/usr/bin/env bash
  2.  
  3. . $(dirname "${BASH_SOURCE[0]}")/common.sh
  4.  
  5. if [ "${DC}" != "dmd" ]; then
  6. echo Skipping DMD-centric test on configuration that lacks DMD.
  7. exit
  8. fi
  9.  
  10. cd "$CURR_DIR"/describe-project
  11.  
  12. temp_file=$(mktemp $(basename $0).XXXXXX)
  13.  
  14. function cleanup {
  15. rm $temp_file
  16. }
  17.  
  18. trap cleanup EXIT
  19.  
  20. if ! $DUB describe --compiler=${DC} \
  21. --data=main-source-file \
  22. --data=dflags,lflags \
  23. --data=libs,linker-files \
  24. --data=source-files \
  25. --data=versions \
  26. --data=debug-versions \
  27. --data=import-paths \
  28. --data=string-import-paths \
  29. --data=import-files \
  30. --data=options \
  31. > "$temp_file"; then
  32. die 'Printing project data failed!'
  33. fi
  34.  
  35. # Create the expected output path file to compare against.
  36. expected_file="$CURR_DIR/expected-describe-data-2-dmd-output"
  37. # --data=main-source-file
  38. echo -n "'$CURR_DIR/describe-project/src/dummy.d' " > "$expected_file"
  39. # --data=dflags
  40. echo -n "--some-dflag " >> "$expected_file"
  41. echo -n "--another-dflag " >> "$expected_file"
  42. # --data=lflags
  43. echo -n "-L--some-lflag " >> "$expected_file"
  44. echo -n "-L--another-lflag " >> "$expected_file"
  45. # --data=libs
  46. echo -n "-L-lsomelib " >> "$expected_file"
  47. echo -n "-L-lanotherlib " >> "$expected_file"
  48. # --data=linker-files
  49. echo -n "'$CURR_DIR/describe-dependency-3/libdescribe-dependency-3.a' " >> "$expected_file"
  50. echo -n "'$CURR_DIR/describe-project/some.a' " >> "$expected_file"
  51. echo -n "'$CURR_DIR/describe-dependency-1/dep.a' " >> "$expected_file"
  52. # --data=source-files
  53. echo -n "'$CURR_DIR/describe-project/src/dummy.d' " >> "$expected_file"
  54. echo -n "'$CURR_DIR/describe-dependency-1/source/dummy.d' " >> "$expected_file"
  55. # --data=versions
  56. echo -n "-version=someVerIdent " >> "$expected_file"
  57. echo -n "-version=Have_describe_project " >> "$expected_file"
  58. echo -n "-version=Have_describe_dependency_1 " >> "$expected_file"
  59. echo -n "-version=Have_describe_dependency_2 " >> "$expected_file"
  60. echo -n "-version=Have_describe_dependency_3 " >> "$expected_file"
  61. echo -n "-version=anotherVerIdent " >> "$expected_file"
  62. # --data=debug-versions
  63. echo -n "-debug=someDebugVerIdent " >> "$expected_file"
  64. echo -n "-debug=anotherDebugVerIdent " >> "$expected_file"
  65. # --data=import-paths
  66. echo -n "'-I$CURR_DIR/describe-project/src/' " >> "$expected_file"
  67. echo -n "'-I$CURR_DIR/describe-dependency-1/source/' " >> "$expected_file"
  68. echo -n "'-I$CURR_DIR/describe-dependency-2/some-path/' " >> "$expected_file"
  69. echo -n "'-I$CURR_DIR/describe-dependency-3/dep3-source/' " >> "$expected_file"
  70. # --data=string-import-paths
  71. echo -n "'-J$CURR_DIR/describe-project/views/' " >> "$expected_file"
  72. echo -n "'-J$CURR_DIR/describe-dependency-2/some-extra-string-import-path/' " >> "$expected_file"
  73. echo -n "'-J$CURR_DIR/describe-dependency-3/dep3-string-import-path/' " >> "$expected_file"
  74. # --data=import-files
  75. echo -n "'$CURR_DIR/describe-dependency-2/some-path/dummy.d' " >> "$expected_file"
  76. # --data=options
  77. echo -n "-debug " >> "$expected_file"
  78. echo -n "-release " >> "$expected_file"
  79. echo -n "-g " >> "$expected_file"
  80. echo -n "-wi" >> "$expected_file"
  81. #echo -n "-gx " >> "$expected_file" # Not sure if this (from a sourceLib dependency) should be missing from the result
  82. echo "" >> "$expected_file"
  83.  
  84. if ! diff "$expected_file" "$temp_file"; then
  85. die 'The project data did not match the expected output!'
  86. fi
  87.