ceedling 0.30.0 → 0.31.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (733) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +4 -2
  4. data/README.md +9 -6
  5. data/assets/auto_link_deep_dependencies/src/a.c +7 -0
  6. data/assets/auto_link_deep_dependencies/src/b.c +7 -0
  7. data/assets/auto_link_deep_dependencies/src/c.c +8 -0
  8. data/assets/auto_link_deep_dependencies/src/internal_inc/a.h +6 -0
  9. data/assets/auto_link_deep_dependencies/src/internal_inc/b.h +6 -0
  10. data/assets/auto_link_deep_dependencies/src/internal_inc/c.h +6 -0
  11. data/assets/auto_link_deep_dependencies/src/internal_inc/never_compiled.h +6 -0
  12. data/assets/auto_link_deep_dependencies/src/never_compiled.c +6 -0
  13. data/assets/auto_link_deep_dependencies/test/test_a.c +11 -0
  14. data/assets/auto_link_deep_dependencies/test/test_b.c +11 -0
  15. data/assets/auto_link_deep_dependencies/test/test_c.c +11 -0
  16. data/assets/test_example_file_unity_printf.c +12 -0
  17. data/assets/test_example_with_parameterized_tests.c +19 -0
  18. data/assets/tests_with_defines/src/adc_hardware.c +11 -0
  19. data/assets/tests_with_defines/src/adc_hardware.h +6 -0
  20. data/assets/tests_with_defines/src/adc_hardware_configurator.c +11 -0
  21. data/assets/tests_with_defines/src/adc_hardware_configurator.h +10 -0
  22. data/assets/tests_with_defines/test/test_adc_hardware.c +21 -0
  23. data/assets/tests_with_defines/test/test_adc_hardware_special.c +21 -0
  24. data/bin/ceedling +0 -1
  25. data/ceedling.gemspec +5 -4
  26. data/ceedling.sublime-project +28 -0
  27. data/ceedling.sublime-workspace +452 -0
  28. data/config/test_environment.rb +0 -1
  29. data/docs/CeedlingPacket.md +59 -6
  30. data/examples/blinky/project.yml +3 -1
  31. data/examples/blinky/rakefile.rb +1 -2
  32. data/examples/temp_sensor/build/test/cache/AdcConductor.h +20 -0
  33. data/examples/temp_sensor/build/test/cache/AdcHardware.h +16 -0
  34. data/examples/temp_sensor/build/test/cache/AdcHardwareConfigurator.h +14 -0
  35. data/examples/temp_sensor/build/test/cache/AdcModel.h +20 -0
  36. data/examples/temp_sensor/build/test/cache/AdcTemperatureSensor.h +14 -0
  37. data/examples/temp_sensor/build/test/cache/Executor.h +12 -0
  38. data/examples/temp_sensor/build/test/cache/IntrinsicsWrapper.h +9 -0
  39. data/examples/temp_sensor/build/test/cache/Model.h +10 -0
  40. data/examples/temp_sensor/build/test/cache/TaskScheduler.h +16 -0
  41. data/examples/temp_sensor/build/test/cache/TemperatureCalculator.h +10 -0
  42. data/examples/temp_sensor/build/test/cache/TemperatureFilter.h +14 -0
  43. data/examples/temp_sensor/build/test/cache/TestAdcConductor.c +169 -0
  44. data/examples/temp_sensor/build/test/cache/TestAdcHardware.c +82 -0
  45. data/examples/temp_sensor/build/test/cache/TestAdcModel.c +59 -0
  46. data/examples/temp_sensor/build/test/cache/TestExecutor.c +63 -0
  47. data/examples/temp_sensor/build/test/cache/TestMain.c +43 -0
  48. data/examples/temp_sensor/build/test/cache/TestModel.c +34 -0
  49. data/examples/temp_sensor/build/test/cache/TestTaskScheduler.c +204 -0
  50. data/examples/temp_sensor/build/test/cache/TestTemperatureCalculator.c +70 -0
  51. data/examples/temp_sensor/build/test/cache/TestTemperatureFilter.c +154 -0
  52. data/examples/temp_sensor/build/test/cache/TestTimerConductor.c +57 -0
  53. data/examples/temp_sensor/build/test/cache/TestTimerHardware.c +47 -0
  54. data/examples/temp_sensor/build/test/cache/TestTimerModel.c +31 -0
  55. data/examples/temp_sensor/build/test/cache/TestUsartBaudRateRegisterCalculator.c +38 -0
  56. data/examples/temp_sensor/build/test/cache/TestUsartConductor.c +73 -0
  57. data/examples/temp_sensor/build/test/cache/TestUsartHardware.c +66 -0
  58. data/examples/temp_sensor/build/test/cache/TestUsartModel.c +73 -0
  59. data/examples/temp_sensor/build/test/cache/TimerConductor.h +12 -0
  60. data/examples/temp_sensor/build/test/cache/TimerConfigurator.h +24 -0
  61. data/examples/temp_sensor/build/test/cache/TimerHardware.h +10 -0
  62. data/examples/temp_sensor/build/test/cache/TimerInterruptHandler.h +14 -0
  63. data/examples/temp_sensor/build/test/cache/TimerModel.h +10 -0
  64. data/examples/temp_sensor/build/test/cache/UsartBaudRateRegisterCalculator.h +10 -0
  65. data/examples/temp_sensor/build/test/cache/UsartConductor.h +9 -0
  66. data/examples/temp_sensor/build/test/cache/UsartConfigurator.h +20 -0
  67. data/examples/temp_sensor/build/test/cache/UsartHardware.h +12 -0
  68. data/examples/temp_sensor/build/test/cache/UsartModel.h +14 -0
  69. data/examples/temp_sensor/build/test/cache/UsartPutChar.h +10 -0
  70. data/examples/temp_sensor/build/test/cache/defines_dependency.yml +77 -0
  71. data/examples/temp_sensor/build/test/cache/input.yml +310 -0
  72. data/examples/temp_sensor/build/test/dependencies/AdcConductor.d +2 -0
  73. data/examples/temp_sensor/build/test/dependencies/AdcHardware.d +3 -0
  74. data/examples/temp_sensor/build/test/dependencies/AdcModel.d +3 -0
  75. data/examples/temp_sensor/build/test/dependencies/Executor.d +3 -0
  76. data/examples/temp_sensor/build/test/dependencies/Main.d +11 -0
  77. data/examples/temp_sensor/build/test/dependencies/MockAdcConductor.d +6 -0
  78. data/examples/temp_sensor/build/test/dependencies/MockAdcHardware.d +6 -0
  79. data/examples/temp_sensor/build/test/dependencies/MockAdcHardwareConfigurator.d +8 -0
  80. data/examples/temp_sensor/build/test/dependencies/MockAdcModel.d +6 -0
  81. data/examples/temp_sensor/build/test/dependencies/MockAdcTemperatureSensor.d +8 -0
  82. data/examples/temp_sensor/build/test/dependencies/MockExecutor.d +6 -0
  83. data/examples/temp_sensor/build/test/dependencies/MockIntrinsicsWrapper.d +7 -0
  84. data/examples/temp_sensor/build/test/dependencies/MockModel.d +6 -0
  85. data/examples/temp_sensor/build/test/dependencies/MockTaskScheduler.d +7 -0
  86. data/examples/temp_sensor/build/test/dependencies/MockTemperatureCalculator.d +8 -0
  87. data/examples/temp_sensor/build/test/dependencies/MockTemperatureFilter.d +8 -0
  88. data/examples/temp_sensor/build/test/dependencies/MockTimerConductor.d +7 -0
  89. data/examples/temp_sensor/build/test/dependencies/MockTimerConfigurator.d +8 -0
  90. data/examples/temp_sensor/build/test/dependencies/MockTimerHardware.d +7 -0
  91. data/examples/temp_sensor/build/test/dependencies/MockTimerInterruptHandler.d +8 -0
  92. data/examples/temp_sensor/build/test/dependencies/MockTimerModel.d +6 -0
  93. data/examples/temp_sensor/build/test/dependencies/MockUsartBaudRateRegisterCalculator.d +8 -0
  94. data/examples/temp_sensor/build/test/dependencies/MockUsartConductor.d +7 -0
  95. data/examples/temp_sensor/build/test/dependencies/MockUsartConfigurator.d +8 -0
  96. data/examples/temp_sensor/build/test/dependencies/MockUsartHardware.d +7 -0
  97. data/examples/temp_sensor/build/test/dependencies/MockUsartModel.d +6 -0
  98. data/examples/temp_sensor/build/test/dependencies/MockUsartPutChar.d +6 -0
  99. data/examples/temp_sensor/build/test/dependencies/Model.d +2 -0
  100. data/examples/temp_sensor/build/test/dependencies/TaskScheduler.d +2 -0
  101. data/examples/temp_sensor/build/test/dependencies/TemperatureCalculator.d +2 -0
  102. data/examples/temp_sensor/build/test/dependencies/TemperatureFilter.d +2 -0
  103. data/examples/temp_sensor/build/test/dependencies/TestAdcConductor.d +6 -0
  104. data/examples/temp_sensor/build/test/dependencies/TestAdcConductor_runner.d +8 -0
  105. data/examples/temp_sensor/build/test/dependencies/TestAdcHardware.d +7 -0
  106. data/examples/temp_sensor/build/test/dependencies/TestAdcHardware_runner.d +9 -0
  107. data/examples/temp_sensor/build/test/dependencies/TestAdcModel.d +7 -0
  108. data/examples/temp_sensor/build/test/dependencies/TestAdcModel_runner.d +10 -0
  109. data/examples/temp_sensor/build/test/dependencies/TestExecutor.d +8 -0
  110. data/examples/temp_sensor/build/test/dependencies/TestExecutor_runner.d +11 -0
  111. data/examples/temp_sensor/build/test/dependencies/TestMain.d +4 -0
  112. data/examples/temp_sensor/build/test/dependencies/TestMain_runner.d +6 -0
  113. data/examples/temp_sensor/build/test/dependencies/TestModel.d +6 -0
  114. data/examples/temp_sensor/build/test/dependencies/TestModel_runner.d +8 -0
  115. data/examples/temp_sensor/build/test/dependencies/TestTaskScheduler.d +4 -0
  116. data/examples/temp_sensor/build/test/dependencies/TestTaskScheduler_runner.d +4 -0
  117. data/examples/temp_sensor/build/test/dependencies/TestTemperatureCalculator.d +5 -0
  118. data/examples/temp_sensor/build/test/dependencies/TestTemperatureCalculator_runner.d +4 -0
  119. data/examples/temp_sensor/build/test/dependencies/TestTemperatureFilter.d +4 -0
  120. data/examples/temp_sensor/build/test/dependencies/TestTemperatureFilter_runner.d +4 -0
  121. data/examples/temp_sensor/build/test/dependencies/TestTimerConductor.d +7 -0
  122. data/examples/temp_sensor/build/test/dependencies/TestTimerConductor_runner.d +10 -0
  123. data/examples/temp_sensor/build/test/dependencies/TestTimerHardware.d +5 -0
  124. data/examples/temp_sensor/build/test/dependencies/TestTimerHardware_runner.d +8 -0
  125. data/examples/temp_sensor/build/test/dependencies/TestTimerModel.d +5 -0
  126. data/examples/temp_sensor/build/test/dependencies/TestTimerModel_runner.d +7 -0
  127. data/examples/temp_sensor/build/test/dependencies/TestUsartBaudRateRegisterCalculator.d +5 -0
  128. data/examples/temp_sensor/build/test/dependencies/TestUsartBaudRateRegisterCalculator_runner.d +4 -0
  129. data/examples/temp_sensor/build/test/dependencies/TestUsartConductor.d +7 -0
  130. data/examples/temp_sensor/build/test/dependencies/TestUsartConductor_runner.d +9 -0
  131. data/examples/temp_sensor/build/test/dependencies/TestUsartHardware.d +6 -0
  132. data/examples/temp_sensor/build/test/dependencies/TestUsartHardware_runner.d +8 -0
  133. data/examples/temp_sensor/build/test/dependencies/TestUsartModel.d +7 -0
  134. data/examples/temp_sensor/build/test/dependencies/TestUsartModel_runner.d +9 -0
  135. data/examples/temp_sensor/build/test/dependencies/TimerConductor.d +3 -0
  136. data/examples/temp_sensor/build/test/dependencies/TimerHardware.d +2 -0
  137. data/examples/temp_sensor/build/test/dependencies/TimerModel.d +2 -0
  138. data/examples/temp_sensor/build/test/dependencies/UnityHelper.d +4 -0
  139. data/examples/temp_sensor/build/test/dependencies/UsartBaudRateRegisterCalculator.d +3 -0
  140. data/examples/temp_sensor/build/test/dependencies/UsartConductor.d +3 -0
  141. data/examples/temp_sensor/build/test/dependencies/UsartHardware.d +2 -0
  142. data/examples/temp_sensor/build/test/dependencies/UsartModel.d +3 -0
  143. data/examples/temp_sensor/build/test/dependencies/cmock.d +6 -0
  144. data/examples/temp_sensor/build/test/dependencies/unity.d +4 -0
  145. data/examples/temp_sensor/build/test/mocks/MockAdcConductor.c +391 -0
  146. data/examples/temp_sensor/build/test/mocks/MockAdcConductor.h +64 -0
  147. data/examples/temp_sensor/build/test/mocks/MockAdcHardware.c +313 -0
  148. data/examples/temp_sensor/build/test/mocks/MockAdcHardware.h +58 -0
  149. data/examples/temp_sensor/build/test/mocks/MockAdcHardwareConfigurator.c +218 -0
  150. data/examples/temp_sensor/build/test/mocks/MockAdcHardwareConfigurator.h +52 -0
  151. data/examples/temp_sensor/build/test/mocks/MockAdcModel.c +453 -0
  152. data/examples/temp_sensor/build/test/mocks/MockAdcModel.h +64 -0
  153. data/examples/temp_sensor/build/test/mocks/MockAdcTemperatureSensor.c +252 -0
  154. data/examples/temp_sensor/build/test/mocks/MockAdcTemperatureSensor.h +52 -0
  155. data/examples/temp_sensor/build/test/mocks/MockExecutor.c +174 -0
  156. data/examples/temp_sensor/build/test/mocks/MockExecutor.h +46 -0
  157. data/examples/temp_sensor/build/test/mocks/MockIntrinsicsWrapper.c +157 -0
  158. data/examples/temp_sensor/build/test/mocks/MockIntrinsicsWrapper.h +46 -0
  159. data/examples/temp_sensor/build/test/mocks/MockModel.c +96 -0
  160. data/examples/temp_sensor/build/test/mocks/MockModel.h +40 -0
  161. data/examples/temp_sensor/build/test/mocks/MockTaskScheduler.c +326 -0
  162. data/examples/temp_sensor/build/test/mocks/MockTaskScheduler.h +58 -0
  163. data/examples/temp_sensor/build/test/mocks/MockTemperatureCalculator.c +126 -0
  164. data/examples/temp_sensor/build/test/mocks/MockTemperatureCalculator.h +40 -0
  165. data/examples/temp_sensor/build/test/mocks/MockTemperatureFilter.c +248 -0
  166. data/examples/temp_sensor/build/test/mocks/MockTemperatureFilter.h +52 -0
  167. data/examples/temp_sensor/build/test/mocks/MockTimerConductor.c +157 -0
  168. data/examples/temp_sensor/build/test/mocks/MockTimerConductor.h +46 -0
  169. data/examples/temp_sensor/build/test/mocks/MockTimerConfigurator.c +523 -0
  170. data/examples/temp_sensor/build/test/mocks/MockTimerConfigurator.h +82 -0
  171. data/examples/temp_sensor/build/test/mocks/MockTimerHardware.c +96 -0
  172. data/examples/temp_sensor/build/test/mocks/MockTimerHardware.h +40 -0
  173. data/examples/temp_sensor/build/test/mocks/MockTimerInterruptHandler.c +248 -0
  174. data/examples/temp_sensor/build/test/mocks/MockTimerInterruptHandler.h +52 -0
  175. data/examples/temp_sensor/build/test/mocks/MockTimerModel.c +109 -0
  176. data/examples/temp_sensor/build/test/mocks/MockTimerModel.h +40 -0
  177. data/examples/temp_sensor/build/test/mocks/MockUsartBaudRateRegisterCalculator.c +133 -0
  178. data/examples/temp_sensor/build/test/mocks/MockUsartBaudRateRegisterCalculator.h +40 -0
  179. data/examples/temp_sensor/build/test/mocks/MockUsartConductor.c +157 -0
  180. data/examples/temp_sensor/build/test/mocks/MockUsartConductor.h +46 -0
  181. data/examples/temp_sensor/build/test/mocks/MockUsartConfigurator.c +414 -0
  182. data/examples/temp_sensor/build/test/mocks/MockUsartConfigurator.h +70 -0
  183. data/examples/temp_sensor/build/test/mocks/MockUsartHardware.c +183 -0
  184. data/examples/temp_sensor/build/test/mocks/MockUsartHardware.h +46 -0
  185. data/examples/temp_sensor/build/test/mocks/MockUsartModel.c +269 -0
  186. data/examples/temp_sensor/build/test/mocks/MockUsartModel.h +52 -0
  187. data/examples/temp_sensor/build/test/mocks/MockUsartPutChar.c +109 -0
  188. data/examples/temp_sensor/build/test/mocks/MockUsartPutChar.h +40 -0
  189. data/examples/temp_sensor/build/test/out/TestAdcConductor.out +0 -0
  190. data/examples/temp_sensor/build/test/out/TestAdcHardware.out +0 -0
  191. data/examples/temp_sensor/build/test/out/TestAdcModel.out +0 -0
  192. data/examples/temp_sensor/build/test/out/TestExecutor.out +0 -0
  193. data/examples/temp_sensor/build/test/out/TestMain.out +0 -0
  194. data/examples/temp_sensor/build/test/out/TestModel.out +0 -0
  195. data/examples/temp_sensor/build/test/out/TestTaskScheduler.out +0 -0
  196. data/examples/temp_sensor/build/test/out/TestTemperatureCalculator.out +0 -0
  197. data/examples/temp_sensor/build/test/out/TestTemperatureFilter.out +0 -0
  198. data/examples/temp_sensor/build/test/out/TestTimerConductor.out +0 -0
  199. data/examples/temp_sensor/build/test/out/TestTimerHardware.out +0 -0
  200. data/examples/temp_sensor/build/test/out/TestTimerModel.out +0 -0
  201. data/examples/temp_sensor/build/test/out/TestUsartBaudRateRegisterCalculator.out +0 -0
  202. data/examples/temp_sensor/build/test/out/TestUsartConductor.out +0 -0
  203. data/examples/temp_sensor/build/test/out/TestUsartHardware.out +0 -0
  204. data/examples/temp_sensor/build/test/out/TestUsartModel.out +0 -0
  205. data/examples/temp_sensor/build/test/out/c/AdcConductor.o +0 -0
  206. data/examples/temp_sensor/build/test/out/c/AdcHardware.o +0 -0
  207. data/examples/temp_sensor/build/test/out/c/AdcModel.o +0 -0
  208. data/examples/temp_sensor/build/test/out/c/Executor.o +0 -0
  209. data/examples/temp_sensor/build/test/out/c/Main.o +0 -0
  210. data/examples/temp_sensor/build/test/out/c/MockAdcConductor.o +0 -0
  211. data/examples/temp_sensor/build/test/out/c/MockAdcHardware.o +0 -0
  212. data/examples/temp_sensor/build/test/out/c/MockAdcHardwareConfigurator.o +0 -0
  213. data/examples/temp_sensor/build/test/out/c/MockAdcModel.o +0 -0
  214. data/examples/temp_sensor/build/test/out/c/MockAdcTemperatureSensor.o +0 -0
  215. data/examples/temp_sensor/build/test/out/c/MockExecutor.o +0 -0
  216. data/examples/temp_sensor/build/test/out/c/MockIntrinsicsWrapper.o +0 -0
  217. data/examples/temp_sensor/build/test/out/c/MockModel.o +0 -0
  218. data/examples/temp_sensor/build/test/out/c/MockTaskScheduler.o +0 -0
  219. data/examples/temp_sensor/build/test/out/c/MockTemperatureCalculator.o +0 -0
  220. data/examples/temp_sensor/build/test/out/c/MockTemperatureFilter.o +0 -0
  221. data/examples/temp_sensor/build/test/out/c/MockTimerConductor.o +0 -0
  222. data/examples/temp_sensor/build/test/out/c/MockTimerConfigurator.o +0 -0
  223. data/examples/temp_sensor/build/test/out/c/MockTimerHardware.o +0 -0
  224. data/examples/temp_sensor/build/test/out/c/MockTimerInterruptHandler.o +0 -0
  225. data/examples/temp_sensor/build/test/out/c/MockTimerModel.o +0 -0
  226. data/examples/temp_sensor/build/test/out/c/MockUsartBaudRateRegisterCalculator.o +0 -0
  227. data/examples/temp_sensor/build/test/out/c/MockUsartConductor.o +0 -0
  228. data/examples/temp_sensor/build/test/out/c/MockUsartConfigurator.o +0 -0
  229. data/examples/temp_sensor/build/test/out/c/MockUsartHardware.o +0 -0
  230. data/examples/temp_sensor/build/test/out/c/MockUsartModel.o +0 -0
  231. data/examples/temp_sensor/build/test/out/c/MockUsartPutChar.o +0 -0
  232. data/examples/temp_sensor/build/test/out/c/Model.o +0 -0
  233. data/examples/temp_sensor/build/test/out/c/TaskScheduler.o +0 -0
  234. data/examples/temp_sensor/build/test/out/c/TemperatureCalculator.o +0 -0
  235. data/examples/temp_sensor/build/test/out/c/TemperatureFilter.o +0 -0
  236. data/examples/temp_sensor/build/test/out/c/TestAdcConductor.o +0 -0
  237. data/examples/temp_sensor/build/test/out/c/TestAdcConductor_runner.o +0 -0
  238. data/examples/temp_sensor/build/test/out/c/TestAdcHardware.o +0 -0
  239. data/examples/temp_sensor/build/test/out/c/TestAdcHardware_runner.o +0 -0
  240. data/examples/temp_sensor/build/test/out/c/TestAdcModel.o +0 -0
  241. data/examples/temp_sensor/build/test/out/c/TestAdcModel_runner.o +0 -0
  242. data/examples/temp_sensor/build/test/out/c/TestExecutor.o +0 -0
  243. data/examples/temp_sensor/build/test/out/c/TestExecutor_runner.o +0 -0
  244. data/examples/temp_sensor/build/test/out/c/TestMain.o +0 -0
  245. data/examples/temp_sensor/build/test/out/c/TestMain_runner.o +0 -0
  246. data/examples/temp_sensor/build/test/out/c/TestModel.o +0 -0
  247. data/examples/temp_sensor/build/test/out/c/TestModel_runner.o +0 -0
  248. data/examples/temp_sensor/build/test/out/c/TestTaskScheduler.o +0 -0
  249. data/examples/temp_sensor/build/test/out/c/TestTaskScheduler_runner.o +0 -0
  250. data/examples/temp_sensor/build/test/out/c/TestTemperatureCalculator.o +0 -0
  251. data/examples/temp_sensor/build/test/out/c/TestTemperatureCalculator_runner.o +0 -0
  252. data/examples/temp_sensor/build/test/out/c/TestTemperatureFilter.o +0 -0
  253. data/examples/temp_sensor/build/test/out/c/TestTemperatureFilter_runner.o +0 -0
  254. data/examples/temp_sensor/build/test/out/c/TestTimerConductor.o +0 -0
  255. data/examples/temp_sensor/build/test/out/c/TestTimerConductor_runner.o +0 -0
  256. data/examples/temp_sensor/build/test/out/c/TestTimerHardware.o +0 -0
  257. data/examples/temp_sensor/build/test/out/c/TestTimerHardware_runner.o +0 -0
  258. data/examples/temp_sensor/build/test/out/c/TestTimerModel.o +0 -0
  259. data/examples/temp_sensor/build/test/out/c/TestTimerModel_runner.o +0 -0
  260. data/examples/temp_sensor/build/test/out/c/TestUsartBaudRateRegisterCalculator.o +0 -0
  261. data/examples/temp_sensor/build/test/out/c/TestUsartBaudRateRegisterCalculator_runner.o +0 -0
  262. data/examples/temp_sensor/build/test/out/c/TestUsartConductor.o +0 -0
  263. data/examples/temp_sensor/build/test/out/c/TestUsartConductor_runner.o +0 -0
  264. data/examples/temp_sensor/build/test/out/c/TestUsartHardware.o +0 -0
  265. data/examples/temp_sensor/build/test/out/c/TestUsartHardware_runner.o +0 -0
  266. data/examples/temp_sensor/build/test/out/c/TestUsartModel.o +0 -0
  267. data/examples/temp_sensor/build/test/out/c/TestUsartModel_runner.o +0 -0
  268. data/examples/temp_sensor/build/test/out/c/TimerConductor.o +0 -0
  269. data/examples/temp_sensor/build/test/out/c/TimerHardware.o +0 -0
  270. data/examples/temp_sensor/build/test/out/c/TimerModel.o +0 -0
  271. data/examples/temp_sensor/build/test/out/c/UnityHelper.o +0 -0
  272. data/examples/temp_sensor/build/test/out/c/UsartBaudRateRegisterCalculator.o +0 -0
  273. data/examples/temp_sensor/build/test/out/c/UsartConductor.o +0 -0
  274. data/examples/temp_sensor/build/test/out/c/UsartHardware.o +0 -0
  275. data/examples/temp_sensor/build/test/out/c/UsartModel.o +0 -0
  276. data/examples/temp_sensor/build/test/out/c/cmock.o +0 -0
  277. data/examples/temp_sensor/build/test/out/c/unity.o +0 -0
  278. data/examples/temp_sensor/build/test/preprocess/files/AdcConductor.h +20 -0
  279. data/examples/temp_sensor/build/test/preprocess/files/AdcHardware.h +16 -0
  280. data/examples/temp_sensor/build/test/preprocess/files/AdcHardwareConfigurator.h +14 -0
  281. data/examples/temp_sensor/build/test/preprocess/files/AdcModel.h +20 -0
  282. data/examples/temp_sensor/build/test/preprocess/files/AdcTemperatureSensor.h +14 -0
  283. data/examples/temp_sensor/build/test/preprocess/files/Executor.h +12 -0
  284. data/examples/temp_sensor/build/test/preprocess/files/IntrinsicsWrapper.h +9 -0
  285. data/examples/temp_sensor/build/test/preprocess/files/Model.h +10 -0
  286. data/examples/temp_sensor/build/test/preprocess/files/TaskScheduler.h +16 -0
  287. data/examples/temp_sensor/build/test/preprocess/files/TemperatureCalculator.h +10 -0
  288. data/examples/temp_sensor/build/test/preprocess/files/TemperatureFilter.h +14 -0
  289. data/examples/temp_sensor/build/test/preprocess/files/TestAdcConductor.c +169 -0
  290. data/examples/temp_sensor/build/test/preprocess/files/TestAdcHardware.c +82 -0
  291. data/examples/temp_sensor/build/test/preprocess/files/TestAdcModel.c +59 -0
  292. data/examples/temp_sensor/build/test/preprocess/files/TestExecutor.c +63 -0
  293. data/examples/temp_sensor/build/test/preprocess/files/TestMain.c +43 -0
  294. data/examples/temp_sensor/build/test/preprocess/files/TestModel.c +34 -0
  295. data/examples/temp_sensor/build/test/preprocess/files/TestTaskScheduler.c +204 -0
  296. data/examples/temp_sensor/build/test/preprocess/files/TestTemperatureCalculator.c +70 -0
  297. data/examples/temp_sensor/build/test/preprocess/files/TestTemperatureFilter.c +154 -0
  298. data/examples/temp_sensor/build/test/preprocess/files/TestTimerConductor.c +57 -0
  299. data/examples/temp_sensor/build/test/preprocess/files/TestTimerHardware.c +47 -0
  300. data/examples/temp_sensor/build/test/preprocess/files/TestTimerModel.c +31 -0
  301. data/examples/temp_sensor/build/test/preprocess/files/TestUsartBaudRateRegisterCalculator.c +38 -0
  302. data/examples/temp_sensor/build/test/preprocess/files/TestUsartConductor.c +73 -0
  303. data/examples/temp_sensor/build/test/preprocess/files/TestUsartHardware.c +66 -0
  304. data/examples/temp_sensor/build/test/preprocess/files/TestUsartModel.c +73 -0
  305. data/examples/temp_sensor/build/test/preprocess/files/TimerConductor.h +12 -0
  306. data/examples/temp_sensor/build/test/preprocess/files/TimerConfigurator.h +24 -0
  307. data/examples/temp_sensor/build/test/preprocess/files/TimerHardware.h +10 -0
  308. data/examples/temp_sensor/build/test/preprocess/files/TimerInterruptHandler.h +14 -0
  309. data/examples/temp_sensor/build/test/preprocess/files/TimerModel.h +10 -0
  310. data/examples/temp_sensor/build/test/preprocess/files/UsartBaudRateRegisterCalculator.h +10 -0
  311. data/examples/temp_sensor/build/test/preprocess/files/UsartConductor.h +9 -0
  312. data/examples/temp_sensor/build/test/preprocess/files/UsartConfigurator.h +20 -0
  313. data/examples/temp_sensor/build/test/preprocess/files/UsartHardware.h +12 -0
  314. data/examples/temp_sensor/build/test/preprocess/files/UsartModel.h +14 -0
  315. data/examples/temp_sensor/build/test/preprocess/files/UsartPutChar.h +10 -0
  316. data/examples/temp_sensor/build/test/preprocess/includes/AdcConductor.h +2 -0
  317. data/examples/temp_sensor/build/test/preprocess/includes/AdcHardware.h +2 -0
  318. data/examples/temp_sensor/build/test/preprocess/includes/AdcHardwareConfigurator.h +2 -0
  319. data/examples/temp_sensor/build/test/preprocess/includes/AdcModel.h +2 -0
  320. data/examples/temp_sensor/build/test/preprocess/includes/AdcTemperatureSensor.h +2 -0
  321. data/examples/temp_sensor/build/test/preprocess/includes/Executor.h +2 -0
  322. data/examples/temp_sensor/build/test/preprocess/includes/IntrinsicsWrapper.h +1 -0
  323. data/examples/temp_sensor/build/test/preprocess/includes/Model.h +2 -0
  324. data/examples/temp_sensor/build/test/preprocess/includes/TaskScheduler.h +2 -0
  325. data/examples/temp_sensor/build/test/preprocess/includes/TemperatureCalculator.h +2 -0
  326. data/examples/temp_sensor/build/test/preprocess/includes/TemperatureFilter.h +2 -0
  327. data/examples/temp_sensor/build/test/preprocess/includes/TestAdcConductor.c +7 -0
  328. data/examples/temp_sensor/build/test/preprocess/includes/TestAdcHardware.c +6 -0
  329. data/examples/temp_sensor/build/test/preprocess/includes/TestAdcModel.c +7 -0
  330. data/examples/temp_sensor/build/test/preprocess/includes/TestExecutor.c +9 -0
  331. data/examples/temp_sensor/build/test/preprocess/includes/TestMain.c +5 -0
  332. data/examples/temp_sensor/build/test/preprocess/includes/TestModel.c +6 -0
  333. data/examples/temp_sensor/build/test/preprocess/includes/TestTaskScheduler.c +4 -0
  334. data/examples/temp_sensor/build/test/preprocess/includes/TestTemperatureCalculator.c +4 -0
  335. data/examples/temp_sensor/build/test/preprocess/includes/TestTemperatureFilter.c +4 -0
  336. data/examples/temp_sensor/build/test/preprocess/includes/TestTimerConductor.c +7 -0
  337. data/examples/temp_sensor/build/test/preprocess/includes/TestTimerHardware.c +5 -0
  338. data/examples/temp_sensor/build/test/preprocess/includes/TestTimerModel.c +5 -0
  339. data/examples/temp_sensor/build/test/preprocess/includes/TestUsartBaudRateRegisterCalculator.c +4 -0
  340. data/examples/temp_sensor/build/test/preprocess/includes/TestUsartConductor.c +7 -0
  341. data/examples/temp_sensor/build/test/preprocess/includes/TestUsartHardware.c +6 -0
  342. data/examples/temp_sensor/build/test/preprocess/includes/TestUsartModel.c +7 -0
  343. data/examples/temp_sensor/build/test/preprocess/includes/TimerConductor.h +2 -0
  344. data/examples/temp_sensor/build/test/preprocess/includes/TimerConfigurator.h +2 -0
  345. data/examples/temp_sensor/build/test/preprocess/includes/TimerHardware.h +2 -0
  346. data/examples/temp_sensor/build/test/preprocess/includes/TimerInterruptHandler.h +2 -0
  347. data/examples/temp_sensor/build/test/preprocess/includes/TimerModel.h +2 -0
  348. data/examples/temp_sensor/build/test/preprocess/includes/UsartBaudRateRegisterCalculator.h +2 -0
  349. data/examples/temp_sensor/build/test/preprocess/includes/UsartConductor.h +1 -0
  350. data/examples/temp_sensor/build/test/preprocess/includes/UsartConfigurator.h +2 -0
  351. data/examples/temp_sensor/build/test/preprocess/includes/UsartHardware.h +2 -0
  352. data/examples/temp_sensor/build/test/preprocess/includes/UsartModel.h +2 -0
  353. data/examples/temp_sensor/build/test/preprocess/includes/UsartPutChar.h +2 -0
  354. data/examples/temp_sensor/build/test/results/TestAdcConductor.pass +46 -0
  355. data/examples/temp_sensor/build/test/results/TestAdcHardware.pass +30 -0
  356. data/examples/temp_sensor/build/test/results/TestAdcModel.pass +26 -0
  357. data/examples/temp_sensor/build/test/results/TestExecutor.pass +22 -0
  358. data/examples/temp_sensor/build/test/results/TestMain.pass +18 -0
  359. data/examples/temp_sensor/build/test/results/TestModel.pass +18 -0
  360. data/examples/temp_sensor/build/test/results/TestTaskScheduler.pass +46 -0
  361. data/examples/temp_sensor/build/test/results/TestTemperatureCalculator.pass +22 -0
  362. data/examples/temp_sensor/build/test/results/TestTemperatureFilter.pass +30 -0
  363. data/examples/temp_sensor/build/test/results/TestTimerConductor.pass +22 -0
  364. data/examples/temp_sensor/build/test/results/TestTimerHardware.pass +18 -0
  365. data/examples/temp_sensor/build/test/results/TestTimerModel.pass +18 -0
  366. data/examples/temp_sensor/build/test/results/TestUsartBaudRateRegisterCalculator.pass +18 -0
  367. data/examples/temp_sensor/build/test/results/TestUsartConductor.pass +26 -0
  368. data/examples/temp_sensor/build/test/results/TestUsartHardware.pass +22 -0
  369. data/examples/temp_sensor/build/test/results/TestUsartModel.pass +30 -0
  370. data/examples/temp_sensor/build/test/runners/TestAdcConductor_runner.c +105 -0
  371. data/examples/temp_sensor/build/test/runners/TestAdcHardware_runner.c +97 -0
  372. data/examples/temp_sensor/build/test/runners/TestAdcModel_runner.c +99 -0
  373. data/examples/temp_sensor/build/test/runners/TestExecutor_runner.c +105 -0
  374. data/examples/temp_sensor/build/test/runners/TestMain_runner.c +87 -0
  375. data/examples/temp_sensor/build/test/runners/TestModel_runner.c +91 -0
  376. data/examples/temp_sensor/build/test/runners/TestTaskScheduler_runner.c +95 -0
  377. data/examples/temp_sensor/build/test/runners/TestTemperatureCalculator_runner.c +83 -0
  378. data/examples/temp_sensor/build/test/runners/TestTemperatureFilter_runner.c +87 -0
  379. data/examples/temp_sensor/build/test/runners/TestTimerConductor_runner.c +97 -0
  380. data/examples/temp_sensor/build/test/runners/TestTimerHardware_runner.c +87 -0
  381. data/examples/temp_sensor/build/test/runners/TestTimerModel_runner.c +87 -0
  382. data/examples/temp_sensor/build/test/runners/TestUsartBaudRateRegisterCalculator_runner.c +81 -0
  383. data/examples/temp_sensor/build/test/runners/TestUsartConductor_runner.c +99 -0
  384. data/examples/temp_sensor/build/test/runners/TestUsartHardware_runner.c +93 -0
  385. data/examples/temp_sensor/build/test/runners/TestUsartModel_runner.c +97 -0
  386. data/examples/temp_sensor/project.yml +3 -1
  387. data/lib/ceedling/configurator.rb +6 -1
  388. data/lib/ceedling/configurator_builder.rb +18 -6
  389. data/lib/ceedling/configurator_setup.rb +1 -0
  390. data/lib/ceedling/constants.rb +1 -1
  391. data/lib/ceedling/defaults.rb +23 -0
  392. data/lib/ceedling/objects.yml +2 -0
  393. data/lib/ceedling/preprocessinator.rb +17 -8
  394. data/lib/ceedling/preprocessinator_extractor.rb +23 -0
  395. data/lib/ceedling/preprocessinator_file_handler.rb +13 -0
  396. data/lib/ceedling/preprocessinator_includes_handler.rb +61 -53
  397. data/lib/ceedling/project_config_manager.rb +2 -2
  398. data/lib/ceedling/rakefile.rb +0 -1
  399. data/lib/ceedling/rules_tests.rake +1 -1
  400. data/lib/ceedling/setupinator.rb +1 -1
  401. data/lib/ceedling/tasks_tests.rake +8 -6
  402. data/lib/ceedling/test_invoker.rb +1 -0
  403. data/lib/ceedling/version.rb +1 -1
  404. data/out.fail +24 -0
  405. data/plugins/bullseye/bullseye.rake +5 -5
  406. data/plugins/dependencies/README.md +1 -1
  407. data/plugins/dependencies/dependencies.rake +3 -0
  408. data/plugins/dependencies/lib/dependencies.rb +9 -3
  409. data/plugins/gcov/README.md +21 -0
  410. data/plugins/gcov/config/defaults.yml +4 -0
  411. data/plugins/gcov/gcov.rake +5 -5
  412. data/plugins/gcov/lib/gcov.rb +8 -5
  413. data/plugins/gcov/lib/gcovr_reportinator.rb +2 -2
  414. data/plugins/gcov/lib/reportgenerator_reportinator.rb +45 -3
  415. data/spec/gcov/gcov_deployment_spec.rb +1 -0
  416. data/spec/gcov/gcov_test_cases_spec.rb +71 -2
  417. data/spec/preprocessinator_extractor_spec.rb +36 -0
  418. data/spec/preprocessinator_includes_handler_spec.rb +70 -19
  419. data/spec/spec_helper.rb +0 -1
  420. data/spec/spec_system_helper.rb +119 -79
  421. data/spec/system/deployment_spec.rb +30 -0
  422. data/vendor/c_exception/README.md +4 -6
  423. data/vendor/c_exception/docs/CException.md +2 -2
  424. data/vendor/c_exception/lib/CException.h +1 -1
  425. data/vendor/c_exception/lib/meson.build +2 -2
  426. data/vendor/c_exception/meson.build +2 -36
  427. data/vendor/cmock/README.md +9 -4
  428. data/vendor/cmock/docs/CMock_Summary.md +26 -1
  429. data/vendor/cmock/lib/cmock.rb +16 -9
  430. data/vendor/cmock/lib/cmock_config.rb +1 -0
  431. data/vendor/cmock/lib/cmock_generator.rb +27 -9
  432. data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +1 -0
  433. data/vendor/cmock/lib/cmock_generator_plugin_ignore_stateless.rb +85 -0
  434. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +4 -4
  435. data/vendor/cmock/lib/cmock_generator_utils.rb +6 -3
  436. data/vendor/cmock/lib/cmock_header_parser.rb +40 -14
  437. data/vendor/cmock/meson.build +1 -37
  438. data/vendor/cmock/src/cmock.h +13 -7
  439. data/vendor/cmock/src/meson.build +1 -1
  440. data/vendor/cmock/test/system/test_interactions/ignore_and_return_stateless.yml +325 -0
  441. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +3 -0
  442. data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +12 -0
  443. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_stateless_test.rb +116 -0
  444. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +4 -4
  445. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +14 -9
  446. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +129 -3
  447. data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +2 -1
  448. data/vendor/cmock/vendor/c_exception/README.md +4 -6
  449. data/vendor/cmock/vendor/c_exception/docs/CException.md +2 -2
  450. data/vendor/cmock/vendor/c_exception/lib/CException.h +1 -1
  451. data/vendor/cmock/vendor/c_exception/lib/meson.build +2 -2
  452. data/vendor/cmock/vendor/c_exception/meson.build +2 -36
  453. data/vendor/cmock/vendor/unity/CMakeLists.txt +32 -6
  454. data/vendor/cmock/vendor/unity/LICENSE.txt +1 -1
  455. data/vendor/cmock/vendor/unity/README.md +13 -4
  456. data/vendor/cmock/vendor/unity/auto/generate_module.rb +11 -10
  457. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +2 -2
  458. data/vendor/cmock/vendor/unity/auto/run_test.erb +1 -1
  459. data/vendor/cmock/vendor/unity/meson.build +1 -35
  460. data/vendor/cmock/vendor/unity/src/meson.build +1 -1
  461. data/vendor/cmock/vendor/unity/src/unity.c +5 -4
  462. data/vendor/cmock/vendor/unity/src/unity.h +6 -6
  463. data/vendor/cmock/vendor/unity/src/unity_internals.h +15 -6
  464. data/vendor/cmock/vendor/unity/test/Makefile +1 -0
  465. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +2 -2
  466. data/vendor/unity/CMakeLists.txt +32 -6
  467. data/vendor/unity/LICENSE.txt +1 -1
  468. data/vendor/unity/README.md +13 -4
  469. data/vendor/unity/auto/generate_module.rb +11 -10
  470. data/vendor/unity/auto/generate_test_runner.rb +2 -2
  471. data/vendor/unity/auto/run_test.erb +1 -1
  472. data/vendor/unity/meson.build +1 -35
  473. data/vendor/unity/src/meson.build +1 -1
  474. data/vendor/unity/src/unity.c +5 -4
  475. data/vendor/unity/src/unity.h +6 -6
  476. data/vendor/unity/src/unity_internals.h +15 -6
  477. data/vendor/unity/test/Makefile +1 -0
  478. data/vendor/unity/test/rakefile_helper.rb +2 -2
  479. metadata +409 -271
  480. data/assets/project_with_guts_gcov_abortonuncovered.yml +0 -93
  481. data/examples/temp_sensor/rakefile.rb +0 -6
  482. data/vendor/c_exception/vendor/unity/README.md +0 -220
  483. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +0 -118
  484. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +0 -39
  485. data/vendor/c_exception/vendor/unity/auto/generate_config.yml +0 -36
  486. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +0 -308
  487. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +0 -437
  488. data/vendor/c_exception/vendor/unity/auto/parse_output.rb +0 -220
  489. data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +0 -252
  490. data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +0 -25
  491. data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +0 -6
  492. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +0 -139
  493. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +0 -136
  494. data/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +0 -146
  495. data/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +0 -207
  496. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  497. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +0 -716
  498. data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +0 -398
  499. data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +0 -191
  500. data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +0 -242
  501. data/vendor/c_exception/vendor/unity/docs/license.txt +0 -21
  502. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +0 -71
  503. data/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +0 -5
  504. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +0 -24
  505. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +0 -3
  506. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +0 -11
  507. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +0 -2
  508. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +0 -62
  509. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +0 -31
  510. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -53
  511. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -57
  512. data/vendor/c_exception/vendor/unity/examples/example_2/makefile +0 -70
  513. data/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +0 -5
  514. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +0 -24
  515. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +0 -3
  516. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +0 -11
  517. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +0 -2
  518. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +0 -64
  519. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +0 -33
  520. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +0 -9
  521. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +0 -11
  522. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +0 -12
  523. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +0 -10
  524. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +0 -12
  525. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -43
  526. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +0 -249
  527. data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +0 -13
  528. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +0 -24
  529. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +0 -3
  530. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +0 -11
  531. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +0 -2
  532. data/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +0 -46
  533. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +0 -62
  534. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +0 -31
  535. data/vendor/c_exception/vendor/unity/examples/unity_config.h +0 -237
  536. data/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +0 -26
  537. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +0 -48
  538. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
  539. data/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +0 -9
  540. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +0 -432
  541. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +0 -83
  542. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -51
  543. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -47
  544. data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +0 -74
  545. data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +0 -22
  546. data/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +0 -39
  547. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -543
  548. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -57
  549. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -57
  550. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
  551. data/vendor/c_exception/vendor/unity/release/build.info +0 -2
  552. data/vendor/c_exception/vendor/unity/release/version.info +0 -2
  553. data/vendor/c_exception/vendor/unity/src/unity.c +0 -1517
  554. data/vendor/c_exception/vendor/unity/src/unity.h +0 -339
  555. data/vendor/c_exception/vendor/unity/src/unity_internals.h +0 -784
  556. data/vendor/c_exception/vendor/unity/test/Makefile +0 -63
  557. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +0 -61
  558. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +0 -57
  559. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +0 -55
  560. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +0 -15
  561. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -80
  562. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +0 -76
  563. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +0 -75
  564. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +0 -13
  565. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -89
  566. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -89
  567. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +0 -77
  568. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -89
  569. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -89
  570. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -90
  571. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +0 -67
  572. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +0 -70
  573. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +0 -58
  574. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +0 -67
  575. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +0 -70
  576. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +0 -71
  577. data/vendor/c_exception/vendor/unity/test/rakefile +0 -125
  578. data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +0 -260
  579. data/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +0 -158
  580. data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -78
  581. data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +0 -78
  582. data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +0 -49
  583. data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +0 -50
  584. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +0 -47
  585. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -59
  586. data/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +0 -47
  587. data/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +0 -101
  588. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +0 -90
  589. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +0 -80
  590. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -80
  591. data/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -94
  592. data/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -84
  593. data/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +0 -95
  594. data/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -86
  595. data/vendor/c_exception/vendor/unity/test/testdata/CException.h +0 -11
  596. data/vendor/c_exception/vendor/unity/test/testdata/Defs.h +0 -8
  597. data/vendor/c_exception/vendor/unity/test/testdata/cmock.h +0 -14
  598. data/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +0 -13
  599. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +0 -183
  600. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +0 -67
  601. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +0 -192
  602. data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +0 -1252
  603. data/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +0 -110
  604. data/vendor/c_exception/vendor/unity/test/tests/testunity.c +0 -4993
  605. data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +0 -220
  606. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +0 -118
  607. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +0 -39
  608. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +0 -36
  609. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +0 -308
  610. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +0 -437
  611. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parse_output.rb +0 -220
  612. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +0 -252
  613. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +0 -25
  614. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +0 -6
  615. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +0 -139
  616. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +0 -136
  617. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +0 -146
  618. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +0 -207
  619. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  620. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +0 -716
  621. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +0 -398
  622. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +0 -191
  623. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +0 -242
  624. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +0 -21
  625. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +0 -71
  626. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +0 -5
  627. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +0 -24
  628. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +0 -3
  629. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +0 -11
  630. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +0 -2
  631. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +0 -62
  632. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +0 -31
  633. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -53
  634. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -57
  635. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +0 -70
  636. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +0 -5
  637. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +0 -24
  638. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +0 -3
  639. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +0 -11
  640. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +0 -2
  641. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +0 -64
  642. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +0 -33
  643. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +0 -9
  644. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +0 -11
  645. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +0 -12
  646. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +0 -10
  647. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +0 -12
  648. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -43
  649. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +0 -249
  650. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +0 -13
  651. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +0 -24
  652. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +0 -3
  653. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +0 -11
  654. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +0 -2
  655. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +0 -46
  656. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +0 -62
  657. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +0 -31
  658. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +0 -237
  659. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +0 -26
  660. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +0 -48
  661. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
  662. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +0 -9
  663. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +0 -432
  664. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +0 -83
  665. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -51
  666. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -47
  667. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +0 -74
  668. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +0 -22
  669. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +0 -39
  670. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -543
  671. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -57
  672. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -57
  673. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
  674. data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +0 -2
  675. data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +0 -2
  676. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +0 -1517
  677. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +0 -339
  678. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +0 -784
  679. data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +0 -63
  680. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +0 -61
  681. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +0 -57
  682. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +0 -55
  683. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +0 -15
  684. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -80
  685. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +0 -76
  686. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +0 -75
  687. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +0 -13
  688. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -89
  689. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -89
  690. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +0 -77
  691. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -89
  692. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -89
  693. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -90
  694. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +0 -67
  695. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +0 -70
  696. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +0 -58
  697. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +0 -67
  698. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +0 -70
  699. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +0 -71
  700. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +0 -125
  701. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +0 -260
  702. data/vendor/cmock/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +0 -158
  703. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -78
  704. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +0 -78
  705. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +0 -49
  706. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +0 -50
  707. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +0 -47
  708. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -59
  709. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +0 -47
  710. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +0 -101
  711. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +0 -90
  712. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +0 -80
  713. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -80
  714. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -94
  715. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -84
  716. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +0 -95
  717. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -86
  718. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/CException.h +0 -11
  719. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/Defs.h +0 -8
  720. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/cmock.h +0 -14
  721. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +0 -13
  722. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +0 -183
  723. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +0 -67
  724. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +0 -192
  725. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +0 -1252
  726. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +0 -110
  727. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +0 -4993
  728. data/vendor/deep_merge/MIT-LICENSE +0 -20
  729. data/vendor/deep_merge/README +0 -94
  730. data/vendor/deep_merge/Rakefile +0 -28
  731. data/vendor/deep_merge/lib/deep_merge.rb +0 -211
  732. data/vendor/deep_merge/pkg/deep_merge-0.1.0.gem +0 -0
  733. data/vendor/deep_merge/test/test_deep_merge.rb +0 -553
