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
@@ -23,11 +23,11 @@
23
23
 
24
24
  //=======Automagically Detected Files To Include=====
25
25
  #include "unity.h"
26
- #include "one.h"
27
- #include "two.h"
28
26
  #include <setjmp.h>
29
27
  #include <stdio.h>
30
28
  #include "CException.h"
29
+ #include "one.h"
30
+ #include "two.h"
31
31
  #include "funky.h"
32
32
  #include "stanky.h"
33
33
  #include <setjmp.h>
@@ -41,10 +41,13 @@ extern void setUp(void);
41
41
  extern void tearDown(void);
42
42
  extern void test_TheFirstThingToTest(void);
43
43
  extern void test_TheSecondThingToTest(void);
44
+ extern void test_TheThirdThingToTest(void);
45
+ extern void test_TheFourthThingToTest(void);
44
46
 
45
47
 
46
48
  //=======Test Reset Option=====
47
- void resetTest()
49
+ void resetTest(void);
50
+ void resetTest(void)
48
51
  {
49
52
  tearDown();
50
53
  setUp();
@@ -54,10 +57,11 @@ void resetTest()
54
57
  //=======MAIN=====
55
58
  int main(void)
56
59
  {
57
- UnityBegin();
58
- Unity.TestFile = "test/testdata/testsample.c";
60
+ UnityBegin("testdata/testsample.c");
59
61
  RUN_TEST(test_TheFirstThingToTest, 21);
60
62
  RUN_TEST(test_TheSecondThingToTest, 43);
63
+ RUN_TEST(test_TheThirdThingToTest, 53);
64
+ RUN_TEST(test_TheFourthThingToTest, 58);
61
65
 
62
66
  return (UnityEnd());
63
67
  }
@@ -31,6 +31,8 @@ extern void setUp(void);
31
31
  extern void tearDown(void);
32
32
  extern void test_TheFirstThingToTest(void);
33
33
  extern void test_TheSecondThingToTest(void);
34
+ extern void test_TheThirdThingToTest(void);
35
+ extern void test_TheFourthThingToTest(void);
34
36
 
35
37
 
36
38
  //=======Suite Setup=====
@@ -46,7 +48,8 @@ a_custom_teardown();
46
48
  }
47
49
 
48
50
  //=======Test Reset Option=====
