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,268 +1,268 @@
1
- require File.dirname(__FILE__) + '/../integration_test_helper'
2
- require 'rubygems'
3
- require 'rake'
4
-
5
-
6
- class RakeRulesTest < Test::Unit::TestCase
7
-
8
- def setup
9
- rake_setup('rakefile_rules.rb', :file_finder, :file_path_utils, :generator)
10
- end
11
-
12
- def teardown
13
- Rake.application = nil
14
- end
15
-
16
-
17
- ######################################
18
- ####### Test Runner Generation #######
19
- ######################################
20
-
21
- should "recognize missing test runner files, find their source, and execute rake tasks from the rule for test runner generation" do
22
- # default values as set in test_helper
23
- redefine_global_constant('PROJECT_TEST_FILE_PREFIX', 'test_')
24
- redefine_global_constant('TEST_RUNNER_FILE_SUFFIX', '_runner')
25
- redefine_global_constant('EXTENSION_SOURCE', '.c')
26
-
27
- # reload rakefile with new global constants
28
- setup()
29
-
30
- runner_src1 = 'tests/a/test_thing.c'
31
- runner_src2 = 'tests/b/test_another_thing.c'
32
- runner_src3 = 'tests/b/test_and_another_thing.c'
33
- runner1 = 'build/tests/runners/test_thing_runner.c'
34
- runner2 = 'test_another_thing_runner.c'
35
- runner3 = 'runners/test_another_thing_runner.c'
36
-
37
- # fake out rake so it won't look for the test files on disk and find they don't exist.
38
- # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
39
- @rake.define_task(Rake::FileTask, runner_src1)
40
- @rake.define_task(Rake::FileTask, runner_src2)
41
- @rake.define_task(Rake::FileTask, runner_src3)
42
-
43
- # set up expectations
44
- @file_finder.expects.find_test_from_runner_path(runner1).returns(runner_src1)
45
- @generator.expects.generate_test_runner(runner_src1, runner1)
46
- @file_finder.expects.find_test_from_runner_path(runner2).returns(runner_src2)
47
- @generator.expects.generate_test_runner(runner_src2, runner2)
48
- @file_finder.expects.find_test_from_runner_path(runner3).returns(runner_src3)
49
- @generator.expects.generate_test_runner(runner_src3, runner3)
50
-
51
- # invoke the test runner creation rule under test
52
- @rake[runner1].invoke
53
- @rake[runner2].invoke
54
- @rake[runner3].invoke
55
- end
56
-
57
- should "handle alternate prefixes, suffixes, and source extensions for test runner generation rule" do
58
- redefine_global_constant('PROJECT_TEST_FILE_PREFIX', 'Test')
59
- redefine_global_constant('TEST_RUNNER_FILE_SUFFIX', 'Runner')
60
- redefine_global_constant('EXTENSION_SOURCE', '.x')
61
-
62
- # reload rakefile with new global constants
63
- setup()
64
-
65
- runner_src1 = 'files/tests/TestOneTwoThree.x'
66
- runner1 = 'build/runners/TestOneTwoThreeRunner.x'
67
-
68
- # fake out rake so it won't look for the test files on disk and find they don't exist.
69
- # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
70
- @rake.define_task(Rake::FileTask, runner_src1)
71
-
72
- # set up expectations
73
- @file_finder.expects.find_test_from_runner_path(runner1).returns(runner_src1)
74
- @generator.expects.generate_test_runner(runner_src1, runner1)
75
-
76
- # invoke the test runner creation rule under test
77
- @rake[runner1].invoke
78
- end
79
-
80
- ##################################################
81
- ####### Compilation Object File Generation #######
82
- ##################################################
83
-
84
- should "recognize missing object files, find their source, and execute rake tasks from the rule for object file generation" do
85
- # default values as set in test_helper
86
- redefine_global_constant('PROJECT_TEST_BUILD_OUTPUT_PATH', 'project/build/tests/output')
87
- redefine_global_constant('EXTENSION_OBJECT', '.o')
88
-
89
- # reload rakefile with new global constants
90
- setup()
91
-
92
- object_src1 = 'tests/a/test_thing.c'
93
- object_src2 = 'tests/b/test_another_thing.c'
94
- object_src3 = 'tests/b/test_and_another_thing.c'
95
- object1 = 'project/build/tests/output/test_thing.o'
96
- object2 = 'project/build/tests/output/test_another_thing_runner.o'
97
- object3 = 'project/build/tests/output/test_and_another_thing.o'
98
-
99
- # fake out rake so it won't look for the test files on disk and find they don't exist.
100
- # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
101
- @rake.define_task(Rake::FileTask, object_src1)
102
- @rake.define_task(Rake::FileTask, object_src2)
103
- @rake.define_task(Rake::FileTask, object_src3)
104
-
105
- # set up expectations
106
- @file_finder.expects.find_compilation_input_file(object1).returns(object_src1)
107
- @generator.expects.generate_object_file(object_src1, object1)
108
- @file_finder.expects.find_compilation_input_file(object2).returns(object_src2)
109
- @generator.expects.generate_object_file(object_src2, object2)
110
- @file_finder.expects.find_compilation_input_file(object3).returns(object_src3)
111
- @generator.expects.generate_object_file(object_src3, object3)
112
-
113
- # invoke the test object creation rule under test
114
- @rake[object1].invoke
115
- @rake[object2].invoke
116
- @rake[object3].invoke
117
- end
118
-
119
- should "handle alternate build file paths and object file extensions for object generation rule" do
120
- redefine_global_constant('PROJECT_TEST_BUILD_OUTPUT_PATH', 'build/stuff/out')
121
- redefine_global_constant('EXTENSION_OBJECT', '.obj')
122
-
123
- # reload rakefile with new global constants
124
- setup()
125
-
126
- object_src1 = 'tests/a/test_thing.c'
127
- object1 = 'build/stuff/out/test_thing.obj'
128
-
129
- # fake out rake so it won't look for the test files on disk and find they don't exist.
130
- # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
131
- @rake.define_task(Rake::FileTask, object_src1)
132
-
133
- # set up expectations
134
- @file_finder.expects.find_compilation_input_file(object1).returns(object_src1)
135
- @generator.expects.generate_object_file(object_src1, object1)
136
-
137
- # invoke the test runner creation rule under test
138
- @rake[object1].invoke
139
- end
140
-
141
- ##########################################
142
- ####### Executable File Generation #######
143
- ##########################################
144
-
145
- should "recognize missing executable files, find their object files, and execute rake tasks from the rule for executable generation" do
146
- # default values as set in test_helper
147
- redefine_global_constant('PROJECT_TEST_BUILD_OUTPUT_PATH', 'project/build/tests/output')
148
- redefine_global_constant('EXTENSION_EXECUTABLE', '.out')
149
-
150
- # reload rakefile with new global constants
151
- setup()
152
-
153
- executable_prereqs1 = ['project/build/tests/output/unity.o', 'project/build/tests/output/mock_stuff.o', 'project/build/tests/output/thing.o']
154
- executable_prereqs2 = ['project/build/tests/output/able.o', 'project/build/tests/output/unity.o']
155
- executable1 = 'project/build/tests/output/test_thing.out'
156
- executable2 = 'project/build/tests/output/test_able.out'
157
-
158
- # fake out rake so it won't look for the test files on disk and find they don't exist.
159
- # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
160
- @rake.define_task(Rake::FileTask, executable_prereqs1[0])
161
- @rake.define_task(Rake::FileTask, executable_prereqs1[1])
162
- @rake.define_task(Rake::FileTask, executable_prereqs1[2])
163
- @rake.define_task(Rake::FileTask, executable_prereqs2[0])
164
- @rake.define_task(Rake::FileTask, executable_prereqs2[1])
165
-
166
- task = @rake.define_task(Rake::FileTask, executable1)
167
- task.enhance(executable_prereqs1)
168
- task = @rake.define_task(Rake::FileTask, executable2)
169
- task.enhance(executable_prereqs2)
170
-
171
- # set up expectations
172
- @generator.expects.generate_executable_file(executable_prereqs1, executable1)
173
- @generator.expects.generate_executable_file(executable_prereqs2, executable2)
174
-
175
- # invoke the test object creation rule under test
176
- @rake[executable1].invoke
177
- @rake[executable2].invoke
178
- end
179
-
180
- should "handle alternate build file paths and executable extensions for executable generation rule" do
181
- # default values as set in test_helper
182
- redefine_global_constant('PROJECT_TEST_BUILD_OUTPUT_PATH', 'build/dump')
183
- redefine_global_constant('EXTENSION_EXECUTABLE', '.exe')
184
-
185
- # reload rakefile with new global constants
186
- setup()
187
-
188
- executable_prereqs1 = ['project/build/tests/output/able.o', 'project/build/tests/output/unity.o']
189
- executable1 = 'build/dump/test_able.exe'
190
-
191
- # fake out rake so it won't look for the test files on disk and find they don't exist.
192
- # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
193
- @rake.define_task(Rake::FileTask, executable_prereqs1[0])
194
- @rake.define_task(Rake::FileTask, executable_prereqs1[1])
195
-
196
- task = @rake.define_task(Rake::FileTask, executable1)
197
- task.enhance(executable_prereqs1)
198
-
199
- # set up expectations
200
- @generator.expects.generate_executable_file(executable_prereqs1, executable1)
201
-
202
- # invoke the test object creation rule under test
203
- @rake[executable1].invoke
204
- end
205
-
206
- ###############################################################
207
- ####### Test Pass File Generation (i.e. execute a test) #######
208
- ###############################################################
209
-
210
- should "recognize missing test pass files, find the test executable, and execute rake tasks from the rule for test result generation" do
211
- # default values as set in test_helper
212
- redefine_global_constant('PROJECT_TEST_RESULTS_PATH', 'project/build/tests/results')
213
- redefine_global_constant('EXTENSION_TESTPASS', '.pass')
214
-
215
- # reload rakefile with new global constants
216
- setup()
217
-
218
- pass_results_src1 = 'project/build/tests/output/test_thing.exe'
219
- pass_results_src2 = 'project/build/tests/output/test_another_thing.exe'
220
- pass_results_src3 = 'project/build/tests/output/test_and_another_thing.exe'
221
- pass_results1 = 'project/build/tests/results/test_thing.pass'
222
- pass_results2 = 'project/build/tests/results/test_another_thing_runner.pass'
223
- pass_results3 = 'project/build/tests/results/test_and_another_thing.pass'
224
-
225
- # fake out rake so it won't look for the test files on disk and find they don't exist.
226
- # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
227
- @rake.define_task(Rake::FileTask, pass_results_src1)
228
- @rake.define_task(Rake::FileTask, pass_results_src2)
229
- @rake.define_task(Rake::FileTask, pass_results_src3)
230
-
231
- # set up expectations
232
- @file_path_utils.expects.form_executable_filepath(pass_results1).returns(pass_results_src1)
233
- @generator.expects.generate_test_results(pass_results_src1, pass_results1)
234
- @file_path_utils.expects.form_executable_filepath(pass_results2).returns(pass_results_src2)
235
- @generator.expects.generate_test_results(pass_results_src2, pass_results2)
236
- @file_path_utils.expects.form_executable_filepath(pass_results3).returns(pass_results_src3)
237
- @generator.expects.generate_test_results(pass_results_src3, pass_results3)
238
-
239
- # invoke the test pass results creation rule under test
240
- @rake[pass_results1].invoke
241
- @rake[pass_results2].invoke
242
- @rake[pass_results3].invoke
243
- end
244
-
245
- should "handle alternate test results file paths and test pass file extensions for test results generation rule" do
246
- # default values as set in test_helper
247
- redefine_global_constant('PROJECT_TEST_RESULTS_PATH', 'project/test_run')
248
- redefine_global_constant('EXTENSION_TESTPASS', '.testpass')
249
-
250
- # reload rakefile with new global constants
251
- setup()
252
-
253
- pass_results_src1 = 'project/build/tests/output/test_thing.exe'
254
- pass_results1 = 'project/test_run/test_thing.testpass'
255
-
256
- # fake out rake so it won't look for the test files on disk and find they don't exist.
257
- # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
258
- @rake.define_task(Rake::FileTask, pass_results_src1)
259
-
260
- # set up expectations
261
- @file_path_utils.expects.form_executable_filepath(pass_results1).returns(pass_results_src1)
262
- @generator.expects.generate_test_results(pass_results_src1, pass_results1)
263
-
264
- # invoke the test pass results creation rule under test
265
- @rake[pass_results1].invoke
266
- end
267
-
268
- end
1
+ require File.dirname(__FILE__) + '/../integration_test_helper'
2
+ require 'rubygems'
3
+ require 'rake'
4
+
5
+
6
+ class RakeRulesTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ rake_setup('rakefile_rules.rb', :file_finder, :file_path_utils, :generator)
10
+ end
11
+
12
+ def teardown
13
+ Rake.application = nil
14
+ end
15
+
16
+
17
+ ######################################
18
+ ####### Test Runner Generation #######
19
+ ######################################
20
+
21
+ should "recognize missing test runner files, find their source, and execute rake tasks from the rule for test runner generation" do
22
+ # default values as set in test_helper
23
+ redefine_global_constant('PROJECT_TEST_FILE_PREFIX', 'test_')
24
+ redefine_global_constant('TEST_RUNNER_FILE_SUFFIX', '_runner')
25
+ redefine_global_constant('EXTENSION_SOURCE', '.c')
26
+
27
+ # reload rakefile with new global constants
28
+ setup()
29
+
30
+ runner_src1 = 'tests/a/test_thing.c'
31
+ runner_src2 = 'tests/b/test_another_thing.c'
32
+ runner_src3 = 'tests/b/test_and_another_thing.c'
33
+ runner1 = 'build/tests/runners/test_thing_runner.c'
34
+ runner2 = 'test_another_thing_runner.c'
35
+ runner3 = 'runners/test_another_thing_runner.c'
36
+
37
+ # fake out rake so it won't look for the test files on disk and find they don't exist.
38
+ # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
39
+ @rake.define_task(Rake::FileTask, runner_src1)
40
+ @rake.define_task(Rake::FileTask, runner_src2)
41
+ @rake.define_task(Rake::FileTask, runner_src3)
42
+
43
+ # set up expectations
44
+ @file_finder.expects.find_test_from_runner_path(runner1).returns(runner_src1)
45
+ @generator.expects.generate_test_runner(runner_src1, runner1)
46
+ @file_finder.expects.find_test_from_runner_path(runner2).returns(runner_src2)
47
+ @generator.expects.generate_test_runner(runner_src2, runner2)
48
+ @file_finder.expects.find_test_from_runner_path(runner3).returns(runner_src3)
49
+ @generator.expects.generate_test_runner(runner_src3, runner3)
50
+
51
+ # invoke the test runner creation rule under test
52
+ @rake[runner1].invoke
53
+ @rake[runner2].invoke
54
+ @rake[runner3].invoke
55
+ end
56
+
57
+ should "handle alternate prefixes, suffixes, and source extensions for test runner generation rule" do
58
+ redefine_global_constant('PROJECT_TEST_FILE_PREFIX', 'Test')
59
+ redefine_global_constant('TEST_RUNNER_FILE_SUFFIX', 'Runner')
60
+ redefine_global_constant('EXTENSION_SOURCE', '.x')
61
+
62
+ # reload rakefile with new global constants
63
+ setup()
64
+
65
+ runner_src1 = 'files/tests/TestOneTwoThree.x'
66
+ runner1 = 'build/runners/TestOneTwoThreeRunner.x'
67
+
68
+ # fake out rake so it won't look for the test files on disk and find they don't exist.
69
+ # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
70
+ @rake.define_task(Rake::FileTask, runner_src1)
71
+
72
+ # set up expectations
73
+ @file_finder.expects.find_test_from_runner_path(runner1).returns(runner_src1)
74
+ @generator.expects.generate_test_runner(runner_src1, runner1)
75
+
76
+ # invoke the test runner creation rule under test
77
+ @rake[runner1].invoke
78
+ end
79
+
80
+ ##################################################
81
+ ####### Compilation Object File Generation #######
82
+ ##################################################
83
+
84
+ should "recognize missing object files, find their source, and execute rake tasks from the rule for object file generation" do
85
+ # default values as set in test_helper
86
+ redefine_global_constant('PROJECT_TEST_BUILD_OUTPUT_PATH', 'project/build/tests/output')
87
+ redefine_global_constant('EXTENSION_OBJECT', '.o')
88
+
89
+ # reload rakefile with new global constants
90
+ setup()
91
+
92
+ object_src1 = 'tests/a/test_thing.c'
93
+ object_src2 = 'tests/b/test_another_thing.c'
94
+ object_src3 = 'tests/b/test_and_another_thing.c'
95
+ object1 = 'project/build/tests/output/test_thing.o'
96
+ object2 = 'project/build/tests/output/test_another_thing_runner.o'
97
+ object3 = 'project/build/tests/output/test_and_another_thing.o'
98
+
99
+ # fake out rake so it won't look for the test files on disk and find they don't exist.
100
+ # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
101
+ @rake.define_task(Rake::FileTask, object_src1)
102
+ @rake.define_task(Rake::FileTask, object_src2)
103
+ @rake.define_task(Rake::FileTask, object_src3)
104
+
105
+ # set up expectations
106
+ @file_finder.expects.find_compilation_input_file(object1).returns(object_src1)
107
+ @generator.expects.generate_object_file(object_src1, object1)
108
+ @file_finder.expects.find_compilation_input_file(object2).returns(object_src2)
109
+ @generator.expects.generate_object_file(object_src2, object2)
110
+ @file_finder.expects.find_compilation_input_file(object3).returns(object_src3)
111
+ @generator.expects.generate_object_file(object_src3, object3)
112
+
113
+ # invoke the test object creation rule under test
114
+ @rake[object1].invoke
115
+ @rake[object2].invoke
116
+ @rake[object3].invoke
117
+ end
118
+
119
+ should "handle alternate build file paths and object file extensions for object generation rule" do
120
+ redefine_global_constant('PROJECT_TEST_BUILD_OUTPUT_PATH', 'build/stuff/out')
121
+ redefine_global_constant('EXTENSION_OBJECT', '.obj')
122
+
123
+ # reload rakefile with new global constants
124
+ setup()
125
+
126
+ object_src1 = 'tests/a/test_thing.c'
127
+ object1 = 'build/stuff/out/test_thing.obj'
128
+
129
+ # fake out rake so it won't look for the test files on disk and find they don't exist.
130
+ # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
131
+ @rake.define_task(Rake::FileTask, object_src1)
132
+
133
+ # set up expectations
134
+ @file_finder.expects.find_compilation_input_file(object1).returns(object_src1)
135
+ @generator.expects.generate_object_file(object_src1, object1)
136
+
137
+ # invoke the test runner creation rule under test
138
+ @rake[object1].invoke
139
+ end
140
+
141
+ ##########################################
142
+ ####### Executable File Generation #######
143
+ ##########################################
144
+
145
+ should "recognize missing executable files, find their object files, and execute rake tasks from the rule for executable generation" do
146
+ # default values as set in test_helper
147
+ redefine_global_constant('PROJECT_TEST_BUILD_OUTPUT_PATH', 'project/build/tests/output')
148
+ redefine_global_constant('EXTENSION_EXECUTABLE', '.out')
149
+
150
+ # reload rakefile with new global constants
151
+ setup()
152
+
153
+ executable_prereqs1 = ['project/build/tests/output/unity.o', 'project/build/tests/output/mock_stuff.o', 'project/build/tests/output/thing.o']
154
+ executable_prereqs2 = ['project/build/tests/output/able.o', 'project/build/tests/output/unity.o']
155
+ executable1 = 'project/build/tests/output/test_thing.out'
156
+ executable2 = 'project/build/tests/output/test_able.out'
157
+
158
+ # fake out rake so it won't look for the test files on disk and find they don't exist.
159
+ # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
160
+ @rake.define_task(Rake::FileTask, executable_prereqs1[0])
161
+ @rake.define_task(Rake::FileTask, executable_prereqs1[1])
162
+ @rake.define_task(Rake::FileTask, executable_prereqs1[2])
163
+ @rake.define_task(Rake::FileTask, executable_prereqs2[0])
164
+ @rake.define_task(Rake::FileTask, executable_prereqs2[1])
165
+
166
+ task = @rake.define_task(Rake::FileTask, executable1)
167
+ task.enhance(executable_prereqs1)
168
+ task = @rake.define_task(Rake::FileTask, executable2)
169
+ task.enhance(executable_prereqs2)
170
+
171
+ # set up expectations
172
+ @generator.expects.generate_executable_file(executable_prereqs1, executable1)
173
+ @generator.expects.generate_executable_file(executable_prereqs2, executable2)
174
+
175
+ # invoke the test object creation rule under test
176
+ @rake[executable1].invoke
177
+ @rake[executable2].invoke
178
+ end
179
+
180
+ should "handle alternate build file paths and executable extensions for executable generation rule" do
181
+ # default values as set in test_helper
182
+ redefine_global_constant('PROJECT_TEST_BUILD_OUTPUT_PATH', 'build/dump')
183
+ redefine_global_constant('EXTENSION_EXECUTABLE', '.exe')
184
+
185
+ # reload rakefile with new global constants
186
+ setup()
187
+
188
+ executable_prereqs1 = ['project/build/tests/output/able.o', 'project/build/tests/output/unity.o']
189
+ executable1 = 'build/dump/test_able.exe'
190
+
191
+ # fake out rake so it won't look for the test files on disk and find they don't exist.
192
+ # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
193
+ @rake.define_task(Rake::FileTask, executable_prereqs1[0])
194
+ @rake.define_task(Rake::FileTask, executable_prereqs1[1])
195
+
196
+ task = @rake.define_task(Rake::FileTask, executable1)
197
+ task.enhance(executable_prereqs1)
198
+
199
+ # set up expectations
200
+ @generator.expects.generate_executable_file(executable_prereqs1, executable1)
201
+
202
+ # invoke the test object creation rule under test
203
+ @rake[executable1].invoke
204
+ end
205
+
206
+ ###############################################################
207
+ ####### Test Pass File Generation (i.e. execute a test) #######
208
+ ###############################################################
209
+
210
+ should "recognize missing test pass files, find the test executable, and execute rake tasks from the rule for test result generation" do
211
+ # default values as set in test_helper
212
+ redefine_global_constant('PROJECT_TEST_RESULTS_PATH', 'project/build/tests/results')
213
+ redefine_global_constant('EXTENSION_TESTPASS', '.pass')
214
+
215
+ # reload rakefile with new global constants
216
+ setup()
217
+
218
+ pass_results_src1 = 'project/build/tests/output/test_thing.exe'
219
+ pass_results_src2 = 'project/build/tests/output/test_another_thing.exe'
220
+ pass_results_src3 = 'project/build/tests/output/test_and_another_thing.exe'
221
+ pass_results1 = 'project/build/tests/results/test_thing.pass'
222
+ pass_results2 = 'project/build/tests/results/test_another_thing_runner.pass'
223
+ pass_results3 = 'project/build/tests/results/test_and_another_thing.pass'
224
+
225
+ # fake out rake so it won't look for the test files on disk and find they don't exist.
226
+ # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
227
+ @rake.define_task(Rake::FileTask, pass_results_src1)
228
+ @rake.define_task(Rake::FileTask, pass_results_src2)
229
+ @rake.define_task(Rake::FileTask, pass_results_src3)
230
+
231
+ # set up expectations
232
+ @file_path_utils.expects.form_executable_filepath(pass_results1).returns(pass_results_src1)
233
+ @generator.expects.generate_test_results(pass_results_src1, pass_results1)
234
+ @file_path_utils.expects.form_executable_filepath(pass_results2).returns(pass_results_src2)
235
+ @generator.expects.generate_test_results(pass_results_src2, pass_results2)
236
+ @file_path_utils.expects.form_executable_filepath(pass_results3).returns(pass_results_src3)
237
+ @generator.expects.generate_test_results(pass_results_src3, pass_results3)
238
+
239
+ # invoke the test pass results creation rule under test
240
+ @rake[pass_results1].invoke
241
+ @rake[pass_results2].invoke
242
+ @rake[pass_results3].invoke
243
+ end
244
+
245
+ should "handle alternate test results file paths and test pass file extensions for test results generation rule" do
246
+ # default values as set in test_helper
247
+ redefine_global_constant('PROJECT_TEST_RESULTS_PATH', 'project/test_run')
248
+ redefine_global_constant('EXTENSION_TESTPASS', '.testpass')
249
+
250
+ # reload rakefile with new global constants
251
+ setup()
252
+
253
+ pass_results_src1 = 'project/build/tests/output/test_thing.exe'
254
+ pass_results1 = 'project/test_run/test_thing.testpass'
255
+
256
+ # fake out rake so it won't look for the test files on disk and find they don't exist.
257
+ # by creating file tasks we're telling rake there's a means to create these files that don't exist (but we never use the mechanism).
258
+ @rake.define_task(Rake::FileTask, pass_results_src1)
259
+
260
+ # set up expectations
261
+ @file_path_utils.expects.form_executable_filepath(pass_results1).returns(pass_results_src1)
262
+ @generator.expects.generate_test_results(pass_results_src1, pass_results1)
263
+
264
+ # invoke the test pass results creation rule under test
265
+ @rake[pass_results1].invoke
266
+ end
267
+
268
+ end