@@ -1,57 +0,0 @@
1
- /* Copyright (c) 2010 James Grenning and Contributed to Unity Project
2
- * ==========================================
3
- * Unity Project - A Test Framework for C
4
- * Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5
- * [Released under MIT License. Please refer to license.txt for details]
6
- * ========================================== */
7
-
8
- #include "unity_fixture.h"
9
-
10
- TEST_GROUP_RUNNER(UnityFixture)
11
- {
12
- RUN_TEST_CASE(UnityFixture, PointerSetting);
13
- RUN_TEST_CASE(UnityFixture, ForceMallocFail);
14
- RUN_TEST_CASE(UnityFixture, ReallocSmallerIsUnchanged);
15
- RUN_TEST_CASE(UnityFixture, ReallocSameIsUnchanged);
16
- RUN_TEST_CASE(UnityFixture, ReallocLargerNeeded);
17
- RUN_TEST_CASE(UnityFixture, ReallocNullPointerIsLikeMalloc);
18
- RUN_TEST_CASE(UnityFixture, ReallocSizeZeroFreesMemAndReturnsNullPointer);
19
- RUN_TEST_CASE(UnityFixture, CallocFillsWithZero);
20
- RUN_TEST_CASE(UnityFixture, PointerSet);
21
- RUN_TEST_CASE(UnityFixture, FreeNULLSafety);
22
- RUN_TEST_CASE(UnityFixture, ConcludeTestIncrementsFailCount);
23
- }
24
-
25
- TEST_GROUP_RUNNER(UnityCommandOptions)
26
- {
27
- RUN_TEST_CASE(UnityCommandOptions, DefaultOptions);
28
- RUN_TEST_CASE(UnityCommandOptions, OptionVerbose);
29
- RUN_TEST_CASE(UnityCommandOptions, OptionSelectTestByGroup);
30
- RUN_TEST_CASE(UnityCommandOptions, OptionSelectTestByName);
31
- RUN_TEST_CASE(UnityCommandOptions, OptionSelectRepeatTestsDefaultCount);
32
- RUN_TEST_CASE(UnityCommandOptions, OptionSelectRepeatTestsSpecificCount);
33
- RUN_TEST_CASE(UnityCommandOptions, MultipleOptions);
34
- RUN_TEST_CASE(UnityCommandOptions, MultipleOptionsDashRNotLastAndNoValueSpecified);
35
- RUN_TEST_CASE(UnityCommandOptions, UnknownCommandIsIgnored);
36
- RUN_TEST_CASE(UnityCommandOptions, GroupOrNameFilterWithoutStringFails);
37
- RUN_TEST_CASE(UnityCommandOptions, GroupFilterReallyFilters);
38
- RUN_TEST_CASE(UnityCommandOptions, TestShouldBeIgnored);
39
- }
40
-
41
- TEST_GROUP_RUNNER(LeakDetection)
42
- {
43
- RUN_TEST_CASE(LeakDetection, DetectsLeak);
44
- RUN_TEST_CASE(LeakDetection, BufferOverrunFoundDuringFree);
45
- RUN_TEST_CASE(LeakDetection, BufferOverrunFoundDuringRealloc);
46
- RUN_TEST_CASE(LeakDetection, BufferGuardWriteFoundDuringFree);
47
- RUN_TEST_CASE(LeakDetection, BufferGuardWriteFoundDuringRealloc);
48
- RUN_TEST_CASE(LeakDetection, PointerSettingMax);
49
- }
50
-
51
- TEST_GROUP_RUNNER(InternalMalloc)
52
- {
53
- RUN_TEST_CASE(InternalMalloc, MallocPastBufferFails);
54
- RUN_TEST_CASE(InternalMalloc, CallocPastBufferFails);
55
- RUN_TEST_CASE(InternalMalloc, MallocThenReallocGrowsMemoryInPlace);
56
- RUN_TEST_CASE(InternalMalloc, ReallocFailDoesNotFreeMem);
57
- }
@@ -1,57 +0,0 @@
1
- /* Copyright (c) 2010 James Grenning and Contributed to Unity Project
2
- * ==========================================
3
- * Unity Project - A Test Framework for C
4
- * Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5
- * [Released under MIT License. Please refer to license.txt for details]
6
- * ========================================== */
7
-
8
-
9
- #include "unity_output_Spy.h"
10
- #include "unity_fixture.h"
11
-
12
- #include <stdio.h>
13
- #include <string.h>
14
-
15
- static int size;
16
- static int count;
17
- static char* buffer;
18
- static int spy_enable;
19
-
20
- void UnityOutputCharSpy_Create(int s)
21
- {
22
- size = (s > 0) ? s : 0;
23
- count = 0;
24
- spy_enable = 0;
25
- buffer = malloc((size_t)size);
26
- TEST_ASSERT_NOT_NULL_MESSAGE(buffer, "Internal malloc failed in Spy Create():" __FILE__);
27
- memset(buffer, 0, (size_t)size);
28
- }
29
-
30
- void UnityOutputCharSpy_Destroy(void)
31
- {
32
- size = 0;
33
- free(buffer);
34
- }
35
-
36
- void UnityOutputCharSpy_OutputChar(int c)
37
- {
38
- if (spy_enable)
39
- {
40
- if (count < (size-1))
41
- buffer[count++] = (char)c;
42
- }
43
- else
44
- {
45
- putchar(c);
46
- }
47
- }
48
-
49
- const char * UnityOutputCharSpy_Get(void)
50
- {
51
- return buffer;
52
- }
53
-
54
- void UnityOutputCharSpy_Enable(int enable)
55
- {
56
- spy_enable = enable;
57
- }
@@ -1,17 +0,0 @@
1
- /* Copyright (c) 2010 James Grenning and Contributed to Unity Project
2
- * ==========================================
3
- * Unity Project - A Test Framework for C
4
- * Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5
- * [Released under MIT License. Please refer to license.txt for details]
6
- * ========================================== */
7
-
8
- #ifndef D_unity_output_Spy_H
9
- #define D_unity_output_Spy_H
10
-
11
- void UnityOutputCharSpy_Create(int s);
12
- void UnityOutputCharSpy_Destroy(void);
13
- void UnityOutputCharSpy_OutputChar(int c);
14
- const char * UnityOutputCharSpy_Get(void);
15
- void UnityOutputCharSpy_Enable(int enable);
16
-
17
- #endif
@@ -1,1517 +0,0 @@
1
- /* =========================================================================
2
- Unity Project - A Test Framework for C
3
- Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams
4
- [Released under MIT License. Please refer to license.txt for details]
5
- ============================================================================ */
6
-
7
- #include "unity.h"
8
- #include <stddef.h>
9
-
10
- /* If omitted from header, declare overrideable prototypes here so they're ready for use */
11
- #ifdef UNITY_OMIT_OUTPUT_CHAR_HEADER_DECLARATION
12
- void UNITY_OUTPUT_CHAR(int);
13
- #endif
14
-
15
- /* Helpful macros for us to use here in Assert functions */
16
- #define UNITY_FAIL_AND_BAIL { Unity.CurrentTestFailed = 1; TEST_ABORT(); }
17
- #define UNITY_IGNORE_AND_BAIL { Unity.CurrentTestIgnored = 1; TEST_ABORT(); }
18
- #define RETURN_IF_FAIL_OR_IGNORE if (Unity.CurrentTestFailed || Unity.CurrentTestIgnored) return
19
-
20
- struct UNITY_STORAGE_T Unity;
21
-
22
- static const char UnityStrOk[] = "OK";
23
- static const char UnityStrPass[] = "PASS";
24
- static const char UnityStrFail[] = "FAIL";
25
- static const char UnityStrIgnore[] = "IGNORE";
26
- static const char UnityStrNull[] = "NULL";
27
- static const char UnityStrSpacer[] = ". ";
28
- static const char UnityStrExpected[] = " Expected ";
29
- static const char UnityStrWas[] = " Was ";
30
- static const char UnityStrElement[] = " Element ";
31
- static const char UnityStrByte[] = " Byte ";
32
- static const char UnityStrMemory[] = " Memory Mismatch.";
33
- static const char UnityStrDelta[] = " Values Not Within Delta ";
34
- static const char UnityStrPointless[] = " You Asked Me To Compare Nothing, Which Was Pointless.";
35
- static const char UnityStrNullPointerForExpected[] = " Expected pointer to be NULL";
36
- static const char UnityStrNullPointerForActual[] = " Actual pointer was NULL";
37
- #ifndef UNITY_EXCLUDE_FLOAT
38
- static const char UnityStrNot[] = "Not ";
39
- static const char UnityStrInf[] = "Infinity";
40
- static const char UnityStrNegInf[] = "Negative Infinity";
41
- static const char UnityStrNaN[] = "NaN";
42
- static const char UnityStrDet[] = "Determinate";
43
- static const char UnityStrInvalidFloatTrait[] = "Invalid Float Trait";
44
- #endif
45
- const char UnityStrErrFloat[] = "Unity Floating Point Disabled";
46
- const char UnityStrErrDouble[] = "Unity Double Precision Disabled";
47
- const char UnityStrErr64[] = "Unity 64-bit Support Disabled";
48
- static const char UnityStrBreaker[] = "-----------------------";
49
- static const char UnityStrResultsTests[] = " Tests ";
50
- static const char UnityStrResultsFailures[] = " Failures ";
51
- static const char UnityStrResultsIgnored[] = " Ignored ";
52
- static const char UnityStrDetail1Name[] = UNITY_DETAIL1_NAME " ";
53
- static const char UnityStrDetail2Name[] = " " UNITY_DETAIL2_NAME " ";
54
-
55
- /*-----------------------------------------------
56
- * Pretty Printers & Test Result Output Handlers
57
- *-----------------------------------------------*/
58
-
59
- void UnityPrint(const char* string)
60
- {
61
- const char* pch = string;
62
-
63
- if (pch != NULL)
64
- {
65
- while (*pch)
66
- {
67
- /* printable characters plus CR & LF are printed */
68
- if ((*pch <= 126) && (*pch >= 32))
69
- {
70
- UNITY_OUTPUT_CHAR(*pch);
71
- }
72
- /* write escaped carriage returns */
73
- else if (*pch == 13)
74
- {
75
- UNITY_OUTPUT_CHAR('\\');
76
- UNITY_OUTPUT_CHAR('r');
77
- }
78
- /* write escaped line feeds */
79
- else if (*pch == 10)
80
- {
81
- UNITY_OUTPUT_CHAR('\\');
82
- UNITY_OUTPUT_CHAR('n');
83
- }
84
- /* unprintable characters are shown as codes */
85
- else
86
- {
87
- UNITY_OUTPUT_CHAR('\\');
88
- UNITY_OUTPUT_CHAR('x');
89
- UnityPrintNumberHex((UNITY_UINT)*pch, 2);
90
- }
91
- pch++;
92
- }
93
- }
94
- }
95
-
96
- void UnityPrintLen(const char* string, const UNITY_UINT32 length)
97
- {
98
- const char* pch = string;
99
-
100
- if (pch != NULL)
101
- {
102
- while (*pch && (UNITY_UINT32)(pch - string) < length)
103
- {
104
- /* printable characters plus CR & LF are printed */
105
- if ((*pch <= 126) && (*pch >= 32))
106
- {
107
- UNITY_OUTPUT_CHAR(*pch);
108
- }
109
- /* write escaped carriage returns */
110
- else if (*pch == 13)
111
- {
112
- UNITY_OUTPUT_CHAR('\\');
113
- UNITY_OUTPUT_CHAR('r');
114
- }
115
- /* write escaped line feeds */
116
- else if (*pch == 10)
117
- {
118
- UNITY_OUTPUT_CHAR('\\');
119
- UNITY_OUTPUT_CHAR('n');
120
- }
121
- /* unprintable characters are shown as codes */
122
- else
123
- {
124
- UNITY_OUTPUT_CHAR('\\');
125
- UNITY_OUTPUT_CHAR('x');
126
- UnityPrintNumberHex((UNITY_UINT)*pch, 2);
127
- }
128
- pch++;
129
- }
130
- }
131
- }
132
-
133
- /*-----------------------------------------------*/
134
- void UnityPrintNumberByStyle(const UNITY_INT number, const UNITY_DISPLAY_STYLE_T style)
135
- {
136
- if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
137
- {
138
- UnityPrintNumber(number);
139
- }
140
- else if ((style & UNITY_DISPLAY_RANGE_UINT) == UNITY_DISPLAY_RANGE_UINT)
141
- {
142
- UnityPrintNumberUnsigned((UNITY_UINT)number);
143
- }
144
- else
145
- {
146
- UNITY_OUTPUT_CHAR('0');
147
- UNITY_OUTPUT_CHAR('x');
148
- UnityPrintNumberHex((UNITY_UINT)number, (char)((style & 0xF) * 2));
149
- }
150
- }
151
-
152
- /*-----------------------------------------------*/
153
- void UnityPrintNumber(const UNITY_INT number_to_print)
154
- {
155
- UNITY_UINT number = (UNITY_UINT)number_to_print;
156
-
157
- if (number_to_print < 0)
158
- {
159
- /* A negative number, including MIN negative */
160
- UNITY_OUTPUT_CHAR('-');
161
- number = (UNITY_UINT)(-number_to_print);
162
- }
163
- UnityPrintNumberUnsigned(number);
164
- }
165
-
166
- /*-----------------------------------------------
167
- * basically do an itoa using as little ram as possible */
168
- void UnityPrintNumberUnsigned(const UNITY_UINT number)
169
- {
170
- UNITY_UINT divisor = 1;
171
-
172
- /* figure out initial divisor */
173
- while (number / divisor > 9)
174
- {
175
- divisor *= 10;
176
- }
177
-
178
- /* now mod and print, then divide divisor */
179
- do
180
- {
181
- UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10)));
182
- divisor /= 10;
183
- } while (divisor > 0);
184
- }
185
-
186
- /*-----------------------------------------------*/
187
- void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print)
188
- {
189
- int nibble;
190
- char nibbles = nibbles_to_print;
191
- if ((unsigned)nibbles > (2 * sizeof(number)))
192
- nibbles = 2 * sizeof(number);
193
-
194
- while (nibbles > 0)
195
- {
196
- nibbles--;
197
- nibble = (int)(number >> (nibbles * 4)) & 0x0F;
198
- if (nibble <= 9)
199
- {
200
- UNITY_OUTPUT_CHAR((char)('0' + nibble));
201
- }
202
- else
203
- {
204
- UNITY_OUTPUT_CHAR((char)('A' - 10 + nibble));
205
- }
206
- }
207
- }
208
-
209
- /*-----------------------------------------------*/
210
- void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number)
211
- {
212
- UNITY_UINT current_bit = (UNITY_UINT)1 << (UNITY_INT_WIDTH - 1);
213
- UNITY_INT32 i;
214
-
215
- for (i = 0; i < UNITY_INT_WIDTH; i++)
216
- {
217
- if (current_bit & mask)
218
- {
219
- if (current_bit & number)
220
- {
221
- UNITY_OUTPUT_CHAR('1');
222
- }
223
- else
224
- {
225
- UNITY_OUTPUT_CHAR('0');
226
- }
227
- }
228
- else
229
- {
230
- UNITY_OUTPUT_CHAR('X');
231
- }
232
- current_bit = current_bit >> 1;
233
- }
234
- }
235
-
236
- /*-----------------------------------------------*/
237
- #ifndef UNITY_EXCLUDE_FLOAT_PRINT
238
- static void UnityPrintDecimalAndNumberWithLeadingZeros(UNITY_INT32 fraction_part, UNITY_INT32 divisor)
239
- {
240
- UNITY_OUTPUT_CHAR('.');
241
- while (divisor > 0)
242
- {
243
- UNITY_OUTPUT_CHAR('0' + fraction_part / divisor);
244
- fraction_part %= divisor;
245
- divisor /= 10;
246
- if (fraction_part == 0) break; /* Truncate trailing 0's */
247
- }
248
- }
249
- #ifndef UNITY_ROUND_TIES_AWAY_FROM_ZERO
250
- /* If rounds up && remainder 0.5 && result odd && below cutoff for double precision issues */
251
- #define ROUND_TIES_TO_EVEN(orig, num_int, num) \
252
- if (num_int > (num) && (num) - (num_int-1) <= 0.5 && (num_int & 1) == 1 && orig < 1e22) \
253
- num_int -= 1 /* => a tie to round down to even */
254
- #else
255
- #define ROUND_TIES_TO_EVEN(orig, num_int, num) /* Remove macro */
256
- #endif
257
-
258
- /* Printing floating point numbers is hard. Some goals of this implementation: works for embedded
259
- * systems, floats or doubles, and has a reasonable format. The key paper in this area,
260
- * 'How to Print Floating-Point Numbers Accurately' by Steele & White, shows an approximation by
261
- * scaling called Dragon 2. This code uses a similar idea. The other core algorithm uses casts and
262
- * floating subtraction to give exact remainders after the decimal, to be scaled into an integer.
263
- * Extra trailing 0's are excluded. The output defaults to rounding to nearest, ties to even. You
264
- * can enable rounding ties away from zero. Note: UNITY_DOUBLE param can typedef to float or double
265
-
266
- * The old version required compiling in snprintf. For reference, with a similar format as now:
267
- * char buf[19];
268
- * if (number > 4294967296.0 || -number > 4294967296.0) snprintf(buf, sizeof buf, "%.8e", number);
269
- * else snprintf(buf, sizeof buf, "%.6f", number);
270
- * UnityPrint(buf);
271
- */
272
- void UnityPrintFloat(const UNITY_DOUBLE input_number)
273
- {
274
- UNITY_DOUBLE number;
275
-
276
- if (input_number < 0)
277
- {
278
- UNITY_OUTPUT_CHAR('-');
279
- number = -input_number;
280
- } else
281
- {
282
- number = input_number;
283
- }
284
-
285
- if (isnan(number)) UnityPrint(UnityStrNaN);
286
- else if (isinf(number)) UnityPrintLen(UnityStrInf, 3);
287
- else if (number <= 0.0000005 && number > 0) UnityPrint("0.000000..."); /* Small number */
288
- else if (number < 4294967295.9999995) /* Rounded result fits in 32 bits, "%.6f" format */
289
- {
290
- const UNITY_INT32 divisor = 1000000/10;
291
- UNITY_UINT32 integer_part = (UNITY_UINT32)number;
292
- UNITY_INT32 fraction_part = (UNITY_INT32)((number - (UNITY_DOUBLE)integer_part)*1000000.0 + 0.5);
293
- /* Double precision calculation gives best performance for six rounded decimal places */
294
- ROUND_TIES_TO_EVEN(number, fraction_part, (number - (UNITY_DOUBLE)integer_part)*1000000.0);
295
-
296
- if (fraction_part == 1000000) /* Carry across the decimal point */
297
- {
298
- fraction_part = 0;
299
- integer_part += 1;
300
- }
301
-
302
- UnityPrintNumberUnsigned(integer_part);
303
- UnityPrintDecimalAndNumberWithLeadingZeros(fraction_part, divisor);
304
- }
305
- else /* Number is larger, use exponential format of 9 digits, "%.8e" */
306
- {
307
- const UNITY_INT32 divisor = 1000000000/10;
308
- UNITY_INT32 integer_part;
309
- UNITY_DOUBLE_TYPE divide = 10.0;
310
- int exponent = 9;
311
-
312
- while (number / divide >= 1000000000.0 - 0.5)
313
- {
314
- divide *= 10;
315
- exponent++;
316
- }
317
- integer_part = (UNITY_INT32)(number / divide + 0.5);
318
- /* Double precision calculation required for float, to produce 9 rounded digits */
319
- ROUND_TIES_TO_EVEN(number, integer_part, number / divide);
320
-
321
- UNITY_OUTPUT_CHAR('0' + integer_part / divisor);
322
- UnityPrintDecimalAndNumberWithLeadingZeros(integer_part % divisor, divisor / 10);
323
- UNITY_OUTPUT_CHAR('e');
324
- UNITY_OUTPUT_CHAR('+');
325
- if (exponent < 10) UNITY_OUTPUT_CHAR('0');
326
- UnityPrintNumber(exponent);
327
- }
328
- }
329
- #endif /* ! UNITY_EXCLUDE_FLOAT_PRINT */
330
-
331
- /*-----------------------------------------------*/
332
- static void UnityTestResultsBegin(const char* file, const UNITY_LINE_TYPE line)
333
- {
334
- UnityPrint(file);
335
- UNITY_OUTPUT_CHAR(':');
336
- UnityPrintNumber((UNITY_INT)line);
337
- UNITY_OUTPUT_CHAR(':');
338
- UnityPrint(Unity.CurrentTestName);
339
- UNITY_OUTPUT_CHAR(':');
340
- }
341
-
342
- /*-----------------------------------------------*/
343
- static void UnityTestResultsFailBegin(const UNITY_LINE_TYPE line)
344
- {
345
- UnityTestResultsBegin(Unity.TestFile, line);
346
- UnityPrint(UnityStrFail);
347
- UNITY_OUTPUT_CHAR(':');
348
- }
349
-
350
- /*-----------------------------------------------*/
351
- void UnityConcludeTest(void)
352
- {
353
- if (Unity.CurrentTestIgnored)
354
- {
355
- Unity.TestIgnores++;
356
- }
357
- else if (!Unity.CurrentTestFailed)
358
- {
359
- UnityTestResultsBegin(Unity.TestFile, Unity.CurrentTestLineNumber);
360
- UnityPrint(UnityStrPass);
361
- }
362
- else
363
- {
364
- Unity.TestFailures++;
365
- }
366
-
367
- Unity.CurrentTestFailed = 0;
368
- Unity.CurrentTestIgnored = 0;
369
- UNITY_PRINT_EOL();
370
- UNITY_FLUSH_CALL();
371
- }
372
-
373
- /*-----------------------------------------------*/
374
- static void UnityAddMsgIfSpecified(const char* msg)
375
- {
376
- if (msg)
377
- {
378
- UnityPrint(UnityStrSpacer);
379
- #ifndef UNITY_EXCLUDE_DETAILS
380
- if (Unity.CurrentDetail1)
381
- {
382
- UnityPrint(UnityStrDetail1Name);
383
- UnityPrint(Unity.CurrentDetail1);
384
- if (Unity.CurrentDetail2)
385
- {
386
- UnityPrint(UnityStrDetail2Name);
387
- UnityPrint(Unity.CurrentDetail2);
388
- }
389
- UnityPrint(UnityStrSpacer);
390
- }
391
- #endif
392
- UnityPrint(msg);
393
- }
394
- }
395
-
396
- /*-----------------------------------------------*/
397
- static void UnityPrintExpectedAndActualStrings(const char* expected, const char* actual)
398
- {
399
- UnityPrint(UnityStrExpected);
400
- if (expected != NULL)
401
- {
402
- UNITY_OUTPUT_CHAR('\'');
403
- UnityPrint(expected);
404
- UNITY_OUTPUT_CHAR('\'');
405
- }
406
- else
407
- {
408
- UnityPrint(UnityStrNull);
409
- }
410
- UnityPrint(UnityStrWas);
411
- if (actual != NULL)
412
- {
413
- UNITY_OUTPUT_CHAR('\'');
414
- UnityPrint(actual);
415
- UNITY_OUTPUT_CHAR('\'');
416
- }
417
- else
418
- {
419
- UnityPrint(UnityStrNull);
420
- }
421
- }
422
-
423
- /*-----------------------------------------------*/
424
- static void UnityPrintExpectedAndActualStringsLen(const char* expected,
425
- const char* actual,
426
- const UNITY_UINT32 length)
427
- {
428
- UnityPrint(UnityStrExpected);
429
- if (expected != NULL)
430
- {
431
- UNITY_OUTPUT_CHAR('\'');
432
- UnityPrintLen(expected, length);
433
- UNITY_OUTPUT_CHAR('\'');
434
- }
435
- else
436
- {
437
- UnityPrint(UnityStrNull);
438
- }
439
- UnityPrint(UnityStrWas);
440
- if (actual != NULL)
441
- {
442
- UNITY_OUTPUT_CHAR('\'');
443
- UnityPrintLen(actual, length);
444
- UNITY_OUTPUT_CHAR('\'');
445
- }
446
- else
447
- {
448
- UnityPrint(UnityStrNull);
449
- }
450
- }
451
-
452
- /*-----------------------------------------------
453
- * Assertion & Control Helpers
454
- *-----------------------------------------------*/
455
-
456
- static int UnityIsOneArrayNull(UNITY_INTERNAL_PTR expected,
457
- UNITY_INTERNAL_PTR actual,
458
- const UNITY_LINE_TYPE lineNumber,
459
- const char* msg)
460
- {
461
- if (expected == actual) return 0; /* Both are NULL or same pointer */
462
-
463
- /* print and return true if just expected is NULL */
464
- if (expected == NULL)
465
- {
466
- UnityTestResultsFailBegin(lineNumber);
467
- UnityPrint(UnityStrNullPointerForExpected);
468
- UnityAddMsgIfSpecified(msg);
469
- return 1;
470
- }
471
-
472
- /* print and return true if just actual is NULL */
473
- if (actual == NULL)
474
- {
475
- UnityTestResultsFailBegin(lineNumber);
476
- UnityPrint(UnityStrNullPointerForActual);
477
- UnityAddMsgIfSpecified(msg);
478
- return 1;
479
- }
480
-
481
- return 0; /* return false if neither is NULL */
482
- }
483
-
484
- /*-----------------------------------------------
485
- * Assertion Functions
486
- *-----------------------------------------------*/
487
-
488
- void UnityAssertBits(const UNITY_INT mask,
489
- const UNITY_INT expected,
490
- const UNITY_INT actual,
491
- const char* msg,
492
- const UNITY_LINE_TYPE lineNumber)
493
- {
494
- RETURN_IF_FAIL_OR_IGNORE;
495
-
496
- if ((mask & expected) != (mask & actual))
497
- {
498
- UnityTestResultsFailBegin(lineNumber);
499
- UnityPrint(UnityStrExpected);
500
- UnityPrintMask((UNITY_UINT)mask, (UNITY_UINT)expected);
501
- UnityPrint(UnityStrWas);
502
- UnityPrintMask((UNITY_UINT)mask, (UNITY_UINT)actual);
503
- UnityAddMsgIfSpecified(msg);
504
- UNITY_FAIL_AND_BAIL;
505
- }
506
- }
507
-
508
- /*-----------------------------------------------*/
509
- void UnityAssertEqualNumber(const UNITY_INT expected,
510
- const UNITY_INT actual,
511
- const char* msg,
512
- const UNITY_LINE_TYPE lineNumber,
513
- const UNITY_DISPLAY_STYLE_T style)
514
- {
515
- RETURN_IF_FAIL_OR_IGNORE;
516
-
517
- if (expected != actual)
518
- {
519
- UnityTestResultsFailBegin(lineNumber);
520
- UnityPrint(UnityStrExpected);
521
- UnityPrintNumberByStyle(expected, style);
522
- UnityPrint(UnityStrWas);
523
- UnityPrintNumberByStyle(actual, style);
524
- UnityAddMsgIfSpecified(msg);
525
- UNITY_FAIL_AND_BAIL;
526
- }
527
- }
528
-
529
- #define UnityPrintPointlessAndBail() \
530
- { \
531
- UnityTestResultsFailBegin(lineNumber); \
532
- UnityPrint(UnityStrPointless); \
533
- UnityAddMsgIfSpecified(msg); \
534
- UNITY_FAIL_AND_BAIL; }
535
-
536
- /*-----------------------------------------------*/
537
- void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
538
- UNITY_INTERNAL_PTR actual,
539
- const UNITY_UINT32 num_elements,
540
- const char* msg,
541
- const UNITY_LINE_TYPE lineNumber,
542
- const UNITY_DISPLAY_STYLE_T style,
543
- const UNITY_FLAGS_T flags)
544
- {
545
- UNITY_UINT32 elements = num_elements;
546
- unsigned int length = style & 0xF;
547
-
548
- RETURN_IF_FAIL_OR_IGNORE;
549
-
550
- if (num_elements == 0)
551
- {
552
- UnityPrintPointlessAndBail();
553
- }
554
-
555
- if (expected == actual) return; /* Both are NULL or same pointer */
556
- if (UnityIsOneArrayNull(expected, actual, lineNumber, msg))
557
- UNITY_FAIL_AND_BAIL;
558
-
559
- while (elements--)
560
- {
561
- UNITY_INT expect_val;
562
- UNITY_INT actual_val;
563
- switch (length)
564
- {
565
- case 1:
566
- expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)expected;
567
- actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)actual;
568
- break;
569
- case 2:
570
- expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)expected;
571
- actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)actual;
572
- break;
573
- #ifdef UNITY_SUPPORT_64
574
- case 8:
575
- expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)expected;
576
- actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)actual;
577
- break;
578
- #endif
579
- default: /* length 4 bytes */
580
- expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)expected;
581
- actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)actual;
582
- length = 4;
583
- break;
584
- }
585
-
586
- if (expect_val != actual_val)
587
- {
588
- if (style & UNITY_DISPLAY_RANGE_UINT && length < sizeof(expect_val))
589
- { /* For UINT, remove sign extension (padding 1's) from signed type casts above */
590
- UNITY_INT mask = 1;
591
- mask = (mask << 8 * length) - 1;
592
- expect_val &= mask;
593
- actual_val &= mask;
594
- }
595
- UnityTestResultsFailBegin(lineNumber);
596
- UnityPrint(UnityStrElement);
597
- UnityPrintNumberUnsigned(num_elements - elements - 1);
598
- UnityPrint(UnityStrExpected);
599
- UnityPrintNumberByStyle(expect_val, style);
600
- UnityPrint(UnityStrWas);
601
- UnityPrintNumberByStyle(actual_val, style);
602
- UnityAddMsgIfSpecified(msg);
603
- UNITY_FAIL_AND_BAIL;
604
- }
605
- if (flags == UNITY_ARRAY_TO_ARRAY)
606
- {
607
- expected = (UNITY_INTERNAL_PTR)(length + (const char*)expected);
608
- }
609
- actual = (UNITY_INTERNAL_PTR)(length + (const char*)actual);
610
- }
611
- }
612
-
613
- /*-----------------------------------------------*/
614
- #ifndef UNITY_EXCLUDE_FLOAT
615
- /* Wrap this define in a function with variable types as float or double */
616
- #define UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff) \
617
- if (isinf(expected) && isinf(actual) && ((expected < 0) == (actual < 0))) return 1; \
618
- if (UNITY_NAN_CHECK) return 1; \
619
- diff = actual - expected; \
620
- if (diff < 0) diff = -diff; \
621
- if (delta < 0) delta = -delta; \
622
- return !(isnan(diff) || isinf(diff) || (diff > delta))
623
- /* This first part of this condition will catch any NaN or Infinite values */
624
- #ifndef UNITY_NAN_NOT_EQUAL_NAN
625
- #define UNITY_NAN_CHECK isnan(expected) && isnan(actual)
626
- #else
627
- #define UNITY_NAN_CHECK 0
628
- #endif
629
-
630
- #ifndef UNITY_EXCLUDE_FLOAT_PRINT
631
- #define UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual) \
632
- { \
633
- UnityPrint(UnityStrExpected); \
634
- UnityPrintFloat(expected); \
635
- UnityPrint(UnityStrWas); \
636
- UnityPrintFloat(actual); }
637
- #else
638
- #define UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual) \
639
- UnityPrint(UnityStrDelta)
640
- #endif /* UNITY_EXCLUDE_FLOAT_PRINT */
641
-
642
- static int UnityFloatsWithin(UNITY_FLOAT delta, UNITY_FLOAT expected, UNITY_FLOAT actual)
643
- {
644
- UNITY_FLOAT diff;
645
- UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff);
646
- }
647
-
648
- void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* expected,
649
- UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* actual,
650
- const UNITY_UINT32 num_elements,
651
- const char* msg,
652
- const UNITY_LINE_TYPE lineNumber,
653
- const UNITY_FLAGS_T flags)
654
- {
655
- UNITY_UINT32 elements = num_elements;
656
- UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* ptr_expected = expected;
657
- UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* ptr_actual = actual;
658
-
659
- RETURN_IF_FAIL_OR_IGNORE;
660
-
661
- if (elements == 0)
662
- {
663
- UnityPrintPointlessAndBail();
664
- }
665
-
666
- if (expected == actual) return; /* Both are NULL or same pointer */
667
- if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg))
668
- UNITY_FAIL_AND_BAIL;
669
-
670
- while (elements--)
671
- {
672
- if (!UnityFloatsWithin(*ptr_expected * UNITY_FLOAT_PRECISION, *ptr_expected, *ptr_actual))
673
- {
674
- UnityTestResultsFailBegin(lineNumber);
675
- UnityPrint(UnityStrElement);
676
- UnityPrintNumberUnsigned(num_elements - elements - 1);
677
- UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT((UNITY_DOUBLE)*ptr_expected, (UNITY_DOUBLE)*ptr_actual);
678
- UnityAddMsgIfSpecified(msg);
679
- UNITY_FAIL_AND_BAIL;
680
- }
681
- if (flags == UNITY_ARRAY_TO_ARRAY)
682
- {
683
- ptr_expected++;
684
- }
685
- ptr_actual++;
686
- }
687
- }
688
-
689
- /*-----------------------------------------------*/
690
- void UnityAssertFloatsWithin(const UNITY_FLOAT delta,
691
- const UNITY_FLOAT expected,
692
- const UNITY_FLOAT actual,
693
- const char* msg,
694
- const UNITY_LINE_TYPE lineNumber)
695
- {
696
- RETURN_IF_FAIL_OR_IGNORE;
697
-
698
-
699
- if (!UnityFloatsWithin(delta, expected, actual))
700
- {
701
- UnityTestResultsFailBegin(lineNumber);
702
- UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT((UNITY_DOUBLE)expected, (UNITY_DOUBLE)actual);
703
- UnityAddMsgIfSpecified(msg);
704
- UNITY_FAIL_AND_BAIL;
705
- }
706
- }
707
-
708
- /*-----------------------------------------------*/
709
- void UnityAssertFloatSpecial(const UNITY_FLOAT actual,
710
- const char* msg,
711
- const UNITY_LINE_TYPE lineNumber,
712
- const UNITY_FLOAT_TRAIT_T style)
713
- {
714
- const char* trait_names[] = {UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet};
715
- UNITY_INT should_be_trait = ((UNITY_INT)style & 1);
716
- UNITY_INT is_trait = !should_be_trait;
717
- UNITY_INT trait_index = (UNITY_INT)(style >> 1);
718
-
719
- RETURN_IF_FAIL_OR_IGNORE;
720
-
721
- switch (style)
722
- {
723
- case UNITY_FLOAT_IS_INF:
724
- case UNITY_FLOAT_IS_NOT_INF:
725
- is_trait = isinf(actual) && (actual > 0);
726
- break;
727
- case UNITY_FLOAT_IS_NEG_INF:
728
- case UNITY_FLOAT_IS_NOT_NEG_INF:
729
- is_trait = isinf(actual) && (actual < 0);
730
- break;
731
-
732
- case UNITY_FLOAT_IS_NAN:
733
- case UNITY_FLOAT_IS_NOT_NAN:
734
- is_trait = isnan(actual) ? 1 : 0;
735
- break;
736
-
737
- case UNITY_FLOAT_IS_DET: /* A determinate number is non infinite and not NaN. */
738
- case UNITY_FLOAT_IS_NOT_DET:
739
- is_trait = !isinf(actual) && !isnan(actual);
740
- break;
741
-
742
- default:
743
- trait_index = 0;
744
- trait_names[0] = UnityStrInvalidFloatTrait;
745
- break;
746
- }
747
-
748
- if (is_trait != should_be_trait)
749
- {
750
- UnityTestResultsFailBegin(lineNumber);
751
- UnityPrint(UnityStrExpected);
752
- if (!should_be_trait)
753
- UnityPrint(UnityStrNot);
754
- UnityPrint(trait_names[trait_index]);
755
- UnityPrint(UnityStrWas);
756
- #ifndef UNITY_EXCLUDE_FLOAT_PRINT
757
- UnityPrintFloat((UNITY_DOUBLE)actual);
758
- #else
759
- if (should_be_trait)
760
- UnityPrint(UnityStrNot);
761
- UnityPrint(trait_names[trait_index]);
762
- #endif
763
- UnityAddMsgIfSpecified(msg);
764
- UNITY_FAIL_AND_BAIL;
765
- }
766
- }
767
-
768
- #endif /* not UNITY_EXCLUDE_FLOAT */
769
-
770
- /*-----------------------------------------------*/
771
- #ifndef UNITY_EXCLUDE_DOUBLE
772
- static int UnityDoublesWithin(UNITY_DOUBLE delta, UNITY_DOUBLE expected, UNITY_DOUBLE actual)
773
- {
774
- UNITY_DOUBLE diff;
775
- UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff);
776
- }
777
-
778
- void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* expected,
779
- UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* actual,
780
- const UNITY_UINT32 num_elements,
781
- const char* msg,
782
- const UNITY_LINE_TYPE lineNumber,
783
- const UNITY_FLAGS_T flags)
784
- {
785
- UNITY_UINT32 elements = num_elements;
786
- UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* ptr_expected = expected;
787
- UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* ptr_actual = actual;
788
-
789
- RETURN_IF_FAIL_OR_IGNORE;
790
-
791
- if (elements == 0)
792
- {
793
- UnityPrintPointlessAndBail();
794
- }
795
-
796
- if (expected == actual) return; /* Both are NULL or same pointer */
797
- if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg))
798
- UNITY_FAIL_AND_BAIL;
799
-
800
- while (elements--)
801
- {
802
- if (!UnityDoublesWithin(*ptr_expected * UNITY_DOUBLE_PRECISION, *ptr_expected, *ptr_actual))
803
- {
804
- UnityTestResultsFailBegin(lineNumber);
805
- UnityPrint(UnityStrElement);
806
- UnityPrintNumberUnsigned(num_elements - elements - 1);
807
- UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(*ptr_expected, *ptr_actual);
808
- UnityAddMsgIfSpecified(msg);
809
- UNITY_FAIL_AND_BAIL;
810
- }
811
- if (flags == UNITY_ARRAY_TO_ARRAY)
812
- {
813
- ptr_expected++;
814
- }
815
- ptr_actual++;
816
- }
817
- }
818
-
819
- /*-----------------------------------------------*/
820
- void UnityAssertDoublesWithin(const UNITY_DOUBLE delta,
821
- const UNITY_DOUBLE expected,
822
- const UNITY_DOUBLE actual,
823
- const char* msg,
824
- const UNITY_LINE_TYPE lineNumber)
825
- {
826
- RETURN_IF_FAIL_OR_IGNORE;
827
-
828
- if (!UnityDoublesWithin(delta, expected, actual))
829
- {
830
- UnityTestResultsFailBegin(lineNumber);
831
- UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual);
832
- UnityAddMsgIfSpecified(msg);
833
- UNITY_FAIL_AND_BAIL;
834
- }
835
- }
836
-
837
- /*-----------------------------------------------*/
838
-
839
- void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual,
840
- const char* msg,
841
- const UNITY_LINE_TYPE lineNumber,
842
- const UNITY_FLOAT_TRAIT_T style)
843
- {
844
- const char* trait_names[] = {UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet};
845
- UNITY_INT should_be_trait = ((UNITY_INT)style & 1);
846
- UNITY_INT is_trait = !should_be_trait;
847
- UNITY_INT trait_index = (UNITY_INT)(style >> 1);
848
-
849
- RETURN_IF_FAIL_OR_IGNORE;
850
-
851
- switch (style)
852
- {
853
- case UNITY_FLOAT_IS_INF:
854
- case UNITY_FLOAT_IS_NOT_INF:
855
- is_trait = isinf(actual) && (actual > 0);
856
- break;
857
- case UNITY_FLOAT_IS_NEG_INF:
858
- case UNITY_FLOAT_IS_NOT_NEG_INF:
859
- is_trait = isinf(actual) && (actual < 0);
860
- break;
861
-
862
- case UNITY_FLOAT_IS_NAN:
863
- case UNITY_FLOAT_IS_NOT_NAN:
864
- is_trait = isnan(actual) ? 1 : 0;
865
- break;
866
-
867
- case UNITY_FLOAT_IS_DET: /* A determinate number is non infinite and not NaN. */
868
- case UNITY_FLOAT_IS_NOT_DET:
869
- is_trait = !isinf(actual) && !isnan(actual);
870
- break;
871
-
872
- default:
873
- trait_index = 0;
874
- trait_names[0] = UnityStrInvalidFloatTrait;
875
- break;
876
- }
877
-
878
- if (is_trait != should_be_trait)
879
- {
880
- UnityTestResultsFailBegin(lineNumber);
881
- UnityPrint(UnityStrExpected);
882
- if (!should_be_trait)
883
- UnityPrint(UnityStrNot);
884
- UnityPrint(trait_names[trait_index]);
885
- UnityPrint(UnityStrWas);
886
- #ifndef UNITY_EXCLUDE_FLOAT_PRINT
887
- UnityPrintFloat(actual);
888
- #else
889
- if (should_be_trait)
890
- UnityPrint(UnityStrNot);
891
- UnityPrint(trait_names[trait_index]);
892
- #endif
893
- UnityAddMsgIfSpecified(msg);
894
- UNITY_FAIL_AND_BAIL;
895
- }
896
- }
897
-
898
- #endif /* not UNITY_EXCLUDE_DOUBLE */
899
-
900
- /*-----------------------------------------------*/
901
- void UnityAssertNumbersWithin(const UNITY_UINT delta,
902
- const UNITY_INT expected,
903
- const UNITY_INT actual,
904
- const char* msg,
905
- const UNITY_LINE_TYPE lineNumber,
906
- const UNITY_DISPLAY_STYLE_T style)
907
- {
908
- RETURN_IF_FAIL_OR_IGNORE;
909
-
910
- if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
911
- {
912
- if (actual > expected)
913
- Unity.CurrentTestFailed = (UNITY_UINT)((UNITY_UINT)(actual - expected) > delta);
914
- else
915
- Unity.CurrentTestFailed = (UNITY_UINT)((UNITY_UINT)(expected - actual) > delta);
916
- }
917
- else
918
- {
919
- if ((UNITY_UINT)actual > (UNITY_UINT)expected)
920
- Unity.CurrentTestFailed = (UNITY_UINT)((UNITY_UINT)(actual - expected) > delta);
921
- else
922
- Unity.CurrentTestFailed = (UNITY_UINT)((UNITY_UINT)(expected - actual) > delta);
923
- }
924
-
925
- if (Unity.CurrentTestFailed)
926
- {
927
- UnityTestResultsFailBegin(lineNumber);
928
- UnityPrint(UnityStrDelta);
929
- UnityPrintNumberByStyle((UNITY_INT)delta, style);
930
- UnityPrint(UnityStrExpected);
931
- UnityPrintNumberByStyle(expected, style);
932
- UnityPrint(UnityStrWas);
933
- UnityPrintNumberByStyle(actual, style);
934
- UnityAddMsgIfSpecified(msg);
935
- UNITY_FAIL_AND_BAIL;
936
- }
937
- }
938
-
939
- /*-----------------------------------------------*/
940
- void UnityAssertEqualString(const char* expected,
941
- const char* actual,
942
- const char* msg,
943
- const UNITY_LINE_TYPE lineNumber)
944
- {
945
- UNITY_UINT32 i;
946
-
947
- RETURN_IF_FAIL_OR_IGNORE;
948
-
949
- /* if both pointers not null compare the strings */
950
- if (expected && actual)
951
- {
952
- for (i = 0; expected[i] || actual[i]; i++)
953
- {
954
- if (expected[i] != actual[i])
955
- {
956
- Unity.CurrentTestFailed = 1;
957
- break;
958
- }
959
- }
960
- }
961
- else
962
- { /* handle case of one pointers being null (if both null, test should pass) */
963
- if (expected != actual)
964
- {
965
- Unity.CurrentTestFailed = 1;
966
- }
967
- }
968
-
969
- if (Unity.CurrentTestFailed)
970
- {
971
- UnityTestResultsFailBegin(lineNumber);
972
- UnityPrintExpectedAndActualStrings(expected, actual);
973
- UnityAddMsgIfSpecified(msg);
974
- UNITY_FAIL_AND_BAIL;
975
- }
976
- }
977
-
978
- /*-----------------------------------------------*/
979
- void UnityAssertEqualStringLen(const char* expected,
980
- const char* actual,
981
- const UNITY_UINT32 length,
982
- const char* msg,
983
- const UNITY_LINE_TYPE lineNumber)
984
- {
985
- UNITY_UINT32 i;
986
-
987
- RETURN_IF_FAIL_OR_IGNORE;
988
-
989
- /* if both pointers not null compare the strings */
990
- if (expected && actual)
991
- {
992
- for (i = 0; (i < length) && (expected[i] || actual[i]); i++)
993
- {
994
- if (expected[i] != actual[i])
995
- {
996
- Unity.CurrentTestFailed = 1;
997
- break;
998
- }
999
- }
1000
- }
1001
- else
1002
- { /* handle case of one pointers being null (if both null, test should pass) */
1003
- if (expected != actual)
1004
- {
1005
- Unity.CurrentTestFailed = 1;
1006
- }
1007
- }
1008
-
1009
- if (Unity.CurrentTestFailed)
1010
- {
1011
- UnityTestResultsFailBegin(lineNumber);
1012
- UnityPrintExpectedAndActualStringsLen(expected, actual, length);
1013
- UnityAddMsgIfSpecified(msg);
1014
- UNITY_FAIL_AND_BAIL;
1015
- }
1016
- }
1017
-
1018
- /*-----------------------------------------------*/
1019
- void UnityAssertEqualStringArray(UNITY_INTERNAL_PTR expected,
1020
- const char** actual,
1021
- const UNITY_UINT32 num_elements,
1022
- const char* msg,
1023
- const UNITY_LINE_TYPE lineNumber,
1024
- const UNITY_FLAGS_T flags)
1025
- {
1026
- UNITY_UINT32 i = 0;
1027
- UNITY_UINT32 j = 0;
1028
- const char* exp = NULL;
1029
- const char* act = NULL;
1030
-
1031
- RETURN_IF_FAIL_OR_IGNORE;
1032
-
1033
- /* if no elements, it's an error */
1034
- if (num_elements == 0)
1035
- {
1036
- UnityPrintPointlessAndBail();
1037
- }
1038
-
1039
- if ((const void*)expected == (const void*)actual)
1040
- {
1041
- return; /* Both are NULL or same pointer */
1042
- }
1043
-
1044
- if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg))
1045
- {
1046
- UNITY_FAIL_AND_BAIL;
1047
- }
1048
-
1049
- if (flags != UNITY_ARRAY_TO_ARRAY)
1050
- {
1051
- exp = (const char*)expected;
1052
- }
1053
-
1054
- do
1055
- {
1056
- act = actual[j];
1057
- if (flags == UNITY_ARRAY_TO_ARRAY)
1058
- {
1059
- exp = ((const char* const*)expected)[j];
1060
- }
1061
-
1062
- /* if both pointers not null compare the strings */
1063
- if (exp && act)
1064
- {
1065
- for (i = 0; exp[i] || act[i]; i++)
1066
- {
1067
- if (exp[i] != act[i])
1068
- {
1069
- Unity.CurrentTestFailed = 1;
1070
- break;
1071
- }
1072
- }
1073
- }
1074
- else
1075
- { /* handle case of one pointers being null (if both null, test should pass) */
1076
- if (exp != act)
1077
- {
1078
- Unity.CurrentTestFailed = 1;
1079
- }
1080
- }
1081
-
1082
- if (Unity.CurrentTestFailed)
1083
- {
1084
- UnityTestResultsFailBegin(lineNumber);
1085
- if (num_elements > 1)
1086
- {
1087
- UnityPrint(UnityStrElement);
1088
- UnityPrintNumberUnsigned(j);
1089
- }
1090
- UnityPrintExpectedAndActualStrings(exp, act);
1091
- UnityAddMsgIfSpecified(msg);
1092
- UNITY_FAIL_AND_BAIL;
1093
- }
1094
- } while (++j < num_elements);
1095
- }
1096
-
1097
- /*-----------------------------------------------*/
1098
- void UnityAssertEqualMemory(UNITY_INTERNAL_PTR expected,
1099
- UNITY_INTERNAL_PTR actual,
1100
- const UNITY_UINT32 length,
1101
- const UNITY_UINT32 num_elements,
1102
- const char* msg,
1103
- const UNITY_LINE_TYPE lineNumber,
1104
- const UNITY_FLAGS_T flags)
1105
- {
1106
- UNITY_PTR_ATTRIBUTE const unsigned char* ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected;
1107
- UNITY_PTR_ATTRIBUTE const unsigned char* ptr_act = (UNITY_PTR_ATTRIBUTE const unsigned char*)actual;
1108
- UNITY_UINT32 elements = num_elements;
1109
- UNITY_UINT32 bytes;
1110
-
1111
- RETURN_IF_FAIL_OR_IGNORE;
1112
-
1113
- if ((elements == 0) || (length == 0))
1114
- {
1115
- UnityPrintPointlessAndBail();
1116
- }
1117
-
1118
- if (expected == actual) return; /* Both are NULL or same pointer */
1119
- if (UnityIsOneArrayNull(expected, actual, lineNumber, msg))
1120
- UNITY_FAIL_AND_BAIL;
1121
-
1122
- while (elements--)
1123
- {
1124
- bytes = length;
1125
- while (bytes--)
1126
- {
1127
- if (*ptr_exp != *ptr_act)
1128
- {
1129
- UnityTestResultsFailBegin(lineNumber);
1130
- UnityPrint(UnityStrMemory);
1131
- if (num_elements > 1)
1132
- {
1133
- UnityPrint(UnityStrElement);
1134
- UnityPrintNumberUnsigned(num_elements - elements - 1);
1135
- }
1136
- UnityPrint(UnityStrByte);
1137
- UnityPrintNumberUnsigned(length - bytes - 1);
1138
- UnityPrint(UnityStrExpected);
1139
- UnityPrintNumberByStyle(*ptr_exp, UNITY_DISPLAY_STYLE_HEX8);
1140
- UnityPrint(UnityStrWas);
1141
- UnityPrintNumberByStyle(*ptr_act, UNITY_DISPLAY_STYLE_HEX8);
1142
- UnityAddMsgIfSpecified(msg);
1143
- UNITY_FAIL_AND_BAIL;
1144
- }
1145
- ptr_exp++;
1146
- ptr_act++;
1147
- }
1148
- if (flags == UNITY_ARRAY_TO_VAL)
1149
- {
1150
- ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected;
1151
- }
1152
- }
1153
- }
1154
-
1155
- /*-----------------------------------------------*/
1156
-
1157
- static union
1158
- {
1159
- UNITY_INT8 i8;
1160
- UNITY_INT16 i16;
1161
- UNITY_INT32 i32;
1162
- #ifdef UNITY_SUPPORT_64
1163
- UNITY_INT64 i64;
1164
- #endif
1165
- #ifndef UNITY_EXCLUDE_FLOAT
1166
- float f;
1167
- #endif
1168
- #ifndef UNITY_EXCLUDE_DOUBLE
1169
- double d;
1170
- #endif
1171
- } UnityQuickCompare;
1172
-
1173
- UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 size)
1174
- {
1175
- switch(size)
1176
- {
1177
- case 1:
1178
- UnityQuickCompare.i8 = (UNITY_INT8)num;
1179
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i8);
1180
-
1181
- case 2:
1182
- UnityQuickCompare.i16 = (UNITY_INT16)num;
1183
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i16);
1184
-
1185
- #ifdef UNITY_SUPPORT_64
1186
- case 8:
1187
- UnityQuickCompare.i64 = (UNITY_INT64)num;
1188
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i64);
1189
- #endif
1190
- default: /* 4 bytes */
1191
- UnityQuickCompare.i32 = (UNITY_INT32)num;
1192
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i32);
1193
- }
1194
- }
1195
-
1196
- #ifndef UNITY_EXCLUDE_FLOAT
1197
- UNITY_INTERNAL_PTR UnityFloatToPtr(const float num)
1198
- {
1199
- UnityQuickCompare.f = num;
1200
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.f);
1201
- }
1202
- #endif
1203
-
1204
- #ifndef UNITY_EXCLUDE_DOUBLE
1205
- UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num)
1206
- {
1207
- UnityQuickCompare.d = num;
1208
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.d);
1209
- }
1210
- #endif
1211
-
1212
- /*-----------------------------------------------
1213
- * Control Functions
1214
- *-----------------------------------------------*/
1215
-
1216
- void UnityFail(const char* msg, const UNITY_LINE_TYPE line)
1217
- {
1218
- RETURN_IF_FAIL_OR_IGNORE;
1219
-
1220
- UnityTestResultsBegin(Unity.TestFile, line);
1221
- UnityPrint(UnityStrFail);
1222
- if (msg != NULL)
1223
- {
1224
- UNITY_OUTPUT_CHAR(':');
1225
-
1226
- #ifndef UNITY_EXCLUDE_DETAILS
1227
- if (Unity.CurrentDetail1)
1228
- {
1229
- UnityPrint(UnityStrDetail1Name);
1230
- UnityPrint(Unity.CurrentDetail1);
1231
- if (Unity.CurrentDetail2)
1232
- {
1233
- UnityPrint(UnityStrDetail2Name);
1234
- UnityPrint(Unity.CurrentDetail2);
1235
- }
1236
- UnityPrint(UnityStrSpacer);
1237
- }
1238
- #endif
1239
- if (msg[0] != ' ')
1240
- {
1241
- UNITY_OUTPUT_CHAR(' ');
1242
- }
1243
- UnityPrint(msg);
1244
- }
1245
-
1246
- UNITY_FAIL_AND_BAIL;
1247
- }
1248
-
1249
- /*-----------------------------------------------*/
1250
- void UnityIgnore(const char* msg, const UNITY_LINE_TYPE line)
1251
- {
1252
- RETURN_IF_FAIL_OR_IGNORE;
1253
-
1254
- UnityTestResultsBegin(Unity.TestFile, line);
1255
- UnityPrint(UnityStrIgnore);
1256
- if (msg != NULL)
1257
- {
1258
- UNITY_OUTPUT_CHAR(':');
1259
- UNITY_OUTPUT_CHAR(' ');
1260
- UnityPrint(msg);
1261
- }
1262
- UNITY_IGNORE_AND_BAIL;
1263
- }
1264
-
1265
- /*-----------------------------------------------*/
1266
- #if defined(UNITY_WEAK_ATTRIBUTE)
1267
- UNITY_WEAK_ATTRIBUTE void setUp(void) { }
1268
- UNITY_WEAK_ATTRIBUTE void tearDown(void) { }
1269
- #elif defined(UNITY_WEAK_PRAGMA)
1270
- #pragma weak setUp
1271
- void setUp(void) { }
1272
- #pragma weak tearDown
1273
- void tearDown(void) { }
1274
- #endif
1275
-
1276
- /*-----------------------------------------------*/
1277
- void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum)
1278
- {
1279
- Unity.CurrentTestName = FuncName;
1280
- Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)FuncLineNum;
1281
- Unity.NumberOfTests++;
1282
- UNITY_CLR_DETAILS();
1283
- if (TEST_PROTECT())
1284
- {
1285
- setUp();
1286
- Func();
1287
- }
1288
- if (TEST_PROTECT())
1289
- {
1290
- tearDown();
1291
- }
1292
- UnityConcludeTest();
1293
- }
1294
-
1295
- /*-----------------------------------------------*/
1296
- void UnityBegin(const char* filename)
1297
- {
1298
- Unity.TestFile = filename;
1299
- Unity.CurrentTestName = NULL;
1300
- Unity.CurrentTestLineNumber = 0;
1301
- Unity.NumberOfTests = 0;
1302
- Unity.TestFailures = 0;
1303
- Unity.TestIgnores = 0;
1304
- Unity.CurrentTestFailed = 0;
1305
- Unity.CurrentTestIgnored = 0;
1306
-
1307
- UNITY_CLR_DETAILS();
1308
- UNITY_OUTPUT_START();
1309
- }
1310
-
1311
- /*-----------------------------------------------*/
1312
- int UnityEnd(void)
1313
- {
1314
- UNITY_PRINT_EOL();
1315
- UnityPrint(UnityStrBreaker);
1316
- UNITY_PRINT_EOL();
1317
- UnityPrintNumber((UNITY_INT)(Unity.NumberOfTests));
1318
- UnityPrint(UnityStrResultsTests);
1319
- UnityPrintNumber((UNITY_INT)(Unity.TestFailures));
1320
- UnityPrint(UnityStrResultsFailures);
1321
- UnityPrintNumber((UNITY_INT)(Unity.TestIgnores));
1322
- UnityPrint(UnityStrResultsIgnored);
1323
- UNITY_PRINT_EOL();
1324
- if (Unity.TestFailures == 0U)
1325
- {
1326
- UnityPrint(UnityStrOk);
1327
- }
1328
- else
1329
- {
1330
- UnityPrint(UnityStrFail);
1331
- #ifdef UNITY_DIFFERENTIATE_FINAL_FAIL
1332
- UNITY_OUTPUT_CHAR('E'); UNITY_OUTPUT_CHAR('D');
1333
- #endif
1334
- }
1335
- UNITY_PRINT_EOL();
1336
- UNITY_FLUSH_CALL();
1337
- UNITY_OUTPUT_COMPLETE();
1338
- return (int)(Unity.TestFailures);
1339
- }
1340
-
1341
- /*-----------------------------------------------
1342
- * Command Line Argument Support
1343
- *-----------------------------------------------*/
1344
- #ifdef UNITY_USE_COMMAND_LINE_ARGS
1345
-
1346
- char* UnityOptionIncludeNamed = NULL;
1347
- char* UnityOptionExcludeNamed = NULL;
1348
- int UnityVerbosity = 1;
1349
-
1350
- int UnityParseOptions(int argc, char** argv)
1351
- {
1352
- UnityOptionIncludeNamed = NULL;
1353
- UnityOptionExcludeNamed = NULL;
1354
-
1355
- for (int i = 1; i < argc; i++)
1356
- {
1357
- if (argv[i][0] == '-')
1358
- {
1359
- switch (argv[i][1])
1360
- {
1361
- case 'l': /* list tests */
1362
- return -1;
1363
- case 'n': /* include tests with name including this string */
1364
- case 'f': /* an alias for -n */
1365
- if (argv[i][2] == '=')
1366
- UnityOptionIncludeNamed = &argv[i][3];
1367
- else if (++i < argc)
1368
- UnityOptionIncludeNamed = argv[i];
1369
- else
1370
- {
1371
- UnityPrint("ERROR: No Test String to Include Matches For");
1372
- UNITY_PRINT_EOL();
1373
- return 1;
1374
- }
1375
- break;
1376
- case 'q': /* quiet */
1377
- UnityVerbosity = 0;
1378
- break;
1379
- case 'v': /* verbose */
1380
- UnityVerbosity = 2;
1381
- break;
1382
- case 'x': /* exclude tests with name including this string */
1383
- if (argv[i][2] == '=')
1384
- UnityOptionExcludeNamed = &argv[i][3];
1385
- else if (++i < argc)
1386
- UnityOptionExcludeNamed = argv[i];
1387
- else
1388
- {
1389
- UnityPrint("ERROR: No Test String to Exclude Matches For");
1390
- UNITY_PRINT_EOL();
1391
- return 1;
1392
- }
1393
- break;
1394
- default:
1395
- UnityPrint("ERROR: Unknown Option ");
1396
- UNITY_OUTPUT_CHAR(argv[i][1]);
1397
- UNITY_PRINT_EOL();
1398
- return 1;
1399
- }
1400
- }
1401
- }
1402
-
1403
- return 0;
1404
- }
1405
-
1406
- int IsStringInBiggerString(const char* longstring, const char* shortstring)
1407
- {
1408
- const char* lptr = longstring;
1409
- const char* sptr = shortstring;
1410
- const char* lnext = lptr;
1411
-
1412
- if (*sptr == '*')
1413
- return 1;
1414
-
1415
- while (*lptr)
1416
- {
1417
- lnext = lptr + 1;
1418
-
1419
- /* If they current bytes match, go on to the next bytes */
1420
- while (*lptr && *sptr && (*lptr == *sptr))
1421
- {
1422
- lptr++;
1423
- sptr++;
1424
-
1425
- /* We're done if we match the entire string or up to a wildcard */
1426
- if (*sptr == '*')
1427
- return 1;
1428
- if (*sptr == ',')
1429
- return 1;
1430
- if (*sptr == '"')
1431
- return 1;
1432
- if (*sptr == '\'')
1433
- return 1;
1434
- if (*sptr == ':')
1435
- return 2;
1436
- if (*sptr == 0)
1437
- return 1;
1438
- }
1439
-
1440
- /* Otherwise we start in the long pointer 1 character further and try again */
1441
- lptr = lnext;
1442
- sptr = shortstring;
1443
- }
1444
- return 0;
1445
- }
1446
-
1447
- int UnityStringArgumentMatches(const char* str)
1448
- {
1449
- int retval;
1450
- const char* ptr1;
1451
- const char* ptr2;
1452
- const char* ptrf;
1453
-
1454
- /* Go through the options and get the substrings for matching one at a time */
1455
- ptr1 = str;
1456
- while (ptr1[0] != 0)
1457
- {
1458
- if ((ptr1[0] == '"') || (ptr1[0] == '\''))
1459
- ptr1++;
1460
-
1461
- /* look for the start of the next partial */
1462
- ptr2 = ptr1;
1463
- ptrf = 0;
1464
- do
1465
- {
1466
- ptr2++;
1467
- if ((ptr2[0] == ':') && (ptr2[1] != 0) && (ptr2[0] != '\'') && (ptr2[0] != '"') && (ptr2[0] != ','))
1468
- ptrf = &ptr2[1];
1469
- } while ((ptr2[0] != 0) && (ptr2[0] != '\'') && (ptr2[0] != '"') && (ptr2[0] != ','));
1470
- while ((ptr2[0] != 0) && ((ptr2[0] == ':') || (ptr2[0] == '\'') || (ptr2[0] == '"') || (ptr2[0] == ',')))
1471
- ptr2++;
1472
-
1473
- /* done if complete filename match */
1474
- retval = IsStringInBiggerString(Unity.TestFile, ptr1);
1475
- if (retval == 1)
1476
- return retval;
1477
-
1478
- /* done if testname match after filename partial match */
1479
- if ((retval == 2) && (ptrf != 0))
1480
- {
1481
- if (IsStringInBiggerString(Unity.CurrentTestName, ptrf))
1482
- return 1;
1483
- }
1484
-
1485
- /* done if complete testname match */
1486
- if (IsStringInBiggerString(Unity.CurrentTestName, ptr1) == 1)
1487
- return 1;
1488
-
1489
- ptr1 = ptr2;
1490
- }
1491
-
1492
- /* we couldn't find a match for any substrings */
1493
- return 0;
1494
- }
1495
-
1496
- int UnityTestMatches(void)
1497
- {
1498
- /* Check if this test name matches the included test pattern */
1499
- int retval;
1500
- if (UnityOptionIncludeNamed)
1501
- {
1502
- retval = UnityStringArgumentMatches(UnityOptionIncludeNamed);
1503
- }
1504
- else
1505
- retval = 1;
1506
-
1507
- /* Check if this test name matches the excluded test pattern */
1508
- if (UnityOptionExcludeNamed)
1509
- {
1510
- if (UnityStringArgumentMatches(UnityOptionExcludeNamed))
1511
- retval = 0;
1512
- }
1513
- return retval;
1514
- }
1515
-
1516
- #endif /* UNITY_USE_COMMAND_LINE_ARGS */
1517
- /*-----------------------------------------------*/