49
- void resetTest()
51
+ void resetTest(void);
52
+ void resetTest(void)
50
53
  {
51
54
  tearDown();
52
55
  setUp();
@@ -57,10 +60,11 @@ void resetTest()
57
60
  int main(void)
58
61
  {
59
62
  suite_setup();
60
- UnityBegin();
61
- Unity.TestFile = "test/testdata/testsample.c";
63
+ UnityBegin("testdata/testsample.c");
62
64
  RUN_TEST(test_TheFirstThingToTest, 21);
63
65
  RUN_TEST(test_TheSecondThingToTest, 43);
66
+ RUN_TEST(test_TheThirdThingToTest, 53);
67
+ RUN_TEST(test_TheFourthThingToTest, 58);
64
68
 
65
69
  return suite_teardown(UnityEnd());
66
70
  }
@@ -32,10 +32,13 @@ extern void setUp(void);
32
32
  extern void tearDown(void);
33
33
  extern void test_TheFirstThingToTest(void);
34
34
  extern void test_TheSecondThingToTest(void);
35
+ extern void test_TheThirdThingToTest(void);
36
+ extern void test_TheFourthThingToTest(void);
35
37
 
36
38
 
37
39
  //=======Test Reset Option=====
38
- void resetTest()
40
+ void resetTest(void);
41
+ void resetTest(void)
39
42
  {
40
43
  tearDown();
41
44
  setUp();
@@ -45,10 +48,11 @@ void resetTest()
45
48
  //=======MAIN=====
46
49
  int main(void)
47
50
  {
48
- UnityBegin();
49
- Unity.TestFile = "test/testdata/testsample.c";
51
+ UnityBegin("testdata/testsample.c");
50
52
  RUN_TEST(test_TheFirstThingToTest, 21, RUN_TEST_NO_ARGS);
51
53
  RUN_TEST(test_TheSecondThingToTest, 43, RUN_TEST_NO_ARGS);
54
+ RUN_TEST(test_TheThirdThingToTest, 53, RUN_TEST_NO_ARGS);
55
+ RUN_TEST(test_TheFourthThingToTest, 58, RUN_TEST_NO_ARGS);
52
56
 
53
57
  return (UnityEnd());
54
58
  }
@@ -23,11 +23,11 @@
23
23
 
24
24
  //=======Automagically Detected Files To Include=====
25
25
  #include "unity.h"
26
- #include "one.h"
27
- #include "two.h"
28
26
  #include <setjmp.h>
29
27
  #include <stdio.h>
30
28
  #include "CException.h"
29
+ #include "one.h"
30
+ #include "two.h"
31
31
  #include "funky.h"
32
32
  #include "stanky.h"
33
33
  #include <setjmp.h>
@@ -41,10 +41,13 @@ extern void setUp(void);
41
41
  extern void tearDown(void);
42
42
  extern void test_TheFirstThingToTest(void);
43
43
  extern void test_TheSecondThingToTest(void);
44
+ extern void test_TheThirdThingToTest(void);
45
+ extern void test_TheFourthThingToTest(void);
44
46
 
45
47
 
46
48
  //=======Test Reset Option=====
47
- void resetTest()
49
+ void resetTest(void);
50
+ void resetTest(void)
48
51
  {
49
52
  tearDown();
50
53
  setUp();
@@ -54,10 +57,11 @@ void resetTest()
54
57
  //=======MAIN=====
55
58
  int main(void)
56
59
  {
57
- UnityBegin();
58
- Unity.TestFile = "test/testdata/testsample.c";
60
+ UnityBegin("testdata/testsample.c");
59
61
  RUN_TEST(test_TheFirstThingToTest, 21);
60
62
  RUN_TEST(test_TheSecondThingToTest, 43);
63
+ RUN_TEST(test_TheThirdThingToTest, 53);
64
+ RUN_TEST(test_TheFourthThingToTest, 58);
61
65
 
62
66
  return (UnityEnd());
63
67
  }
@@ -31,6 +31,8 @@ extern void setUp(void);
31
31
  extern void tearDown(void);
32
32
  extern void test_TheFirstThingToTest(void);
33
33
  extern void test_TheSecondThingToTest(void);
34
+ extern void test_TheThirdThingToTest(void);
35
+ extern void test_TheFourthThingToTest(void);
34
36
 
35
37
 
36
38
  //=======Suite Setup=====
@@ -46,7 +48,8 @@ a_custom_teardown();
46
48
  }
47
49
 
48
50
  //=======Test Reset Option=====
49
- void resetTest()
51
+ void resetTest(void);
52
+ void resetTest(void)
50
53
  {
51
54
  tearDown();
52
55
  setUp();
@@ -57,10 +60,11 @@ void resetTest()
57
60
  int main(void)
58
61
  {
59
62
  suite_setup();
60
- UnityBegin();
61
- Unity.TestFile = "test/testdata/testsample.c";
63
+ UnityBegin("testdata/testsample.c");
62
64
  RUN_TEST(test_TheFirstThingToTest, 21);
63
65
  RUN_TEST(test_TheSecondThingToTest, 43);
66
+ RUN_TEST(test_TheThirdThingToTest, 53);
67
+ RUN_TEST(test_TheFourthThingToTest, 58);
64
68
 
65
69
  return suite_teardown(UnityEnd());
66
70
  }
@@ -23,12 +23,12 @@
23
23
 
24
24
  //=======Automagically Detected Files To Include=====
25
25
  #include "unity.h"
26
- #include "two.h"
27
- #include "three.h"
28
- #include <four.h>
29
26
  #include <setjmp.h>
30
27
  #include <stdio.h>
31
28
  #include "CException.h"
29
+ #include "two.h"
30
+ #include "three.h"
31
+ #include <four.h>
32
32
  #include "funky.h"
33
33
  #include "stanky.h"
34
34
  #include <setjmp.h>
@@ -38,6 +38,8 @@ extern void setUp(void);
38
38
  extern void tearDown(void);
39
39
  extern void test_TheFirstThingToTest(void);
40
40
  extern void test_TheSecondThingToTest(void);
41
+ extern void test_TheThirdThingToTest(void);
42
+ extern void test_TheFourthThingToTest(void);
41
43
 
42
44
 
43
45
  //=======Suite Setup=====
@@ -47,7 +49,8 @@ a_yaml_setup();
47
49
  }
48
50
 
49
51
  //=======Test Reset Option=====
50
- void resetTest()
52
+ void resetTest(void);
53
+ void resetTest(void)
51
54
  {
52
55
  tearDown();
53
56
  setUp();
@@ -58,10 +61,11 @@ void resetTest()
58
61
  int main(void)
59
62
  {
60
63
  suite_setup();
61
- UnityBegin();
62
- Unity.TestFile = "test/testdata/testsample.c";
64
+ UnityBegin("testdata/testsample.c");
63
65
  RUN_TEST(test_TheFirstThingToTest, 21);
64
66
  RUN_TEST(test_TheSecondThingToTest, 43);
67
+ RUN_TEST(test_TheThirdThingToTest, 53);
68
+ RUN_TEST(test_TheFourthThingToTest, 58);
65
69
 
66
70
  return (UnityEnd());
67
71
  }
@@ -1,61 +1,60 @@
1
- # ==========================================
2
- # Unity Project - A Test Framework for C
3
- # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
- # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
6
-
7
- UNITY_ROOT = File.expand_path(File.dirname(__FILE__)) + '/'
8
-
9
- require 'rake'
10
- require 'rake/clean'
11
- require 'rake/testtask'
12
- require UNITY_ROOT + 'rakefile_helper'
13
-
14
- TEMP_DIRS = [
15
- File.join(UNITY_ROOT, 'build')
16
- ]
17
-
18
- TEMP_DIRS.each do |dir|
19
- directory(dir)
20
- CLOBBER.include(dir)
21
- end
22
-
23
- task :prepare_for_tests => TEMP_DIRS
24
-
25
- include RakefileHelpers
26
-
27
- # Load default configuration, for now
28
- DEFAULT_CONFIG_FILE = 'gcc_32.yml'
29
- configure_toolchain(DEFAULT_CONFIG_FILE)
30
-
31
- desc "Test unity with its own unit tests"
32
- task :unit => [:prepare_for_tests] do
33
- run_tests get_unit_test_files
34
- end
35
-
36
- desc "Test unity's helper scripts"
37
- task :scripts => [:prepare_for_tests] do
38
- Dir['test/test_*.rb'].each do |scriptfile|
39
- require "./"+scriptfile
40
- end
41
- end
42
-
43
- desc "Generate test summary"
44
- task :summary do
45
- report_summary
46
- end
47
-
48
- desc "Build and test Unity"
49
- task :all => [:clean, :prepare_for_tests, :scripts, :unit, :summary]
50
- task :default => [:clobber, :all]
51
- task :ci => [:no_color, :default]
52
- task :cruise => [:no_color, :default]
53
-
54
- desc "Load configuration"
55
- task :config, :config_file do |t, args|
56
- configure_toolchain(args[:config_file])
57
- end
58
-
59
- task :no_color do
60
- $colour_output = false
61
- end
1
+ # ==========================================
2
+ # Unity Project - A Test Framework for C
3
+ # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
+ # [Released under MIT License. Please refer to license.txt for details]
5
+ # ==========================================
6
+
7
+ UNITY_ROOT = File.expand_path(File.dirname(__FILE__)) + '/'
8
+
9
+ require 'rake'
10
+ require 'rake/clean'
11
+ require UNITY_ROOT + 'rakefile_helper'
12
+
13
+ TEMP_DIRS = [
14
+ File.join(UNITY_ROOT, 'build')
15
+ ]
16
+
17
+ TEMP_DIRS.each do |dir|
18
+ directory(dir)
19
+ CLOBBER.include(dir)
20
+ end
21
+
22
+ task :prepare_for_tests => TEMP_DIRS
23
+
24
+ include RakefileHelpers
25
+
26
+ # Load proper GCC as defult configuration
27
+ DEFAULT_CONFIG_FILE = 'gcc_auto_stdint.yml'
28
+ configure_toolchain(DEFAULT_CONFIG_FILE)
29
+
30
+ desc "Test unity with its own unit tests"
31
+ task :unit => [:prepare_for_tests] do
32
+ run_tests get_unit_test_files
33
+ end
34
+
35
+ desc "Test unity's helper scripts"
36
+ task :scripts => [:prepare_for_tests] do
37
+ Dir['tests/test_*.rb'].each do |scriptfile|
38
+ require "./"+scriptfile
39
+ end
40
+ end
41
+
42
+ desc "Generate test summary"
43
+ task :summary do
44
+ report_summary
45
+ end
46
+
47
+ desc "Build and test Unity"
48
+ task :all => [:clean, :prepare_for_tests, :scripts, :unit, :summary]
49
+ task :default => [:clobber, :all]
50
+ task :ci => [:no_color, :default]
51
+ task :cruise => [:no_color, :default]
52
+
53
+ desc "Load configuration"
54
+ task :config, :config_file do |t, args|
55
+ configure_toolchain(args[:config_file])
56
+ end
57
+
58
+ task :no_color do
59
+ $colour_output = false
60
+ end
@@ -1,249 +1,255 @@
1
- # ==========================================
2
- # Unity Project - A Test Framework for C
3
- # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
- # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
6
-
7
- require 'yaml'
8
- require 'fileutils'
9
- require UNITY_ROOT + 'auto/unity_test_summary'
10
- require UNITY_ROOT + 'auto/generate_test_runner'
11
- require UNITY_ROOT + 'auto/colour_reporter'
12
-
13
- module RakefileHelpers
14
-
15
- C_EXTENSION = '.c'
16
-
17
- def load_configuration(config_file)
18
- unless ($configured)
19
- $cfg_file = "targets/#{config_file}" unless (config_file =~ /[\\|\/]/)
20
- $cfg = YAML.load(File.read($cfg_file))
21
- $colour_output = false unless $cfg['colour']
22
- $configured = true if (config_file != DEFAULT_CONFIG_FILE)
23
- end
24
- end
25
-
26
- def configure_clean
27
- CLEAN.include($cfg['compiler']['build_path'] + '*.*') unless $cfg['compiler']['build_path'].nil?
28
- end
29
-
30
- def configure_toolchain(config_file=DEFAULT_CONFIG_FILE)
31
- config_file += '.yml' unless config_file =~ /\.yml$/
32
- config_file = config_file unless config_file =~ /[\\|\/]/
33
- load_configuration(config_file)
34
- configure_clean
35
- end
36
-
37
- def get_unit_test_files
38
- path = $cfg['compiler']['unit_tests_path'] + 'test*' + C_EXTENSION
39
- path.gsub!(/\\/, '/')
40
- FileList.new(path)
41
- end
42
-
43
- def get_local_include_dirs
44
- include_dirs = $cfg['compiler']['includes']['items'].dup
45
- include_dirs.delete_if {|dir| dir.is_a?(Array)}
46
- return include_dirs
47
- end
48
-
49
- def extract_headers(filename)
50
- includes = []
51
- lines = File.readlines(filename)
52
- lines.each do |line|
53
- m = line.match(/^\s*#include\s+\"\s*(.+\.[hH])\s*\"/)
54
- if not m.nil?
55
- includes << m[1]
56
- end
57
- end
58
- return includes
59
- end
60
-
61
- def find_source_file(header, paths)
62
- paths.each do |dir|
63
- src_file = dir + header.ext(C_EXTENSION)
64
- if (File.exists?(src_file))
65
- return src_file
66
- end
67
- end
68
- return nil
69
- end
70
-
71
- def tackit(strings)
72
- if strings.is_a?(Array)
73
- result = "\"#{strings.join}\""
74
- else
75
- result = strings
76
- end
77
- return result
78
- end
79
-
80
- def squash(prefix, items)
81
- result = ''
82
- items.each { |item| result += " #{prefix}#{tackit(item)}" }
83
- return result
84
- end
85
-
86
- def should(behave, &block)
87
- if block
88
- puts "Should " + behave
89
- yield block
90
- else
91
- puts "UNIMPLEMENTED CASE: Should #{behave}"
92
- end
93
- end
94
-
95
- def build_compiler_fields
96
- command = tackit($cfg['compiler']['path'])
97
- if $cfg['compiler']['defines']['items'].nil?
98
- defines = ''
99
- else
100
- defines = squash($cfg['compiler']['defines']['prefix'], $cfg['compiler']['defines']['items'])
101
- end
102
- options = squash('', $cfg['compiler']['options'])
103
- includes = squash($cfg['compiler']['includes']['prefix'], $cfg['compiler']['includes']['items'])
104
- includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
105
- return {:command => command, :defines => defines, :options => options, :includes => includes}
106
- end
107
-
108
- def compile(file, defines=[])
109
- compiler = build_compiler_fields
110
- cmd_str = "#{compiler[:command]}#{compiler[:defines]}#{compiler[:options]}#{compiler[:includes]} #{file} " +
111
- "#{$cfg['compiler']['object_files']['prefix']}#{$cfg['compiler']['object_files']['destination']}"
112
- obj_file = "#{File.basename(file, C_EXTENSION)}#{$cfg['compiler']['object_files']['extension']}"
113
- execute(cmd_str + obj_file)
114
- return obj_file
115
- end
116
-
117
- def build_linker_fields
118
- command = tackit($cfg['linker']['path'])
119
- if $cfg['linker']['options'].nil?
120
- options = ''
121
- else
122
- options = squash('', $cfg['linker']['options'])
123
- end
124
- if ($cfg['linker']['includes'].nil? || $cfg['linker']['includes']['items'].nil?)
125
- includes = ''
126
- else
127
- includes = squash($cfg['linker']['includes']['prefix'], $cfg['linker']['includes']['items'])
128
- end
129
- includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
130
- return {:command => command, :options => options, :includes => includes}
131
- end
132
-
133
- def link_it(exe_name, obj_list)
134
- linker = build_linker_fields
135
- cmd_str = "#{linker[:command]}#{linker[:options]}#{linker[:includes]} " +
136
- (obj_list.map{|obj|"#{$cfg['linker']['object_files']['path']}#{obj} "}).join +
137
- $cfg['linker']['bin_files']['prefix'] + ' ' +
138
- $cfg['linker']['bin_files']['destination'] +
139
- exe_name + $cfg['linker']['bin_files']['extension']
140
- execute(cmd_str)
141
- end
142
-
143
- def build_simulator_fields
144
- return nil if $cfg['simulator'].nil?
145
- if $cfg['simulator']['path'].nil?
146
- command = ''
147
- else
148
- command = (tackit($cfg['simulator']['path']) + ' ')
149
- end
150
- if $cfg['simulator']['pre_support'].nil?
151
- pre_support = ''
152
- else
153
- pre_support = squash('', $cfg['simulator']['pre_support'])
154
- end
155
- if $cfg['simulator']['post_support'].nil?
156
- post_support = ''
157
- else
158
- post_support = squash('', $cfg['simulator']['post_support'])
159
- end
160
- return {:command => command, :pre_support => pre_support, :post_support => post_support}
161
- end
162
-
163
- def execute(command_string, verbose=true)
164
- report command_string
165
- output = `#{command_string}`.chomp
166
- report(output) if (verbose && !output.nil? && (output.length > 0))
167
- if $?.exitstatus != 0
168
- raise "Command failed. (Returned #{$?.exitstatus})"
169
- end
170
- return output
171
- end
172
-
173
- def report_summary
174
- summary = UnityTestSummary.new
175
- summary.set_root_path(UNITY_ROOT )
176
- results_glob = "#{$cfg['compiler']['build_path']}*.test*"
177
- results_glob.gsub!(/\\/, '/')
178
- results = Dir[results_glob]
179
- summary.set_targets(results)
180
- summary.run
181
- end
182
-
183
- def run_tests(test_files)
184
- report 'Running Unity system tests...'
185
-
186
- # Tack on TEST define for compiling unit tests
187
- load_configuration($cfg_file)
188
- test_defines = ['TEST']
189
- $cfg['compiler']['defines']['items'] = [] if $cfg['compiler']['defines']['items'].nil?
190
- $cfg['compiler']['defines']['items'] << 'TEST'
191
-
192
- include_dirs = get_local_include_dirs
193
-
194
- # Build and execute each unit test
195
- test_files.each do |test|
196
- obj_list = []
197
-
198
- # Detect dependencies and build required modules
199
- extract_headers(test).each do |header|
200
- # Compile corresponding source file if it exists
201
- src_file = find_source_file(header, include_dirs)
202
- if !src_file.nil?
203
- obj_list << compile(src_file, test_defines)
204
- end
205
- end
206
-
207
- # Build the test runner (generate if configured to do so)
208
- test_base = File.basename(test, C_EXTENSION)
209
-
210
- runner_name = test_base + '_Runner.c'
211
- runner_path = ''
212
-
213
- if $cfg['compiler']['runner_path'].nil?
214
- runner_path = $cfg['compiler']['build_path'] + runner_name
215
- else
216
- runner_path = $cfg['compiler']['runner_path'] + runner_name
217
- end
218
-
219
- options = $cfg[:unity]
220
- options[:use_param_tests] = (test =~ /parameterized/) ? true : false
221
- UnityTestRunnerGenerator.new(options).run(test, runner_path)
222
- obj_list << compile(runner_path, test_defines)
223
-
224
- # Build the test module
225
- obj_list << compile(test, test_defines)
226
-
227
- # Link the test executable
228
- link_it(test_base, obj_list)
229
-
230
- # Execute unit test and generate results file
231
- simulator = build_simulator_fields
232
- executable = $cfg['linker']['bin_files']['destination'] + test_base + $cfg['linker']['bin_files']['extension']
233
- if simulator.nil?
234
- cmd_str = executable
235
- else
236
- cmd_str = "#{simulator[:command]} #{simulator[:pre_support]} #{executable} #{simulator[:post_support]}"
237
- end
238
- output = execute(cmd_str)
239
- test_results = $cfg['compiler']['build_path'] + test_base
240
- if output.match(/OK$/m).nil?
241
- test_results += '.testfail'
242
- else
243
- test_results += '.testpass'
244
- end
245
- File.open(test_results, 'w') { |f| f.print output }
246
-
247
- end
248
- end
249
- end
1
+ # ==========================================
2
+ # Unity Project - A Test Framework for C
3
+ # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
+ # [Released under MIT License. Please refer to license.txt for details]
5
+ # ==========================================
6
+
7
+ require 'yaml'
8
+ require 'fileutils'
9
+ require UNITY_ROOT + '../auto/unity_test_summary'
10
+ require UNITY_ROOT + '../auto/generate_test_runner'
11
+ require UNITY_ROOT + '../auto/colour_reporter'
12
+
13
+ module RakefileHelpers
14
+
15
+ C_EXTENSION = '.c'
16
+
17
+ def load_configuration(config_file)
18
+ unless ($configured)
19
+ $cfg_file = "targets/#{config_file}" unless (config_file =~ /[\\|\/]/)
20
+ $cfg = YAML.load(File.read($cfg_file))
21
+ $colour_output = false unless $cfg['colour']
22
+ $configured = true if (config_file != DEFAULT_CONFIG_FILE)
23
+ end
24
+ end
25
+
26
+ def configure_clean
27
+ CLEAN.include($cfg['compiler']['build_path'] + '*.*') unless $cfg['compiler']['build_path'].nil?
28
+ end
29
+
30
+ def configure_toolchain(config_file=DEFAULT_CONFIG_FILE)
31
+ config_file += '.yml' unless config_file =~ /\.yml$/
32
+ config_file = config_file unless config_file =~ /[\\|\/]/
33
+ load_configuration(config_file)
34
+ configure_clean
35
+ end
36
+
37
+ def get_unit_test_files
38
+ path = $cfg['compiler']['unit_tests_path'] + 'test*' + C_EXTENSION
39
+ path.gsub!(/\\/, '/')
40
+ FileList.new(path)
41
+ end
42
+
43
+ def get_local_include_dirs
44
+ include_dirs = $cfg['compiler']['includes']['items'].dup
45
+ include_dirs.delete_if {|dir| dir.is_a?(Array)}
46
+ return include_dirs
47
+ end
48
+
49
+ def extract_headers(filename)
50
+ includes = []
51
+ lines = File.readlines(filename)
52
+ lines.each do |line|
53
+ m = line.match(/^\s*#include\s+\"\s*(.+\.[hH])\s*\"/)
54
+ if not m.nil?
55
+ includes << m[1]
56
+ end
57
+ end
58
+ return includes
59
+ end
60
+
61
+ def find_source_file(header, paths)
62
+ paths.each do |dir|
63
+ src_file = dir + header.ext(C_EXTENSION)
64
+ if (File.exists?(src_file))
65
+ return src_file
66
+ end
67
+ end
68
+ return nil
69
+ end
70
+
71
+ def tackit(strings)
72
+ if strings.is_a?(Array)
73
+ result = "\"#{strings.join}\""
74
+ else
75
+ result = strings
76
+ end
77
+ return result
78
+ end
79
+
80
+ def squash(prefix, items)
81
+ result = ''
82
+ items.each { |item| result += " #{prefix}#{tackit(item)}" }
83
+ return result
84
+ end
85
+
86
+ def should(behave, &block)
87
+ if block
88
+ puts "Should " + behave
89
+ yield block
90
+ else
91
+ puts "UNIMPLEMENTED CASE: Should #{behave}"
92
+ end
93
+ end
94
+
95
+ def build_compiler_fields
96
+ command = tackit($cfg['compiler']['path'])
97
+ if $cfg['compiler']['defines']['items'].nil?
98
+ defines = ''
99
+ else
100
+ defines = squash($cfg['compiler']['defines']['prefix'], $cfg['compiler']['defines']['items'] + ['UNITY_OUTPUT_CHAR=putcharSpy'])
101
+ end
102
+ options = squash('', $cfg['compiler']['options'])
103
+ includes = squash($cfg['compiler']['includes']['prefix'], $cfg['compiler']['includes']['items'])
104
+ includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
105
+ return {:command => command, :defines => defines, :options => options, :includes => includes}
106
+ end
107
+
108
+ def compile(file, defines=[])
109
+ compiler = build_compiler_fields
110
+ cmd_str = "#{compiler[:command]}#{compiler[:defines]}#{compiler[:options]}#{compiler[:includes]} #{file} " +
111
+ "#{$cfg['compiler']['object_files']['prefix']}#{$cfg['compiler']['object_files']['destination']}"
112
+ obj_file = "#{File.basename(file, C_EXTENSION)}#{$cfg['compiler']['object_files']['extension']}"
113
+ execute(cmd_str + obj_file)
114
+ return obj_file
115
+ end
116
+
117
+ def build_linker_fields
118
+ command = tackit($cfg['linker']['path'])
119
+ if $cfg['linker']['options'].nil?
120
+ options = ''
121
+ else
122
+ options = squash('', $cfg['linker']['options'])
123
+ end
124
+ if ($cfg['linker']['includes'].nil? || $cfg['linker']['includes']['items'].nil?)
125
+ includes = ''
126
+ else
127
+ includes = squash($cfg['linker']['includes']['prefix'], $cfg['linker']['includes']['items'])
128
+ end
129
+ includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
130
+ return {:command => command, :options => options, :includes => includes}
131
+ end
132
+
133
+ def link_it(exe_name, obj_list)
134
+ linker = build_linker_fields
135
+ cmd_str = "#{linker[:command]}#{linker[:options]}#{linker[:includes]} " +
136
+ (obj_list.map{|obj|"#{$cfg['linker']['object_files']['path']}#{obj} "}).join +
137
+ $cfg['linker']['bin_files']['prefix'] + ' ' +
138
+ $cfg['linker']['bin_files']['destination'] +
139
+ exe_name + $cfg['linker']['bin_files']['extension']
140
+ execute(cmd_str)
141
+ end
142
+
143
+ def build_simulator_fields
144
+ return nil if $cfg['simulator'].nil?
145
+ if $cfg['simulator']['path'].nil?
146
+ command = ''
147
+ else
148
+ command = (tackit($cfg['simulator']['path']) + ' ')
149
+ end
150
+ if $cfg['simulator']['pre_support'].nil?
151
+ pre_support = ''
152
+ else
153
+ pre_support = squash('', $cfg['simulator']['pre_support'])
154
+ end
155
+ if $cfg['simulator']['post_support'].nil?
156
+ post_support = ''
157
+ else
158
+ post_support = squash('', $cfg['simulator']['post_support'])
159
+ end
160
+ return {:command => command, :pre_support => pre_support, :post_support => post_support}
161
+ end
162
+
163
+ def execute(command_string, verbose=true)
164
+ report command_string
165
+ output = `#{command_string}`.chomp
166
+ report(output) if (verbose && !output.nil? && (output.length > 0))
167
+ if $?.exitstatus != 0
168
+ raise "Command failed. (Returned #{$?.exitstatus})"
169
+ end
170
+ return output
171
+ end
172
+
173
+ def report_summary
174
+ summary = UnityTestSummary.new
175
+ summary.set_root_path(UNITY_ROOT)
176
+ results_glob = "#{$cfg['compiler']['build_path']}*.test*"
177
+ results_glob.gsub!(/\\/, '/')
178
+ results = Dir[results_glob]
179
+ summary.set_targets(results)
180
+ report summary.run
181
+ end
182
+
183
+ def run_tests(test_files)
184
+ report 'Running Unity system tests...'
185
+
186
+ # Tack on TEST define for compiling unit tests
187
+ load_configuration($cfg_file)
188
+ test_defines = ['TEST']
189
+ $cfg['compiler']['defines']['items'] = [] if $cfg['compiler']['defines']['items'].nil?
190
+ $cfg['compiler']['defines']['items'] << 'TEST'
191
+
192
+ include_dirs = get_local_include_dirs
193
+
194
+ # Build and execute each unit test
195
+ test_files.each do |test|
196
+ obj_list = []
197
+
198
+ if !$cfg['compiler']['aux_sources'].nil?
199
+ $cfg['compiler']['aux_sources'].each do |aux|
200
+ obj_list << compile(aux, test_defines)
201
+ end
202
+ end
203
+
204
+ # Detect dependencies and build required modules
205
+ extract_headers(test).each do |header|
206
+ # Compile corresponding source file if it exists
207
+ src_file = find_source_file(header, include_dirs)
208
+ if !src_file.nil?
209
+ obj_list << compile(src_file, test_defines)
210
+ end
211
+ end
212
+
213
+ # Build the test runner (generate if configured to do so)
214
+ test_base = File.basename(test, C_EXTENSION)
215
+
216
+ runner_name = test_base + '_Runner.c'
217
+ runner_path = ''
218
+
219
+ if $cfg['compiler']['runner_path'].nil?
220
+ runner_path = $cfg['compiler']['build_path'] + runner_name
221
+ else
222
+ runner_path = $cfg['compiler']['runner_path'] + runner_name
223
+ end
224
+
225
+ options = $cfg[:unity]
226
+ options[:use_param_tests] = (test =~ /parameterized/) ? true : false
227
+ UnityTestRunnerGenerator.new(options).run(test, runner_path)
228
+ obj_list << compile(runner_path, test_defines)
229
+
230
+ # Build the test module
231
+ obj_list << compile(test, test_defines)
232
+
233
+ # Link the test executable
234
+ link_it(test_base, obj_list)
235
+
236
+ # Execute unit test and generate results file
237
+ simulator = build_simulator_fields
238
+ executable = $cfg['linker']['bin_files']['destination'] + test_base + $cfg['linker']['bin_files']['extension']
239
+ if simulator.nil?
240
+ cmd_str = executable
241
+ else
242
+ cmd_str = "#{simulator[:command]} #{simulator[:pre_support]} #{executable} #{simulator[:post_support]}"
243
+ end
244
+ output = execute(cmd_str)
245
+ test_results = $cfg['compiler']['build_path'] + test_base
246
+ if output.match(/OK$/m).nil?
247
+ test_results += '.testfail'
248
+ else
249
+ test_results += '.testpass'
250
+ end
251
+ File.open(test_results, 'w') { |f| f.print output }
252
+
253
+ end
254
+ end
255
+ end