util.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/usr/bin/env bash
  2. # SPDX-License-Identifier: Apache-2.0
  3. function run_solc {
  4. if [ -z ${SOLC+x} ]; then
  5. SOLC=solc
  6. fi
  7. printf -- " \033[1mRunning: \`\033[0;33msolc %s\033[0m\`..." "$*"
  8. if [ -z ${PRINT_COMPILER_OUTPUT+x} ]; then
  9. # Var is unset, so be quiet
  10. if solc "$@" >/dev/null 2>&1; then
  11. printf "\033[32mSUCCESS\n\033[0m"
  12. return 0
  13. else
  14. printf "\033[31mFAILED\n\033[0m"
  15. return 1
  16. fi
  17. else
  18. echo
  19. if solc "$@"; then
  20. printf "\033[32;1m SUCCESS\n\033[0m\n"
  21. return 0
  22. else
  23. printf "\033[31;1m FAILED\n\033[0m\n"
  24. return 1
  25. fi
  26. echo
  27. fi
  28. }
  29. function run_solang {
  30. if [ -z ${SOLANG+x} ]; then
  31. SOLANG=solang
  32. fi
  33. printf -- " \033[1mRunning: \`\033[0;33m%s compile --target solana %s\033[0m\`..." "$SOLANG" "$*"
  34. if [ -z ${PRINT_COMPILER_OUTPUT+x} ]; then
  35. # Var is unset, so be quiet
  36. if "$SOLANG" compile --target solana -o .solang_out "$@" >/dev/null 2>&1; then
  37. printf "\033[32mSUCCESS\n\033[0m"
  38. return 0
  39. else
  40. printf "\033[31mFAILED\n\033[0m"
  41. return 1
  42. fi
  43. else
  44. echo
  45. if "$SOLANG" compile --target solana -o .solang_out "$@"; then
  46. printf "\033[32;1m SUCCESS\n\033[0m\n"
  47. return 0
  48. else
  49. printf "\033[31;1m FAILED\n\033[0m\n"
  50. return 1
  51. fi
  52. fi
  53. }
  54. function compare_runs {
  55. expected=$1
  56. solc_run=$2
  57. solang_run=$3
  58. name_1="$4"
  59. if [ -z ${4+x} ]; then
  60. name_1="solc"
  61. fi
  62. name_2="$5"
  63. if [ -z ${4+x} ]; then
  64. name_2="solang"
  65. fi
  66. if [ "$solc_run" -eq "$expected" ] && [ "$solc_run" -eq "$solang_run" ]; then
  67. printf "\033[1;32m" # GREEN BOLD
  68. printf "SUCCESS:"
  69. printf "\033[0m" # UNRED
  70. printf " %s and %s exit codes are expected value\n" "$name_1" "$name_2"
  71. return 0
  72. else
  73. printf "\033[1;31m" # RED BOLD
  74. echo "FAILURE:"
  75. printf "\033[0m" # UNRED
  76. echo " expected: $expected"
  77. echo " $name_1: $solc_run"
  78. echo " $name_2: $solang_run"
  79. return 1
  80. fi
  81. }
  82. function print_test_banner {
  83. echo
  84. printf "\033[34;1m"
  85. printf "TEST %s:" "$1"
  86. printf "\033[0;1m"
  87. printf " %s\n" "$2"
  88. printf "\033[0m"
  89. echo
  90. }