ceedling 0.19.0 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +10 -10
  3. data/bin/ceedling +205 -92
  4. data/ceedling-0.19.0.gem +0 -0
  5. data/config/test_environment.rb +12 -12
  6. data/docs/CeedlingPacket.md +866 -853
  7. data/docs/CeedlingPacket.odt +0 -0
  8. data/docs/CeedlingPacket.pdf +0 -0
  9. data/examples/temp_sensor/rakefile.rb +4 -4
  10. data/examples/temp_sensor/src/AdcConductor.c +42 -42
  11. data/examples/temp_sensor/src/AdcConductor.h +13 -13
  12. data/examples/temp_sensor/src/AdcHardware.c +27 -27
  13. data/examples/temp_sensor/src/AdcHardware.h +11 -11
  14. data/examples/temp_sensor/src/AdcHardwareConfigurator.c +18 -18
  15. data/examples/temp_sensor/src/AdcHardwareConfigurator.h +10 -10
  16. data/examples/temp_sensor/src/AdcModel.c +33 -33
  17. data/examples/temp_sensor/src/AdcModel.h +13 -13
  18. data/examples/temp_sensor/src/AdcTemperatureSensor.c +51 -51
  19. data/examples/temp_sensor/src/AdcTemperatureSensor.h +10 -10
  20. data/examples/temp_sensor/src/Executor.c +25 -25
  21. data/examples/temp_sensor/src/Executor.h +9 -9
  22. data/examples/temp_sensor/src/IntrinsicsWrapper.c +18 -18
  23. data/examples/temp_sensor/src/IntrinsicsWrapper.h +7 -7
  24. data/examples/temp_sensor/src/Main.c +46 -46
  25. data/examples/temp_sensor/src/Main.h +7 -7
  26. data/examples/temp_sensor/src/Model.c +10 -10
  27. data/examples/temp_sensor/src/Model.h +8 -8
  28. data/examples/temp_sensor/src/ModelConfig.h +7 -7
  29. data/examples/temp_sensor/src/TaskScheduler.c +72 -72
  30. data/examples/temp_sensor/src/TaskScheduler.h +11 -11
  31. data/examples/temp_sensor/src/TemperatureCalculator.c +27 -27
  32. data/examples/temp_sensor/src/TemperatureCalculator.h +8 -8
  33. data/examples/temp_sensor/src/TemperatureFilter.c +38 -38
  34. data/examples/temp_sensor/src/TemperatureFilter.h +10 -10
  35. data/examples/temp_sensor/src/TimerConductor.c +15 -15
  36. data/examples/temp_sensor/src/TimerConductor.h +9 -9
  37. data/examples/temp_sensor/src/TimerConfigurator.c +51 -51
  38. data/examples/temp_sensor/src/TimerConfigurator.h +15 -15
  39. data/examples/temp_sensor/src/TimerHardware.c +15 -15
  40. data/examples/temp_sensor/src/TimerHardware.h +8 -8
  41. data/examples/temp_sensor/src/TimerInterruptConfigurator.c +55 -55
  42. data/examples/temp_sensor/src/TimerInterruptConfigurator.h +13 -13
  43. data/examples/temp_sensor/src/TimerInterruptHandler.c +25 -25
  44. data/examples/temp_sensor/src/TimerInterruptHandler.h +10 -10
  45. data/examples/temp_sensor/src/TimerModel.c +9 -9
  46. data/examples/temp_sensor/src/TimerModel.h +8 -8
  47. data/examples/temp_sensor/src/Types.h +90 -90
  48. data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +18 -18
  49. data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +8 -8
  50. data/examples/temp_sensor/src/UsartConductor.c +21 -21
  51. data/examples/temp_sensor/src/UsartConductor.h +7 -7
  52. data/examples/temp_sensor/src/UsartConfigurator.c +39 -39
  53. data/examples/temp_sensor/src/UsartConfigurator.h +13 -13
  54. data/examples/temp_sensor/src/UsartHardware.c +22 -22
  55. data/examples/temp_sensor/src/UsartHardware.h +9 -9
  56. data/examples/temp_sensor/src/UsartModel.c +34 -34
  57. data/examples/temp_sensor/src/UsartModel.h +10 -10
  58. data/examples/temp_sensor/src/UsartPutChar.c +16 -16
  59. data/examples/temp_sensor/src/UsartPutChar.h +8 -8
  60. data/examples/temp_sensor/src/UsartTransmitBufferStatus.c +7 -7
  61. data/examples/temp_sensor/src/UsartTransmitBufferStatus.h +8 -8
  62. data/examples/temp_sensor/test/TestAdcConductor.c +121 -121
  63. data/examples/temp_sensor/test/TestAdcHardware.c +44 -44
  64. data/examples/temp_sensor/test/TestAdcModel.c +33 -33
  65. data/examples/temp_sensor/test/TestExecutor.c +36 -36
  66. data/examples/temp_sensor/test/TestMain.c +24 -24
  67. data/examples/temp_sensor/test/TestModel.c +20 -20
  68. data/examples/temp_sensor/test/TestTaskScheduler.c +104 -104
  69. data/examples/temp_sensor/test/TestTemperatureCalculator.c +33 -33
  70. data/examples/temp_sensor/test/TestTemperatureFilter.c +79 -79
  71. data/examples/temp_sensor/test/TestTimerConductor.c +32 -32
  72. data/examples/temp_sensor/test/TestTimerHardware.c +26 -26
  73. data/examples/temp_sensor/test/TestTimerModel.c +18 -18
  74. data/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +21 -21
  75. data/examples/temp_sensor/test/TestUsartConductor.c +40 -40
  76. data/examples/temp_sensor/test/TestUsartHardware.c +36 -36
  77. data/examples/temp_sensor/test/TestUsartModel.c +36 -36
  78. data/examples/temp_sensor/test/support/UnityHelper.c +12 -12
  79. data/examples/temp_sensor/test/support/UnityHelper.h +12 -12
  80. data/lib/ceedling/configurator_builder.rb +1 -1
  81. data/lib/ceedling/tasks_base.rake +10 -2
  82. data/lib/ceedling/tool_executor.rb +3 -0
  83. data/lib/ceedling/version.rb +3 -3
  84. data/license.txt +1 -1
  85. data/plugins/bullseye/bullseye.rake +162 -162
  86. data/plugins/gcov/gcov.rake +152 -152
  87. data/plugins/module_generator/lib/module_generator.rb +145 -145
  88. data/plugins/module_generator/module_generator.rake +14 -14
  89. data/plugins/stdout_gtestlike_tests_report/assets/template.erb +84 -0
  90. data/plugins/stdout_gtestlike_tests_report/assets/template.erb copy +59 -0
  91. data/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml +4 -0
  92. data/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb +43 -0
  93. data/spec/system/deployment_spec.rb +0 -1
  94. data/test_graveyard/integration/paths_test.rb +80 -80
  95. data/test_graveyard/integration/rake_rules_aux_dependencies_test.rb +75 -75
  96. data/test_graveyard/integration/rake_rules_cmock_test.rb +74 -74
  97. data/test_graveyard/integration/rake_rules_preprocess_test.rb +178 -178
  98. data/test_graveyard/integration/rake_rules_test.rb +268 -268
  99. data/test_graveyard/integration/rake_tasks_test.rb +103 -103
  100. data/test_graveyard/integration_test_helper.rb +34 -34
  101. data/test_graveyard/rakefile_rules.rb +10 -10
  102. data/test_graveyard/rakefile_rules_aux_dependencies.rb +10 -10
  103. data/test_graveyard/rakefile_rules_cmock.rb +10 -10
  104. data/test_graveyard/rakefile_rules_preprocess.rb +10 -10
  105. data/test_graveyard/rakefile_tasks.rb +10 -10
  106. data/test_graveyard/system/file_system_test.rb +78 -78
  107. data/test_graveyard/system/project_mocks_test.rb +38 -38
  108. data/test_graveyard/system/project_simple_test.rb +39 -39
  109. data/test_graveyard/system/rule_mocks_test.rb +44 -44
  110. data/test_graveyard/system/rule_runners_test.rb +44 -44
  111. data/test_graveyard/system_test_helper.rb +73 -73
  112. data/test_graveyard/test_helper.rb +93 -93
  113. data/test_graveyard/unit/busted/configurator_builder_test.rb +569 -569
  114. data/test_graveyard/unit/busted/configurator_helper_test.rb +234 -234
  115. data/test_graveyard/unit/busted/configurator_test.rb +232 -232
  116. data/test_graveyard/unit/busted/configurator_validator_test.rb +169 -169
  117. data/test_graveyard/unit/busted/deep_merge_fix_test.rb +55 -55
  118. data/test_graveyard/unit/busted/dependinator_test.rb +129 -129
  119. data/test_graveyard/unit/busted/file_finder_helper_test.rb +45 -45
  120. data/test_graveyard/unit/busted/file_finder_test.rb +114 -114
  121. data/test_graveyard/unit/busted/file_path_utils_test.rb +97 -97
  122. data/test_graveyard/unit/busted/file_system_utils_test.rb +21 -21
  123. data/test_graveyard/unit/busted/generator_test.rb +187 -187
  124. data/test_graveyard/unit/busted/generator_test_results_test.rb +129 -129
  125. data/test_graveyard/unit/busted/generator_test_runner_test.rb +475 -475
  126. data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +39 -39
  127. data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +156 -156
  128. data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +93 -93
  129. data/test_graveyard/unit/busted/preprocessinator_test.rb +57 -57
  130. data/test_graveyard/unit/busted/project_file_loader_test.rb +142 -142
  131. data/test_graveyard/unit/busted/setupinator_test.rb +45 -45
  132. data/test_graveyard/unit/busted/streaminator_test.rb +49 -49
  133. data/test_graveyard/unit/busted/task_invoker_test.rb +69 -69
  134. data/test_graveyard/unit/busted/test_includes_extractor_test.rb +111 -111
  135. data/test_graveyard/unit/busted/test_invoker_helper_test.rb +62 -62
  136. data/test_graveyard/unit/busted/test_invoker_test.rb +47 -47
  137. data/test_graveyard/unit/busted/tool_executor_helper_test.rb +100 -100
  138. data/test_graveyard/unit/busted/tool_executor_test.rb +351 -351
  139. data/test_graveyard/unit/busted/verbosinator_test.rb +65 -65
  140. data/test_graveyard/unit/preprocessinator_extractor_test.rb +731 -731
  141. data/test_graveyard/unit_test_helper.rb +16 -16
  142. data/vendor/c_exception/LICENSE.txt +30 -30
  143. data/vendor/c_exception/README.md +11 -1
  144. data/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  145. data/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  146. data/vendor/c_exception/docs/readme.txt +261 -242
  147. data/vendor/c_exception/lib/CException.c +46 -46
  148. data/vendor/c_exception/lib/CException.h +110 -86
  149. data/vendor/c_exception/makefile +23 -23
  150. data/vendor/c_exception/test/CExceptionConfig.h +46 -46
  151. data/vendor/c_exception/test/TestException.c +391 -342
  152. data/vendor/c_exception/test/TestException_Runner.c +5 -12
  153. data/vendor/c_exception/vendor/unity/README.md +211 -0
  154. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +1 -1
  155. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +38 -38
  156. data/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -36
  157. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -202
  158. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +391 -320
  159. data/vendor/c_exception/vendor/unity/auto/parseOutput.rb +2 -0
  160. data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +260 -0
  161. data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +8 -0
  162. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +135 -0
  163. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +148 -139
  164. data/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  165. data/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  166. data/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +224 -216
  167. data/vendor/c_exception/vendor/unity/docs/license.txt +21 -31
  168. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +40 -15
  169. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -0
  170. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +32 -25
  171. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +29 -22
  172. data/vendor/c_exception/vendor/unity/examples/example_2/makefile +40 -14
  173. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +2 -0
  174. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +2 -2
  175. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -1
  176. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +2 -0
  177. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +48 -37
  178. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -179
  179. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +135 -94
  180. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +13 -17
  181. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -18
  182. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +30 -0
  183. data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +60 -0
  184. data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +4 -3
  185. data/vendor/c_exception/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
  186. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +182 -27
  187. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +13 -0
  188. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +8 -6
  189. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +2 -2
  190. data/vendor/c_exception/vendor/unity/release/build.info +1 -1
  191. data/vendor/c_exception/vendor/unity/release/version.info +1 -1
  192. data/vendor/c_exception/vendor/unity/src/unity.c +1333 -1145
  193. data/vendor/c_exception/vendor/unity/src/unity.h +290 -307
  194. data/vendor/c_exception/vendor/unity/src/unity_internals.h +758 -620
  195. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +7 -3
  196. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +7 -3
  197. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -0
  198. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -0
  199. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +4 -3
  200. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +4 -3
  201. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
  202. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
  203. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -5
  204. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +4 -3
  205. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +4 -3
  206. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -5
  207. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +4 -3
  208. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -6
  209. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +9 -5
  210. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -3
  211. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +7 -3
  212. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +9 -5
  213. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -3
  214. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +10 -6
  215. data/vendor/c_exception/vendor/unity/{rakefile.rb → test/rakefile} +60 -61
  216. data/vendor/c_exception/vendor/unity/{rakefile_helper.rb → test/rakefile_helper.rb} +255 -249
  217. data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +83 -0
  218. data/vendor/c_exception/vendor/unity/{targets → test/targets}/clang_strict.yml +83 -83
  219. data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -0
  220. data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -0
  221. data/vendor/c_exception/vendor/unity/{targets/gcc_64.yml → test/targets/gcc_auto_limits.yml} +46 -45
  222. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +47 -0
  223. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +58 -0
  224. data/vendor/{cmock/vendor/c_exception/vendor/unity/targets/gcc_64.yml → c_exception/vendor/unity/test/targets/gcc_manual_math.yml} +46 -45
  225. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/hitech_picc18.yml +101 -101
  226. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_arm_v4.yml +89 -89
  227. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_arm_v5.yml +79 -79
  228. data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_arm_v5_3.yml +79 -79
  229. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -93
  230. data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_cortexm3_v5.yml +83 -83
  231. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_msp430.yml +94 -94
  232. data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_sh2a_v6.yml +85 -85
  233. data/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -51
  234. data/vendor/c_exception/vendor/unity/test/testdata/sample.yml +8 -8
  235. data/vendor/c_exception/vendor/unity/test/testdata/testsample.c +68 -51
  236. data/vendor/{cmock/vendor/c_exception/vendor/unity/test → c_exception/vendor/unity/test/tests}/test_generate_test_runner.rb +102 -88
  237. data/vendor/{cmock/vendor/c_exception/vendor/unity/test → c_exception/vendor/unity/test/tests}/testparameterized.c +104 -101
  238. data/vendor/c_exception/vendor/unity/test/{testunity.c → tests/testunity.c} +3682 -3447
  239. data/vendor/cmock/docs/CMock_Summary.md +3 -0
  240. data/vendor/cmock/lib/cmock_config.rb +1 -0
  241. data/vendor/cmock/lib/cmock_file_writer.rb +7 -3
  242. data/vendor/cmock/lib/cmock_generator.rb +3 -2
  243. data/vendor/cmock/lib/cmock_header_parser.rb +12 -5
  244. data/vendor/cmock/release/version.info +1 -1
  245. data/vendor/cmock/test/system/test_compilation/parsing.h +3 -0
  246. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +7 -0
  247. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +57 -1
  248. data/vendor/cmock/vendor/c_exception/LICENSE.txt +30 -30
  249. data/vendor/cmock/vendor/c_exception/README.md +11 -1
  250. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  251. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  252. data/vendor/cmock/vendor/c_exception/docs/readme.txt +261 -242
  253. data/vendor/cmock/vendor/c_exception/lib/CException.c +46 -46
  254. data/vendor/cmock/vendor/c_exception/lib/CException.h +110 -86
  255. data/vendor/cmock/vendor/c_exception/makefile +23 -23
  256. data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +46 -46
  257. data/vendor/cmock/vendor/c_exception/test/TestException.c +391 -342
  258. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +5 -12
  259. data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +211 -0
  260. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +1 -1
  261. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +38 -38
  262. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -36
  263. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -202
  264. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +391 -320
  265. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parseOutput.rb +2 -0
  266. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +260 -0
  267. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +8 -0
  268. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +135 -0
  269. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +148 -139
  270. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  271. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  272. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +224 -216
  273. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +21 -31
  274. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +40 -15
  275. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -0
  276. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +32 -25
  277. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +29 -22
  278. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +40 -14
  279. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +2 -0
  280. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +2 -2
  281. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -1
  282. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +2 -0
  283. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +48 -37
  284. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -179
  285. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +135 -94
  286. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +13 -17
  287. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -18
  288. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +30 -0
  289. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +60 -0
  290. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +4 -3
  291. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
  292. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +182 -27
  293. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +13 -0
  294. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +8 -6
  295. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +2 -2
  296. data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +1 -1
  297. data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +1 -1
  298. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +1333 -1145
  299. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +290 -307
  300. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +758 -620
  301. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +7 -3
  302. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +7 -3
  303. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -0
  304. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -0
  305. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +4 -3
  306. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +4 -3
  307. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
  308. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
  309. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -5
  310. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +4 -3
  311. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +4 -3
  312. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -5
  313. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +4 -3
  314. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -6
  315. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +9 -5
  316. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -3
  317. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +7 -3
  318. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +9 -5
  319. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -3
  320. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +10 -6
  321. data/vendor/cmock/vendor/c_exception/vendor/unity/{rakefile.rb → test/rakefile} +60 -61
  322. data/vendor/cmock/vendor/c_exception/vendor/unity/{rakefile_helper.rb → test/rakefile_helper.rb} +255 -249
  323. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +83 -0
  324. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/clang_strict.yml +83 -83
  325. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -0
  326. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -0
  327. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets/gcc_32.yml → test/targets/gcc_auto_limits.yml} +46 -44
  328. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +47 -0
  329. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +58 -0
  330. data/vendor/{c_exception/vendor/unity/targets/gcc_32.yml → cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml} +46 -44
  331. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/hitech_picc18.yml +101 -101
  332. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_arm_v4.yml +89 -89
  333. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_arm_v5.yml +79 -79
  334. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_arm_v5_3.yml +79 -79
  335. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -93
  336. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_cortexm3_v5.yml +83 -83
  337. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_msp430.yml +94 -94
  338. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_sh2a_v6.yml +85 -85
  339. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -51
  340. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/sample.yml +8 -8
  341. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testsample.c +68 -51
  342. data/vendor/{c_exception/vendor/unity/test → cmock/vendor/c_exception/vendor/unity/test/tests}/test_generate_test_runner.rb +102 -88
  343. data/vendor/{c_exception/vendor/unity/test → cmock/vendor/c_exception/vendor/unity/test/tests}/testparameterized.c +104 -101
  344. data/vendor/cmock/vendor/c_exception/vendor/unity/test/{testunity.c → tests/testunity.c} +3682 -3447
  345. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +30 -13
  346. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +260 -0
  347. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +96 -93
  348. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
  349. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -19
  350. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +18 -17
  351. data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +66 -5
  352. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +2 -1
  353. data/vendor/cmock/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
  354. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +187 -27
  355. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +14 -0
  356. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +6 -5
  357. data/vendor/cmock/vendor/unity/release/version.info +1 -1
  358. data/vendor/cmock/vendor/unity/src/unity.c +38 -27
  359. data/vendor/cmock/vendor/unity/src/unity.h +5 -0
  360. data/vendor/cmock/vendor/unity/src/unity_internals.h +22 -18
  361. data/vendor/cmock/vendor/unity/test/Makefile +52 -0
  362. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +4 -0
  363. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +4 -0
  364. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +4 -0
  365. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +7 -4
  366. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +6 -4
  367. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +4 -0
  368. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +4 -0
  369. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +4 -0
  370. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +4 -0
  371. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +4 -0
  372. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +4 -0
  373. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -1
  374. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -1
  375. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +0 -1
  376. data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +0 -1
  377. data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +0 -1
  378. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +0 -1
  379. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_sizeof.yml +0 -1
  380. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -1
  381. data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +0 -1
  382. data/vendor/cmock/vendor/unity/test/testdata/testsample.c +19 -2
  383. data/vendor/cmock/vendor/unity/test/tests/testunity.c +55 -4
  384. data/vendor/unity/auto/generate_test_runner.rb +4 -2
  385. data/vendor/unity/auto/stylize_as_junit.rb +260 -0
  386. data/vendor/unity/extras/fixture/src/unity_fixture.c +24 -41
  387. data/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
  388. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +5 -7
  389. data/vendor/unity/extras/fixture/test/Makefile +53 -8
  390. data/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
  391. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +129 -32
  392. data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +6 -0
  393. data/vendor/unity/extras/fixture/test/unity_output_Spy.c +4 -4
  394. data/vendor/unity/release/version.info +1 -1
  395. data/vendor/unity/src/unity.c +32 -21
  396. data/vendor/unity/src/unity.h +5 -0
  397. data/vendor/unity/src/unity_internals.h +7 -3
  398. data/vendor/unity/test/Makefile +52 -0
  399. data/vendor/unity/test/expectdata/testsample_cmd.c +4 -0
  400. data/vendor/unity/test/expectdata/testsample_def.c +4 -0
  401. data/vendor/unity/test/expectdata/testsample_head1.c +4 -0
  402. data/vendor/unity/test/expectdata/testsample_head1.h +7 -4
  403. data/vendor/unity/test/expectdata/testsample_mock_head1.h +6 -4
  404. data/vendor/unity/test/expectdata/testsample_new1.c +4 -0
  405. data/vendor/unity/test/expectdata/testsample_new2.c +4 -0
  406. data/vendor/unity/test/expectdata/testsample_param.c +4 -0
  407. data/vendor/unity/test/expectdata/testsample_run1.c +4 -0
  408. data/vendor/unity/test/expectdata/testsample_run2.c +4 -0
  409. data/vendor/unity/test/expectdata/testsample_yaml.c +4 -0
  410. data/vendor/unity/test/testdata/testsample.c +19 -2
  411. data/vendor/unity/test/tests/testunity.c +35 -4
  412. metadata +75 -52
  413. data/ceedling-0.18.0.gem +0 -0
  414. data/docs/CeedlingLogo.png +0 -0
  415. data/vendor/c_exception/vendor/unity/Gemfile +0 -4
  416. data/vendor/c_exception/vendor/unity/Gemfile.lock +0 -12
  417. data/vendor/c_exception/vendor/unity/examples/example_3/makefile +0 -41
  418. data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +0 -46
  419. data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +0 -50
  420. data/vendor/c_exception/vendor/unity/makefile +0 -37
  421. data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile +0 -4
  422. data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile.lock +0 -12
  423. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/makefile +0 -41
  424. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +0 -46
  425. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +0 -50
  426. data/vendor/cmock/vendor/c_exception/vendor/unity/makefile +0 -37
