ceedling 0.19.0 → 0.20.2

Sign up to get free protection for your applications and to get access to all the features.
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