shell-smoke-test.sh 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. #!/bin/bash
  2. REL_SCRIPT_DIR="`dirname \"$0\"`"
  3. SCRIPT_DIR="`( cd \"$REL_SCRIPT_DIR\" && pwd )`"
  4. test_cli_common()
  5. {
  6. echo ----------------------------------------
  7. echo Testing common cli behavior...
  8. CLI_SCRIPT_NAME=${1:?missing_param}.js
  9. CLI_SCRIPT=$SCRIPT_DIR/../bin/$CLI_SCRIPT_NAME
  10. echo Script: $CLI_SCRIPT
  11. # should find the minimal help output
  12. $CLI_SCRIPT 2>&1 | grep -q "Must define at least one file\." || {
  13. echo "[$CLI_SCRIPT_NAME] Output should be help message."
  14. exit 1
  15. }
  16. $CLI_SCRIPT 2> /dev/null && {
  17. echo "[$CLI_SCRIPT_NAME (with no parameters)] Return code should be error."
  18. exit 1
  19. }
  20. $CLI_SCRIPT -Z 2> /dev/null && {
  21. echo "[$CLI_SCRIPT_NAME -Z] Return code for invalid parameter should be error."
  22. exit 1
  23. }
  24. $CLI_SCRIPT -h > /dev/null || {
  25. echo "[$CLI_SCRIPT_NAME -h] Return code should be success."
  26. exit 1
  27. }
  28. $CLI_SCRIPT -v > /dev/null || {
  29. echo "[$CLI_SCRIPT_NAME -v] Return code should be success."
  30. exit 1
  31. }
  32. MISSING_FILE="$SCRIPT_DIR/../../../js/bin/missing_file"
  33. MISSING_FILE_MESSAGE="Unable to open path"
  34. $CLI_SCRIPT $MISSING_FILE 2> /dev/null && {
  35. echo "[$CLI_SCRIPT_NAME $MISSING_FILE] Return code should be error."
  36. exit 1
  37. }
  38. $CLI_SCRIPT $MISSING_FILE 2>&1 | grep -q "$MISSING_FILE_MESSAGE" || {
  39. echo "[$CLI_SCRIPT_NAME $MISSING_FILE] Stderr should have useful message."
  40. exit 1
  41. }
  42. if [ "`$CLI_SCRIPT $MISSING_FILE 2> /dev/null`" != "" ]; then
  43. echo "[$CLI_SCRIPT_NAME $MISSING_FILE] Stdout should have no text."
  44. exit 1
  45. fi
  46. }
  47. test_cli_js_beautify()
  48. {
  49. echo ----------------------------------------
  50. echo Testing js-beautify cli behavior...
  51. CLI_SCRIPT=$SCRIPT_DIR/../bin/js-beautify.js
  52. $CLI_SCRIPT $SCRIPT_DIR/../bin/js-beautify.js > /dev/null || {
  53. echo "js-beautify output for $SCRIPT_DIR/../bin/js-beautify.js was expected succeed."
  54. exit 1
  55. }
  56. $CLI_SCRIPT $SCRIPT_DIR/../bin/css-beautify.js > /dev/null || {
  57. echo "js-beautify output for $SCRIPT_DIR/../bin/css-beautify.js was expected succeed."
  58. exit 1
  59. }
  60. $CLI_SCRIPT $SCRIPT_DIR/../bin/js-beautify.js | diff $SCRIPT_DIR/../bin/js-beautify.js - || {
  61. echo "js-beautify output for $SCRIPT_DIR/../bin/js-beautify.js was expected to be unchanged."
  62. exit 1
  63. }
  64. rm -rf /tmp/js-beautify-mkdir
  65. $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js $SCRIPT_DIR/../bin/js-beautify.js && diff $SCRIPT_DIR/../bin/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js || {
  66. echo "js-beautify output for $SCRIPT_DIR/../bin/js-beautify.js should have been created in /tmp/js-beautify-mkdir/js-beautify.js."
  67. exit 1
  68. }
  69. # ensure unchanged files are not overwritten
  70. cp -p /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify-old.js
  71. touch -A -05 /tmp/js-beautify-mkdir/js-beautify.js
  72. touch -A -01 /tmp/js-beautify-mkdir/js-beautify-old.js
  73. $CLI_SCRIPT -r /tmp/js-beautify-mkdir/js-beautify.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && {
  74. echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -r"
  75. exit 1
  76. }
  77. $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && {
  78. echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -o and same file name"
  79. exit 1
  80. }
  81. $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify-old.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && {
  82. echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -o and different file name"
  83. exit 1
  84. }
  85. $CLI_SCRIPT $SCRIPT_DIR/../bin/css-beautify.js | diff -q $SCRIPT_DIR/../bin/css-beautify.js - && {
  86. echo "js-beautify output for $SCRIPT_DIR/../bin/css-beautify.js was expected to be different."
  87. exit 1
  88. }
  89. export HOME=
  90. export USERPROFILE=
  91. $CLI_SCRIPT -o /tmp/js-beautify-mkdir/example1-default.js $SCRIPT_DIR/resources/example1.js
  92. cd $SCRIPT_DIR/resources/indent11chars
  93. $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - && {
  94. echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be different based on CWD settings."
  95. exit 1
  96. }
  97. cd $SCRIPT_DIR/resources/indent11chars/subDir1/subDir2
  98. $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - && {
  99. echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be different based on CWD parent folder settings."
  100. exit 1
  101. }
  102. cd $SCRIPT_DIR
  103. export HOME=$SCRIPT_DIR/resources/indent11chars
  104. $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - && {
  105. echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be different based on HOME settings."
  106. exit 1
  107. }
  108. export HOME=
  109. export USERPROFILE=$SCRIPT_DIR/resources/indent11chars
  110. $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - && {
  111. echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be different based on USERPROFILE settings."
  112. exit 1
  113. }
  114. }
  115. test_smoke_js_beautify()
  116. {
  117. echo ----------------------------------------
  118. echo Testing js-beautify functionality...
  119. node $SCRIPT_DIR/node-beautify-tests.js || exit 1
  120. node $SCRIPT_DIR/amd-beautify-tests.js || exit 1
  121. }
  122. test_performance_js_beautify()
  123. {
  124. echo ----------------------------------------
  125. echo Testing js-beautify performance...
  126. node $SCRIPT_DIR/node-beautify-perf-tests.js || exit 1
  127. echo ----------------------------------------
  128. }
  129. test_cli_common css-beautify
  130. test_cli_common html-beautify
  131. test_cli_common js-beautify
  132. test_cli_js_beautify
  133. test_smoke_js_beautify
  134. test_performance_js_beautify
  135. echo ----------------------------------------
  136. echo $0 - PASSED.
  137. echo ----------------------------------------