@@ -1,475 +1,475 @@
1
- require File.dirname(__FILE__) + '/../unit_test_helper'
2
- require 'ceedling/generator_test_runner'
3
-
4
-
5
- # redefine split for convenience of file content comparison in tests.
6
- # this is needed because we're using the '<<' operator on real files in source but substituting
7
- # an array for file writes in the tests; the '<<' operator tacks on new lines when used with a file,
8
- # but, of course, does not do this when inserting into an array.
9
- class String
10
- def newline_split(pattern=/\n/, limit=nil)
11
- return (split(pattern, limit)).map{|elem| elem + "\n"} if !limit.nil?
12
- return (split(pattern) ).map{|elem| elem + "\n"}
13
- end
14
- end
15
-
16
-
17
- #NOTE: When using newline_split() & left_margin() to manage test code strings,
18
- # white space to the left of newlines in otherwise blank lines is important.
19
- # That is, *every* line in a test code block must be spaced over.
20
-
21
-
22
- class GeneratorTestRunnerTest < Test::Unit::TestCase
23
-
24
- def setup
25
- objects = create_mocks(:configurator, :file_wrapper)
26
- @runner_utils = GeneratorTestRunner.new(objects)
27
- end
28
-
29
- def teardown
30
- end
31
-
32
-
33
- ######### find test cases #########
34
-
35
- should "find test case functions in preprocessed test file" do
36
- test_file = 'tests/test_me.c'
37
-
38
- test_me_c = %Q[
39
- #include "unity.h"
40
- #include "Oscar.h"
41
- #include "mock_abilly.h"
42
- #include "mock_and_roll.h "
43
-
44
- void test_some_stuff(void)
45
- {
46
- TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
47
- }
48
-
49
- void test_some_more_stuff ( void )
50
- {
51
- TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
52
- }
53
-
54
- void test_some_non_void_param_stuff()
55
- {
56
- TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
57
- }
58
-
59
- void
60
- test_some_multiline_test_case_action
61
- (void)
62
- {
63
- TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
64
- }
65
-
66
- ].left_margin(0)
67
-
68
- @configurator.expects.project_use_preprocessor.returns(true)
69
-
70
- @file_wrapper.expects.read(test_file).returns(test_me_c)
71
-
72
- assert_equal(
73
- ['test_some_stuff',
74
- 'test_some_more_stuff',
75
- 'test_some_non_void_param_stuff',
76
- 'test_some_multiline_test_case_action'
77
- ],
78
- @runner_utils.find_test_cases(test_file))
79
- end
80
-
81
- should "find test case functions in non-preprocessed test file (do some basic pre-processing with regex)" do
82
- test_file = 'tests/test_me.c'
83
-
84
- test_me_c = %Q[
85
- #include "unity.h"
86
- #include "Oscar.h"
87
- #include "mock_abilly.h"
88
- #include "mock_and_roll.h "
89
-
90
- #ifdef SOMETHING
91
- extern void test_a_thing_to_throw_off_scanning(void);
92
- #end
93
-
94
- //void test_some_stuff(void)
95
- //{
96
- // TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
97
- //}
98
-
99
- /*
100
- void test_some_more_stuff ( void )
101
- {
102
- TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
103
- }*/
104
-
105
- void test_some_non_void_param_stuff()
106
- {
107
- TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
108
- }
109
-
110
- void
111
- test_some_multiline_test_case_action
112
- (void)
113
- {
114
- TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
115
- }
116
-
117
- ].left_margin(0)
118
-
119
- @configurator.expects.project_use_preprocessor.returns(false)
120
-
121
- @file_wrapper.expects.read(test_file).returns(test_me_c)
122
-
123
- assert_equal(
124
- ['test_some_non_void_param_stuff',
125
- 'test_some_multiline_test_case_action'
126
- ],
127
- @runner_utils.find_test_cases(test_file))
128
- end
129
-
130
-
131
- ######### header block #########
132
-
133
- should "create header block of include statements and internal variables for exception handling, mocks, and strict ordering" do
134
- file = []
135
-
136
- expected_output = %Q[
137
- /* AUTOGENERATED FILE. DO NOT EDIT. */
138
- #include "unity.h"
139
- #include "extra_thing1.h"
140
- #include "extra_thing2.h"
141
- #include <setjmp.h>
142
- #include <stdio.h>
143
- #include "CException.h"
144
- #include "mock_abc.h"
145
- #include "mock_123.h"
146
-
147
- int GlobalExpectCount;
148
- int GlobalVerifyOrder;
149
- char* GlobalOrderError;
150
-
151
- char MessageBuffer[50];
152
- ].left_margin(0)
153
-
154
- @configurator.expects.test_runner_includes.returns(['extra_thing1.h', 'extra_thing2.h'])
155
- @configurator.expects.project_use_exceptions.returns(true)
156
- @configurator.expects.extension_header.returns('.h')
157
- @configurator.expects.cmock_enforce_strict_ordering.returns(true)
158
-
159
- @runner_utils.create_header(file, ['mock_abc', 'mock_123'])
160
-
161
- assert_equal(expected_output.newline_split[1..-1], file)
162
- end
163
-
164
- should "create header block of include statements and internal variables for exception handling & mocks but without strict ordering" do
165
- file = []
166
-
167
- expected_output = %Q[
168
- /* AUTOGENERATED FILE. DO NOT EDIT. */
169
- #include "unity.h"
170
- #include "extra_thing1.h"
171
- #include "extra_thing2.h"
172
- #include <setjmp.h>
173
- #include <stdio.h>
174
- #include "CException.h"
175
- #include "mock_abc.H"
176
- #include "mock_123.H"
177
-
178
- char MessageBuffer[50];
179
- ].left_margin(0)
180
-
181
- @configurator.expects.test_runner_includes.returns(['extra_thing1.h', 'extra_thing2.h'])
182
- @configurator.expects.project_use_exceptions.returns(true)
183
- @configurator.expects.extension_header.returns('.H')
184
- @configurator.expects.cmock_enforce_strict_ordering.returns(false)
185
-
186
- @runner_utils.create_header(file, ['mock_abc', 'mock_123'])
187
-
188
- assert_equal(expected_output.newline_split[1..-1], file)
189
- end
190
-
191
- should "create header block of include statements and internal variables for no extra header files, exception handling, or mocks" do
192
- file = []
193
-
194
- expected_output = %Q[
195
- /* AUTOGENERATED FILE. DO NOT EDIT. */
196
- #include "unity.h"
197
- #include <setjmp.h>
198
- #include <stdio.h>
199
-
200
- char MessageBuffer[50];
201
- ].left_margin(0)
202
-
203
- @configurator.expects.test_runner_includes.returns([])
204
- @configurator.expects.project_use_exceptions.returns(false)
205
-
206
- @runner_utils.create_header(file, [])
207
-
208
- assert_equal(expected_output.newline_split[1..-1], file)
209
- end
210
-
211
-
212
- ######### extern block #########
213
-
214
- should "create extern block of setup, teardown, and test cases" do
215
- file = []
216
-
217
- expected_output = %Q[
218
- extern void setUp(void);
219
- extern void tearDown(void);
220
-
221
- extern void test_case1(void);
222
- extern void test_case2(void);
223
- extern void test_case3(void);
224
- ].left_margin(0)
225
-
226
- @runner_utils.create_externs(file, ['test_case1', 'test_case2', 'test_case3'])
227
-
228
- assert_equal(expected_output.newline_split, file)
229
- end
230
-
231
-
232
- should "create extern block of setup, teardown, and no test cases" do
233
- file = []
234
-
235
- expected_output = %Q[
236
- extern void setUp(void);
237
- extern void tearDown(void);
238
- ].left_margin(0)
239
-
240
- @runner_utils.create_externs(file, [])
241
-
242
- assert_equal(expected_output.newline_split, file)
243
- end
244
-
245
-
246
- ######### mock management #########
247
-
248
- should "create mock management block for given mock list with strict ordering" do
249
- file = []
250
-
251
- expected_output = %Q[
252
- static void CMock_Init(void)
253
- {
254
- GlobalExpectCount = 0;
255
- GlobalVerifyOrder = 0;
256
- GlobalOrderError = NULL;
257
- mock_thinger_Init();
258
- mock_stinger_Init();
259
- mock_zinger_Init();
260
- }
261
-
262
- static void CMock_Verify(void)
263
- {
264
- mock_thinger_Verify();
265
- mock_stinger_Verify();
266
- mock_zinger_Verify();
267
- }
268
-
269
- static void CMock_Destroy(void)
270
- {
271
- mock_thinger_Destroy();
272
- mock_stinger_Destroy();
273
- mock_zinger_Destroy();
274
- }
275
-
276
- void CMock_VerifyAndReset(void)
277
- {
278
- CMock_Verify();
279
- CMock_Destroy();
280
- CMock_Init();
281
- }
282
- ].left_margin(0)
283
-
284
- @configurator.expects.extension_header.returns('.h')
285
- @configurator.expects.cmock_enforce_strict_ordering.returns(true)
286
-
287
- @runner_utils.create_mock_management(file, ['mock_thinger.h', 'mock_stinger.h', 'mock_zinger.h'])
288
-
289
- assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
290
- end
291
-
292
- should "create mock management block for given mock list without strict ordering" do
293
- file = []
294
-
295
- expected_output = %Q[
296
- static void CMock_Init(void)
297
- {
298
- mock_thinger_Init();
299
- mock_stinger_Init();
300
- mock_zinger_Init();
301
- }
302
-
303
- static void CMock_Verify(void)
304
- {
305
- mock_thinger_Verify();
306
- mock_stinger_Verify();
307
- mock_zinger_Verify();
308
- }
309
-
310
- static void CMock_Destroy(void)
311
- {
312
- mock_thinger_Destroy();
313
- mock_stinger_Destroy();
314
- mock_zinger_Destroy();
315
- }
316
-
317
- void CMock_VerifyAndReset(void)
318
- {
319
- CMock_Verify();
320
- CMock_Destroy();
321
- CMock_Init();
322
- }
323
- ].left_margin(0)
324
-
325
- @configurator.expects.extension_header.returns('.h')
326
- @configurator.expects.cmock_enforce_strict_ordering.returns(false)
327
-
328
- @runner_utils.create_mock_management(file, ['mock_thinger.h', 'mock_stinger.h', 'mock_zinger.h'])
329
-
330
- assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
331
- end
332
-
333
- should "create empty mock management block for empty mock list" do
334
- file = []
335
-
336
- @runner_utils.create_mock_management(file, [])
337
-
338
- assert_equal([], file)
339
- end
340
-
341
-
342
- ######### runTest() #########
343
-
344
- should "create no runTest function if there's no test cases (to prevent unused function compilation warnings)" do
345
- file = []
346
- @runner_utils.create_runtest(file, [], [])
347
- assert_equal([], file)
348
- end
349
-
350
- should "create runTest function including mock and exception handling" do
351
- file = []
352
-
353
- expected_output = %Q[
354
- static void runTest(UnityTestFunction test)
355
- {
356
- if (TEST_PROTECT())
357
- {
358
- CEXCEPTION_T e;
359
- Try {
360
- CMock_Init();
361
- setUp();
362
- test();
363
- CMock_Verify();
364
- } Catch(e) { TEST_FAIL("Unhandled Exception!"); }
365
- }
366
- CMock_Destroy();
367
- if (TEST_PROTECT())
368
- {
369
- tearDown();
370
- }
371
- }
372
- ].left_margin(0)
373
-
374
- @configurator.expects.project_use_exceptions.returns(true)
375
-
376
- @runner_utils.create_runtest(file, ['mock_zinger.h'], ['test_icle.c', 'test_ing.c'])
377
- assert_equal(expected_output.newline_split, file)
378
- end
379
-
380
- should "create runTest function including mock handling but no exception handling" do
381
- file = []
382
-
383
- expected_output = %Q[
384
- static void runTest(UnityTestFunction test)
385
- {
386
- if (TEST_PROTECT())
387
- {
388
- CMock_Init();
389
- setUp();
390
- test();
391
- CMock_Verify();
392
- }
393
- CMock_Destroy();
394
- if (TEST_PROTECT())
395
- {
396
- tearDown();
397
- }
398
- }
399
- ].left_margin(0)
400
-
401
- @configurator.expects.project_use_exceptions.returns(false)
402
-
403
- @runner_utils.create_runtest(file, ['mock_zinger.h'], ['test_icle.c', 'test_ing.c'])
404
- assert_equal(expected_output.newline_split, file)
405
- end
406
-
407
- should "create runTest function including no mock handling but including exception handling" do
408
- file = []
409
-
410
- expected_output = %Q[
411
- static void runTest(UnityTestFunction test)
412
- {
413
- if (TEST_PROTECT())
414
- {
415
- CEXCEPTION_T e;
416
- Try {
417
- setUp();
418
- test();
419
- } Catch(e) { TEST_FAIL("Unhandled Exception!"); }
420
- }
421
- if (TEST_PROTECT())
422
- {
423
- tearDown();
424
- }
425
- }
426
- ].left_margin(0)
427
-
428
- @configurator.expects.project_use_exceptions.returns(true)
429
-
430
- @runner_utils.create_runtest(file, [], ['test_icle.c', 'test_ing.c'])
431
- assert_equal(expected_output.newline_split, file)
432
- end
433
-
434
- ######### main() #########
435
-
436
- should "create main function with test cases" do
437
- file = []
438
-
439
- expected_output = %Q[
440
- int main(void)
441
- {
442
- UnityBegin("TestMe.c");
443
-
444
- // RUN_TEST calls runTest
445
- RUN_TEST(test_a_little_test);
446
- RUN_TEST(test_a_wee_test);
447
- RUN_TEST(test_a_teeny_test);
448
-
449
- UnityEnd();
450
- return 0;
451
- }
452
- ].left_margin(0)
453
-
454
- @runner_utils.create_main(file, 'TestMe.c', ['test_a_little_test', 'test_a_wee_test', 'test_a_teeny_test'])
455
- assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
456
- end
457
-
458
- should "create main function with no test cases" do
459
- file = []
460
-
461
- expected_output = %Q[
462
- int main(void)
463
- {
464
- UnityBegin("TestIfy.c");
465
-
466
- UnityEnd();
467
- return 0;
468
- }
469
- ].left_margin(0)
470
-
471
- @runner_utils.create_main(file, 'TestIfy.c', [])
472
- assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
473
- end
474
-
475
- end
1
+ require File.dirname(__FILE__) + '/../unit_test_helper'
2
+ require 'ceedling/generator_test_runner'
3
+
4
+
5
+ # redefine split for convenience of file content comparison in tests.
6
+ # this is needed because we're using the '<<' operator on real files in source but substituting
7
+ # an array for file writes in the tests; the '<<' operator tacks on new lines when used with a file,
8
+ # but, of course, does not do this when inserting into an array.
9
+ class String
10
+ def newline_split(pattern=/\n/, limit=nil)
11
+ return (split(pattern, limit)).map{|elem| elem + "\n"} if !limit.nil?
12
+ return (split(pattern) ).map{|elem| elem + "\n"}
13
+ end
14
+ end
15
+
16
+
17
+ #NOTE: When using newline_split() & left_margin() to manage test code strings,
18
+ # white space to the left of newlines in otherwise blank lines is important.
19
+ # That is, *every* line in a test code block must be spaced over.
20
+
21
+
22
+ class GeneratorTestRunnerTest < Test::Unit::TestCase
23
+
24
+ def setup
25
+ objects = create_mocks(:configurator, :file_wrapper)
26
+ @runner_utils = GeneratorTestRunner.new(objects)
27
+ end
28
+
29
+ def teardown
30
+ end
31
+
32
+
33
+ ######### find test cases #########
34
+
35
+ should "find test case functions in preprocessed test file" do
36
+ test_file = 'tests/test_me.c'
37
+
38
+ test_me_c = %Q[
39
+ #include "unity.h"
40
+ #include "Oscar.h"
41
+ #include "mock_abilly.h"
42
+ #include "mock_and_roll.h "
43
+
44
+ void test_some_stuff(void)
45
+ {
46
+ TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
47
+ }
48
+
49
+ void test_some_more_stuff ( void )
50
+ {
51
+ TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
52
+ }
53
+
54
+ void test_some_non_void_param_stuff()
55
+ {
56
+ TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
57
+ }
58
+
59
+ void
60
+ test_some_multiline_test_case_action
61
+ (void)
62
+ {
63
+ TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
64
+ }
65
+
66
+ ].left_margin(0)
67
+
68
+ @configurator.expects.project_use_preprocessor.returns(true)
69
+
70
+ @file_wrapper.expects.read(test_file).returns(test_me_c)
71
+
72
+ assert_equal(
73
+ ['test_some_stuff',
74
+ 'test_some_more_stuff',
75
+ 'test_some_non_void_param_stuff',
76
+ 'test_some_multiline_test_case_action'
77
+ ],
78
+ @runner_utils.find_test_cases(test_file))
79
+ end
80
+
81
+ should "find test case functions in non-preprocessed test file (do some basic pre-processing with regex)" do
82
+ test_file = 'tests/test_me.c'
83
+
84
+ test_me_c = %Q[
85
+ #include "unity.h"
86
+ #include "Oscar.h"
87
+ #include "mock_abilly.h"
88
+ #include "mock_and_roll.h "
89
+
90
+ #ifdef SOMETHING
91
+ extern void test_a_thing_to_throw_off_scanning(void);
92
+ #end
93
+
94
+ //void test_some_stuff(void)
95
+ //{
96
+ // TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
97
+ //}
98
+
99
+ /*
100
+ void test_some_more_stuff ( void )
101
+ {
102
+ TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
103
+ }*/
104
+
105
+ void test_some_non_void_param_stuff()
106
+ {
107
+ TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
108
+ }
109
+
110
+ void
111
+ test_some_multiline_test_case_action
112
+ (void)
113
+ {
114
+ TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
115
+ }
116
+
117
+ ].left_margin(0)
118
+
119
+ @configurator.expects.project_use_preprocessor.returns(false)
120
+
121
+ @file_wrapper.expects.read(test_file).returns(test_me_c)
122
+
123
+ assert_equal(
124
+ ['test_some_non_void_param_stuff',
125
+ 'test_some_multiline_test_case_action'
126
+ ],
127
+ @runner_utils.find_test_cases(test_file))
128
+ end
129
+
130
+
131
+ ######### header block #########
132
+
133
+ should "create header block of include statements and internal variables for exception handling, mocks, and strict ordering" do
134
+ file = []
135
+
136
+ expected_output = %Q[
137
+ /* AUTOGENERATED FILE. DO NOT EDIT. */
138
+ #include "unity.h"
139
+ #include "extra_thing1.h"
140
+ #include "extra_thing2.h"
141
+ #include <setjmp.h>
142
+ #include <stdio.h>
143
+ #include "CException.h"
144
+ #include "mock_abc.h"
145
+ #include "mock_123.h"
146
+
147
+ int GlobalExpectCount;
148
+ int GlobalVerifyOrder;
149
+ char* GlobalOrderError;
150
+
151
+ char MessageBuffer[50];
152
+ ].left_margin(0)
153
+
154
+ @configurator.expects.test_runner_includes.returns(['extra_thing1.h', 'extra_thing2.h'])
155
+ @configurator.expects.project_use_exceptions.returns(true)
156
+ @configurator.expects.extension_header.returns('.h')
157
+ @configurator.expects.cmock_enforce_strict_ordering.returns(true)
158
+
159
+ @runner_utils.create_header(file, ['mock_abc', 'mock_123'])
160
+
161
+ assert_equal(expected_output.newline_split[1..-1], file)
162
+ end
163
+
164
+ should "create header block of include statements and internal variables for exception handling & mocks but without strict ordering" do
165
+ file = []
166
+
167
+ expected_output = %Q[
168
+ /* AUTOGENERATED FILE. DO NOT EDIT. */
169
+ #include "unity.h"
170
+ #include "extra_thing1.h"
171
+ #include "extra_thing2.h"
172
+ #include <setjmp.h>
173
+ #include <stdio.h>
174
+ #include "CException.h"
175
+ #include "mock_abc.H"
176
+ #include "mock_123.H"
177
+
178
+ char MessageBuffer[50];
179
+ ].left_margin(0)
180
+
181
+ @configurator.expects.test_runner_includes.returns(['extra_thing1.h', 'extra_thing2.h'])
182
+ @configurator.expects.project_use_exceptions.returns(true)
183
+ @configurator.expects.extension_header.returns('.H')
184
+ @configurator.expects.cmock_enforce_strict_ordering.returns(false)
185
+
186
+ @runner_utils.create_header(file, ['mock_abc', 'mock_123'])
187
+
188
+ assert_equal(expected_output.newline_split[1..-1], file)
189
+ end
190
+
191
+ should "create header block of include statements and internal variables for no extra header files, exception handling, or mocks" do
192
+ file = []
193
+
194
+ expected_output = %Q[
195
+ /* AUTOGENERATED FILE. DO NOT EDIT. */
196
+ #include "unity.h"
197
+ #include <setjmp.h>
198
+ #include <stdio.h>
199
+
200
+ char MessageBuffer[50];
201
+ ].left_margin(0)
202
+
203
+ @configurator.expects.test_runner_includes.returns([])
204
+ @configurator.expects.project_use_exceptions.returns(false)
205
+
206
+ @runner_utils.create_header(file, [])
207
+
208
+ assert_equal(expected_output.newline_split[1..-1], file)
209
+ end
210
+
211
+
212
+ ######### extern block #########
213
+
214
+ should "create extern block of setup, teardown, and test cases" do
215
+ file = []
216
+
217
+ expected_output = %Q[
218
+ extern void setUp(void);
219
+ extern void tearDown(void);
220
+
221
+ extern void test_case1(void);
222
+ extern void test_case2(void);
223
+ extern void test_case3(void);
224
+ ].left_margin(0)
225
+
226
+ @runner_utils.create_externs(file, ['test_case1', 'test_case2', 'test_case3'])
227
+
228
+ assert_equal(expected_output.newline_split, file)
229
+ end
230
+
231
+
232
+ should "create extern block of setup, teardown, and no test cases" do
233
+ file = []
234
+
235
+ expected_output = %Q[
236
+ extern void setUp(void);
237
+ extern void tearDown(void);
238
+ ].left_margin(0)
239
+
240
+ @runner_utils.create_externs(file, [])
241
+
242
+ assert_equal(expected_output.newline_split, file)
243
+ end
244
+
245
+
246
+ ######### mock management #########
247
+
248
+ should "create mock management block for given mock list with strict ordering" do
249
+ file = []
250
+
251
+ expected_output = %Q[
252
+ static void CMock_Init(void)
253
+ {
254
+ GlobalExpectCount = 0;
255
+ GlobalVerifyOrder = 0;
256
+ GlobalOrderError = NULL;
257
+ mock_thinger_Init();
258
+ mock_stinger_Init();
259
+ mock_zinger_Init();
260
+ }
261
+
262
+ static void CMock_Verify(void)
263
+ {
264
+ mock_thinger_Verify();
265
+ mock_stinger_Verify();
266
+ mock_zinger_Verify();
267
+ }
268
+
269
+ static void CMock_Destroy(void)
270
+ {
271
+ mock_thinger_Destroy();
272
+ mock_stinger_Destroy();
273
+ mock_zinger_Destroy();
274
+ }
275
+
276
+ void CMock_VerifyAndReset(void)
277
+ {
278
+ CMock_Verify();
279
+ CMock_Destroy();
280
+ CMock_Init();
281
+ }
282
+ ].left_margin(0)
283
+
284
+ @configurator.expects.extension_header.returns('.h')
285
+ @configurator.expects.cmock_enforce_strict_ordering.returns(true)
286
+
287
+ @runner_utils.create_mock_management(file, ['mock_thinger.h', 'mock_stinger.h', 'mock_zinger.h'])
288
+
289
+ assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
290
+ end
291
+
292
+ should "create mock management block for given mock list without strict ordering" do
293
+ file = []
294
+
295
+ expected_output = %Q[
296
+ static void CMock_Init(void)
297
+ {
298
+ mock_thinger_Init();
299
+ mock_stinger_Init();
300
+ mock_zinger_Init();
301
+ }
302
+
303
+ static void CMock_Verify(void)
304
+ {
305
+ mock_thinger_Verify();
306
+ mock_stinger_Verify();
307
+ mock_zinger_Verify();
308
+ }
309
+
310
+ static void CMock_Destroy(void)
311
+ {
312
+ mock_thinger_Destroy();
313
+ mock_stinger_Destroy();
314
+ mock_zinger_Destroy();
315
+ }
316
+
317
+ void CMock_VerifyAndReset(void)
318
+ {
319
+ CMock_Verify();
320
+ CMock_Destroy();
321
+ CMock_Init();
322
+ }
323
+ ].left_margin(0)
324
+
325
+ @configurator.expects.extension_header.returns('.h')
326
+ @configurator.expects.cmock_enforce_strict_ordering.returns(false)
327
+
328
+ @runner_utils.create_mock_management(file, ['mock_thinger.h', 'mock_stinger.h', 'mock_zinger.h'])
329
+
330
+ assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
331
+ end
332
+
333
+ should "create empty mock management block for empty mock list" do
334
+ file = []
335
+
336
+ @runner_utils.create_mock_management(file, [])
337
+
338
+ assert_equal([], file)
339
+ end
340
+
341
+
342
+ ######### runTest() #########
343
+
344
+ should "create no runTest function if there's no test cases (to prevent unused function compilation warnings)" do
345
+ file = []
346
+ @runner_utils.create_runtest(file, [], [])
347
+ assert_equal([], file)
348
+ end
349
+
350
+ should "create runTest function including mock and exception handling" do
351
+ file = []
352
+
353
+ expected_output = %Q[
354
+ static void runTest(UnityTestFunction test)
355
+ {
356
+ if (TEST_PROTECT())
357
+ {
358
+ CEXCEPTION_T e;
359
+ Try {
360
+ CMock_Init();
361
+ setUp();
362
+ test();
363
+ CMock_Verify();
364
+ } Catch(e) { TEST_FAIL("Unhandled Exception!"); }
365
+ }
366
+ CMock_Destroy();
367
+ if (TEST_PROTECT())
368
+ {
369
+ tearDown();
370
+ }
371
+ }
372
+ ].left_margin(0)
373
+
374
+ @configurator.expects.project_use_exceptions.returns(true)
375
+
376
+ @runner_utils.create_runtest(file, ['mock_zinger.h'], ['test_icle.c', 'test_ing.c'])
377
+ assert_equal(expected_output.newline_split, file)
378
+ end
379
+
380
+ should "create runTest function including mock handling but no exception handling" do
381
+ file = []
382
+
383
+ expected_output = %Q[
384
+ static void runTest(UnityTestFunction test)
385
+ {
386
+ if (TEST_PROTECT())
387
+ {
388
+ CMock_Init();
389
+ setUp();
390
+ test();
391
+ CMock_Verify();
392
+ }
393
+ CMock_Destroy();
394
+ if (TEST_PROTECT())
395
+ {
396
+ tearDown();
397
+ }
398
+ }
399
+ ].left_margin(0)
400
+
401
+ @configurator.expects.project_use_exceptions.returns(false)
402
+
403
+ @runner_utils.create_runtest(file, ['mock_zinger.h'], ['test_icle.c', 'test_ing.c'])
404
+ assert_equal(expected_output.newline_split, file)
405
+ end
406
+
407
+ should "create runTest function including no mock handling but including exception handling" do
408
+ file = []
409
+
410
+ expected_output = %Q[
411
+ static void runTest(UnityTestFunction test)
412
+ {
413
+ if (TEST_PROTECT())
414
+ {
415
+ CEXCEPTION_T e;
416
+ Try {
417
+ setUp();
418
+ test();
419
+ } Catch(e) { TEST_FAIL("Unhandled Exception!"); }
420
+ }
421
+ if (TEST_PROTECT())
422
+ {
423
+ tearDown();
424
+ }
425
+ }
426
+ ].left_margin(0)
427
+
428
+ @configurator.expects.project_use_exceptions.returns(true)
429
+
430
+ @runner_utils.create_runtest(file, [], ['test_icle.c', 'test_ing.c'])
431
+ assert_equal(expected_output.newline_split, file)
432
+ end
433
+
434
+ ######### main() #########
435
+
436
+ should "create main function with test cases" do
437
+ file = []
438
+
439
+ expected_output = %Q[
440
+ int main(void)
441
+ {
442
+ UnityBegin("TestMe.c");
443
+
444
+ // RUN_TEST calls runTest
445
+ RUN_TEST(test_a_little_test);
446
+ RUN_TEST(test_a_wee_test);
447
+ RUN_TEST(test_a_teeny_test);
448
+
449
+ UnityEnd();
450
+ return 0;
451
+ }
452
+ ].left_margin(0)
453
+
454
+ @runner_utils.create_main(file, 'TestMe.c', ['test_a_little_test', 'test_a_wee_test', 'test_a_teeny_test'])
455
+ assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
456
+ end
457
+
458
+ should "create main function with no test cases" do
459
+ file = []
460
+
461
+ expected_output = %Q[
462
+ int main(void)
463
+ {
464
+ UnityBegin("TestIfy.c");
465
+
466
+ UnityEnd();
467
+ return 0;
468
+ }
469
+ ].left_margin(0)
470
+
471
+ @runner_utils.create_main(file, 'TestIfy.c', [])
472
+ assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
473
+ end
474
+
475
+ end