test_tools.sh 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. #!/usr/bin/env bash
  2. # Copyright (c) 2008-2022 the Urho3D project
  3. # License: MIT
  4. if [[ $# != 2 ]]
  5. then
  6. echo "Usage: test_tools.sh repo_dir build_dir"
  7. exit 1
  8. fi
  9. repo_dir=$1
  10. build_dir=$2
  11. # Remove trailing slash in Unix and Windows
  12. repo_dir=${repo_dir%/}
  13. repo_dir=${repo_dir%\\}
  14. build_dir=${build_dir%/}
  15. build_dir=${build_dir%\\}
  16. src_filenames=(
  17. Jack.mesh.xml
  18. Level.mesh.xml
  19. Mushroom.mesh.xml
  20. Ninja.mesh.xml
  21. Potion.mesh.xml
  22. SnowBall.mesh.xml
  23. SnowCrate.mesh.xml
  24. )
  25. result_filenames=(
  26. Jack_Walk.ani
  27. Ninja_Attack1.ani
  28. Ninja_Attack2.ani
  29. Ninja_Attack3.ani
  30. Ninja_Backflip.ani
  31. Ninja_Block.ani
  32. Ninja_Climb.ani
  33. Ninja_Crouch.ani
  34. Ninja_Death1.ani
  35. Ninja_Death2.ani
  36. Ninja_HighJump.ani
  37. Ninja_Idle1.ani
  38. Ninja_Idle2.ani
  39. Ninja_Idle3.ani
  40. Ninja_Jump.ani
  41. Ninja_JumpNoHeight.ani
  42. Ninja_Kick.ani
  43. Ninja_SideKick.ani
  44. Ninja_Spin.ani
  45. Ninja_Stealth.ani
  46. Ninja_Walk.ani
  47. Jack.mdl
  48. Level.mdl
  49. Mushroom.mdl
  50. Ninja.mdl
  51. Potion.mdl
  52. SnowBall.mdl
  53. SnowCrate.mdl
  54. )
  55. # This is not used because the result is compiler dependent.
  56. # Perhaps this is due to the calculation error when using float
  57. result_checksums=(
  58. a07f69d23b84b0039d7e9159a494d7c5a587ae6d # Jack_Walk.ani
  59. 5abfe9cee41a2d8c4d8af8af5baf879fc6ab36cb # Ninja_Attack1.ani
  60. f73548094148f9d18d6a93b66eac647db50672eb # Ninja_Attack2.ani
  61. 0549824bcbf73ebaff17964ba81ae2ca813ad684 # Ninja_Attack3.ani
  62. a2aab4ad61b9de9038135abf9b1e459e17d6bb20 # Ninja_Backflip.ani
  63. dec34fb0ec43f6fca8037328fc0dc8bd1e55d30d # Ninja_Block.ani
  64. ae20b728ca1f2776ab6bb66ab4855f56710e8d14 # Ninja_Climb.ani
  65. 8f21ea4e1f999167a2b82a575c15de614f576a0f # Ninja_Crouch.ani
  66. b3314a675d1a41f97f818f06b562e20ab072de5a # Ninja_Death1.ani
  67. e3dd6aa2fb9b585180e3772b7c598828d935bf15 # Ninja_Death2.ani
  68. ff6766e3d55855a240fc35ccf7395a6517911c99 # Ninja_HighJump.ani
  69. d565fea93087a60df836637aad7f9c8184c28c6a # Ninja_Idle1.ani
  70. 065f7d89e032c18dedeae0b64975984ec80d3557 # Ninja_Idle2.ani
  71. 00b4d893b3cffbf58db4fb7f0e970990accb1155 # Ninja_Idle3.ani
  72. bad0c363ec9cf9283ca08b8ca44a86dc09068603 # Ninja_Jump.ani
  73. e55e9a21e635eb8a31b708fa009e9aca06ea9e7d # Ninja_JumpNoHeight.ani
  74. 82fcc8eda8929809fd771805466b8e287af3a3c7 # Ninja_Kick.ani
  75. b09e8cc6e0fb58786c21184bcc0aa8dcd4b51b57 # Ninja_SideKick.ani
  76. 63683537161f7352684bc50a44b753b5f9691af3 # Ninja_Spin.ani
  77. 801383ba0ad30d4a0d401a69af5ca88bf5c6b39f # Ninja_Stealth.ani
  78. 608a91452ff6980ef34ca68c4fd688fd719592c2 # Ninja_Walk.ani
  79. c8b032146ccde40058af94d5578e61345f6fb648 # Jack.mdl
  80. cde0671fced710d666f15cd941c9f385359a45e9 # Level.mdl
  81. 39afeecb472b8be081fddb59419db595ccae2105 # Mushroom.mdl
  82. ef5b6c831566f45cef0c7652fe16a7eec7f57f4c # Ninja.mdl
  83. 351044e86480d7ab0ee5bac2f557f800e6770925 # Potion.mdl
  84. 4c3c7b1c47f62c5c0a99e1f33bd20463a64d6b93 # SnowBall.mdl
  85. 110a90536d58e0a57ef6070b2b372341cb97bdaa # SnowCrate.mdl
  86. )
  87. result_sizes=(
  88. 56410 # Jack_Walk.ani
  89. 2916 # Ninja_Attack1.ani
  90. 2788 # Ninja_Attack2.ani
  91. 2628 # Ninja_Attack3.ani
  92. 3141 # Ninja_Backflip.ani
  93. 1186 # Ninja_Block.ani
  94. 2466 # Ninja_Climb.ani
  95. 4003 # Ninja_Crouch.ani
  96. 2307 # Ninja_Death1.ani
  97. 2723 # Ninja_Death2.ani
  98. 5541 # Ninja_HighJump.ani
  99. 3682 # Ninja_Idle1.ani
  100. 2434 # Ninja_Idle2.ani
  101. 2658 # Ninja_Idle3.ani
  102. 2785 # Ninja_Jump.ani
  103. 2857 # Ninja_JumpNoHeight.ani
  104. 3745 # Ninja_Kick.ani
  105. 2885 # Ninja_SideKick.ani
  106. 2625 # Ninja_Spin.ani
  107. 2244 # Ninja_Stealth.ani
  108. 3201 # Ninja_Walk.ani
  109. 433684 # Jack.mdl
  110. 26100 # Level.mdl
  111. 74196 # Mushroom.mdl
  112. 66895 # Ninja.mdl
  113. 7092 # Potion.mdl
  114. 2484 # SnowBall.mdl
  115. 11724 # SnowCrate.mdl
  116. )
  117. # Convert models
  118. for (( i = 0; i < ${#src_filenames[*]}; ++i ))
  119. do
  120. src_filepath=${repo_dir}/SourceAssets/${src_filenames[$i]}
  121. # Replace extension from .mesh.xml to .mdl
  122. output_filename=${src_filenames[$i]%.mesh.xml}.mdl
  123. ${build_dir}/bin/tool/OgreImporter $src_filepath $output_filename -t
  124. # Check exit code of the previous command
  125. if [[ $? != 0 ]]
  126. then
  127. echo temp
  128. exit 1
  129. fi
  130. done
  131. # Compare checksums
  132. #for (( i = 0; i < ${#result_filenames[*]}; ++i ))
  133. #do
  134. # checksum=$(sha1sum ${result_filenames[$i]})
  135. #
  136. # # Check exit code of the previous command
  137. # if [[ $? != 0 ]]
  138. # then
  139. # exit 1
  140. # fi
  141. #
  142. # # Extract checksum from string
  143. # checksum=$(echo $checksum | awk '{print $1}')
  144. #
  145. # if [[ $checksum != ${result_checksums[$i]} ]]
  146. # then
  147. # echo "${result_filenames[$i]}: incorrect checksum"
  148. # exit 1
  149. # fi
  150. #done
  151. # Check sizes instead checksums
  152. for (( i = 0; i < ${#result_filenames[*]}; ++i ))
  153. do
  154. # This works on any platform
  155. file_size=$(wc -c ${result_filenames[$i]})
  156. # Check exit code of the previous command
  157. if [[ $? != 0 ]]
  158. then
  159. exit 1
  160. fi
  161. # Extract size from string
  162. file_size=$(echo $file_size | awk '{print $1}')
  163. if [[ $file_size != ${result_sizes[$i]} ]]
  164. then
  165. echo "${result_filenames[$i]}: incorrect size"
  166. exit 1
  167. fi
  168. done
  169. # vi: set ts=4 sw=4 expandtab: