ceedling 0.25.0 → 0.27.0

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 (434) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/project_as_gem.yml +13 -0
  4. data/assets/project_with_guts.yml +13 -0
  5. data/bin/ceedling +91 -67
  6. data/docs/CeedlingPacket.md +61 -23
  7. data/docs/CeedlingPacket.odt +0 -0
  8. data/docs/CeedlingPacket.pdf +0 -0
  9. data/docs/ThrowTheSwitchCodingStandard.md +207 -0
  10. data/examples/temp_sensor/test/TestTemperatureCalculator.c +4 -1
  11. data/lib/ceedling/configurator.rb +14 -1
  12. data/lib/ceedling/configurator_builder.rb +2 -1
  13. data/lib/ceedling/configurator_validator.rb +12 -3
  14. data/lib/ceedling/constants.rb +3 -1
  15. data/lib/ceedling/defaults.rb +12 -1
  16. data/lib/ceedling/file_finder.rb +3 -0
  17. data/lib/ceedling/file_path_utils.rb +1 -1
  18. data/lib/ceedling/file_wrapper.rb +4 -4
  19. data/lib/ceedling/generator.rb +12 -3
  20. data/lib/ceedling/preprocessinator_helper.rb +5 -5
  21. data/lib/ceedling/preprocessinator_includes_handler.rb +10 -1
  22. data/lib/ceedling/project_config_manager.rb +1 -2
  23. data/lib/ceedling/project_file_loader.rb +27 -9
  24. data/lib/ceedling/rakefile.rb +6 -6
  25. data/lib/ceedling/release_invoker.rb +21 -6
  26. data/lib/ceedling/rules_release.rake +9 -5
  27. data/lib/ceedling/rules_tests.rake +6 -1
  28. data/lib/ceedling/setupinator.rb +1 -0
  29. data/lib/ceedling/tasks_base.rake +3 -0
  30. data/lib/ceedling/tasks_filesystem.rake +10 -7
  31. data/lib/ceedling/tasks_release.rake +3 -1
  32. data/lib/ceedling/test_includes_extractor.rb +16 -12
  33. data/lib/ceedling/test_invoker.rb +40 -0
  34. data/lib/ceedling/version.rb +3 -3
  35. data/lib/ceedling/version.rb.erb +1 -1
  36. data/plugins/command_hooks/lib/command_hooks.rb +1 -1
  37. data/plugins/fake_function_framework/examples/fff_example/src/bar.h +1 -0
  38. data/plugins/fake_function_framework/examples/fff_example/src/event_processor.c +1 -0
  39. data/plugins/fake_function_framework/lib/fff_mock_generator.rb +4 -0
  40. data/plugins/fake_function_framework/spec/{fff_mock_generator_spec.rb → fff_mock_header_generator_spec.rb} +34 -194
  41. data/plugins/fake_function_framework/spec/fff_mock_source_generator_spec.rb +149 -0
  42. data/plugins/fake_function_framework/spec/header_generator.rb +51 -0
  43. data/plugins/junit_tests_report/lib/junit_tests_report.rb +115 -0
  44. data/plugins/subprojects/README.md +63 -0
  45. data/plugins/subprojects/config/defaults.yml +33 -0
  46. data/plugins/subprojects/lib/subprojects.rb +92 -0
  47. data/plugins/subprojects/subprojects.rake +78 -0
  48. data/spec/preprocessinator_includes_handler_spec.rb +15 -5
  49. data/spec/spec_helper.rb +2 -2
  50. data/spec/spec_system_helper.rb +49 -1
  51. data/spec/system/deployment_spec.rb +29 -0
  52. data/vendor/c_exception/README.md +8 -2
  53. data/vendor/c_exception/docs/{readme.txt → CException.md} +133 -102
  54. data/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
  55. data/vendor/c_exception/vendor/unity/README.md +19 -10
  56. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +67 -64
  57. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +20 -20
  58. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +149 -142
  59. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +234 -232
  60. data/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -0
  61. data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +108 -120
  62. data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +11 -9
  63. data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +1 -3
  64. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +6 -2
  65. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +45 -57
  66. data/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
  67. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  68. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -0
  69. data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
  70. data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
  71. data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
  72. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +22 -17
  73. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
  74. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
  75. data/vendor/c_exception/vendor/unity/examples/example_2/makefile +16 -17
  76. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +15 -15
  77. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
  78. data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +4 -10
  79. data/vendor/c_exception/vendor/unity/examples/unity_config.h +14 -26
  80. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +12 -12
  81. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
  82. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
  83. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
  84. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
  85. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
  86. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
  87. data/vendor/c_exception/vendor/unity/src/unity.c +396 -330
  88. data/vendor/c_exception/vendor/unity/src/unity.h +50 -4
  89. data/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -84
  90. data/vendor/c_exception/vendor/unity/test/Makefile +17 -17
  91. data/vendor/c_exception/vendor/unity/test/rakefile +63 -3
  92. data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +108 -105
  93. data/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
  94. data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -6
  95. data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +1 -9
  96. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
  97. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
  98. data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
  99. data/vendor/c_exception/vendor/unity/test/tests/testunity.c +1338 -151
  100. data/vendor/cmock/README.md +10 -1
  101. data/vendor/cmock/config/test_environment.rb +7 -7
  102. data/vendor/cmock/docs/CMock_Summary.md +325 -128
  103. data/vendor/cmock/docs/ThrowTheSwitchCodingStandard.md +207 -0
  104. data/vendor/cmock/examples/make_example/Makefile +2 -2
  105. data/vendor/cmock/examples/temp_sensor/gcc.yml +5 -4
  106. data/vendor/cmock/examples/temp_sensor/iar_v4.yml +5 -4
  107. data/vendor/cmock/examples/temp_sensor/iar_v5.yml +5 -4
  108. data/vendor/cmock/examples/temp_sensor/rakefile.rb +11 -1
  109. data/vendor/cmock/examples/temp_sensor/rakefile_helper.rb +12 -10
  110. data/vendor/cmock/lib/cmock.rb +0 -3
  111. data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +6 -2
  112. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +2 -1
  113. data/vendor/cmock/lib/cmock_header_parser.rb +5 -6
  114. data/vendor/cmock/release/version.info +1 -1
  115. data/vendor/cmock/scripts/create_makefile.rb +4 -2
  116. data/vendor/cmock/scripts/test_summary.rb +17 -9
  117. data/vendor/cmock/src/cmock.c +1 -0
  118. data/vendor/cmock/src/cmock.h +1 -1
  119. data/vendor/cmock/src/cmock_internals.h +14 -1
  120. data/vendor/cmock/test/c/TestCMockC.yml +4 -4
  121. data/vendor/cmock/test/c/TestCMockCDynamic.yml +4 -4
  122. data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_FLASH.mac +0 -0
  123. data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_RAM.mac +0 -0
  124. data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_SIM.mac +0 -0
  125. data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/at91SAM7X256_FLASH.xcl +0 -0
  126. data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/at91SAM7X256_RAM.xcl +0 -0
  127. data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/ioat91sam7x256.ddf +0 -0
  128. data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.dep +0 -0
  129. data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.ewd +0 -0
  130. data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.ewp +0 -0
  131. data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.eww +0 -0
  132. data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X-EK.h +0 -0
  133. data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.inc +0 -0
  134. data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.rdf +0 -0
  135. data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.tcl +0 -0
  136. data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256_inc.h +0 -0
  137. data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/ioat91sam7x256.h +0 -0
  138. data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/lib_AT91SAM7X256.h +0 -0
  139. data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.cspy.bat +0 -0
  140. data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.dbgdt +0 -0
  141. data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.dni +0 -0
  142. data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.wsdt +0 -0
  143. data/vendor/cmock/{iar → test/iar}/iar_v4/srcIAR/Cstartup.s79 +0 -0
  144. data/vendor/cmock/{iar → test/iar}/iar_v4/srcIAR/Cstartup_SAM7.c +0 -0
  145. data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_FLASH.mac +0 -0
  146. data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_RAM.mac +0 -0
  147. data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_SIM.mac +0 -0
  148. data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/at91SAM7X256_FLASH.icf +0 -0
  149. data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/at91SAM7X256_RAM.icf +0 -0
  150. data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.dep +0 -0
  151. data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.ewd +0 -0
  152. data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.ewp +0 -0
  153. data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.eww +0 -0
  154. data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/AT91SAM7X-EK.h +0 -0
  155. data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/AT91SAM7X256_inc.h +0 -0
  156. data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/lib_AT91SAM7X256.h +0 -0
  157. data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/project.h +0 -0
  158. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +0 -0
  159. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.dbgdt +0 -0
  160. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.dni +0 -0
  161. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.wsdt +0 -0
  162. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +0 -0
  163. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.cspy.bat +0 -0
  164. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.dbgdt +0 -0
  165. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.dni +0 -0
  166. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.wsdt +0 -0
  167. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_Binary.jlink +0 -0
  168. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +0 -0
  169. data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_RAM_Debug.jlink +0 -0
  170. data/vendor/cmock/{iar → test/iar}/iar_v5/srcIAR/Cstartup.s +0 -0
  171. data/vendor/cmock/{iar → test/iar}/iar_v5/srcIAR/Cstartup_SAM7.c +0 -0
  172. data/vendor/cmock/{Rakefile → test/rakefile} +9 -9
  173. data/vendor/cmock/{rakefile_helper.rb → test/rakefile_helper.rb} +13 -13
  174. data/vendor/cmock/test/system/test_compilation/config.yml +4 -4
  175. data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +2 -0
  176. data/vendor/cmock/{targets → test/targets}/clang_strict.yml +11 -11
  177. data/vendor/cmock/{targets → test/targets}/gcc.yml +9 -9
  178. data/vendor/cmock/{targets → test/targets}/gcc_64.yml +9 -9
  179. data/vendor/cmock/{targets → test/targets}/gcc_tiny.yml +9 -9
  180. data/vendor/cmock/{targets → test/targets}/iar_arm_v4.yml +9 -9
  181. data/vendor/cmock/{targets → test/targets}/iar_arm_v5.yml +10 -10
  182. data/vendor/cmock/test/test_helper.rb +4 -8
  183. data/vendor/cmock/test/unit/cmock_config_test.rb +1 -1
  184. data/vendor/cmock/test/unit/cmock_file_writer_test.rb +1 -1
  185. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +1 -1
  186. data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +1 -1
  187. data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +3 -1
  188. data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +1 -1
  189. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +1 -1
  190. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +1 -1
  191. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +1 -1
  192. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +1 -1
  193. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +1 -1
  194. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +1 -1
  195. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +1 -1
  196. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +15 -2
  197. data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +6 -10
  198. data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +1 -1
  199. data/vendor/cmock/vendor/c_exception/README.md +8 -2
  200. data/vendor/cmock/vendor/c_exception/docs/{readme.txt → CException.md} +133 -102
  201. data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
  202. data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +19 -10
  203. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +67 -64
  204. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +20 -20
  205. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +149 -142
  206. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +234 -232
  207. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -0
  208. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +108 -120
  209. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +11 -9
  210. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +1 -3
  211. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +6 -2
  212. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +45 -57
  213. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
  214. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  215. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -0
  216. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
  217. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
  218. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
  219. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +22 -17
  220. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
  221. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
  222. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +16 -17
  223. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +15 -15
  224. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
  225. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +4 -10
  226. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +14 -26
  227. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +12 -12
  228. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
  229. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
  230. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
  231. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
  232. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
  233. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
  234. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +396 -330
  235. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +50 -4
  236. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -84
  237. data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +17 -17
  238. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +63 -3
  239. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +108 -105
  240. data/vendor/cmock/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
  241. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -6
  242. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +1 -9
  243. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
  244. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
  245. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
  246. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +1338 -151
  247. data/vendor/cmock/vendor/unity/README.md +19 -10
  248. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +67 -64
  249. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +20 -20
  250. data/vendor/cmock/vendor/unity/auto/generate_module.rb +149 -142
  251. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +234 -232
  252. data/vendor/cmock/vendor/unity/auto/parse_output.rb +220 -0
  253. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +108 -120
  254. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +11 -9
  255. data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +1 -3
  256. data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +6 -2
  257. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +45 -57
  258. data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
  259. data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  260. data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +716 -0
  261. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
  262. data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
  263. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
  264. data/vendor/cmock/vendor/unity/examples/example_1/makefile +22 -17
  265. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
  266. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
  267. data/vendor/cmock/vendor/unity/examples/example_2/makefile +16 -17
  268. data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +15 -15
  269. data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
  270. data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +4 -10
  271. data/vendor/cmock/vendor/unity/examples/unity_config.h +14 -26
  272. data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +12 -12
  273. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
  274. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
  275. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
  276. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
  277. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
  278. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
  279. data/vendor/cmock/vendor/unity/release/version.info +1 -1
  280. data/vendor/cmock/vendor/unity/src/unity.c +396 -330
  281. data/vendor/cmock/vendor/unity/src/unity.h +50 -4
  282. data/vendor/cmock/vendor/unity/src/unity_internals.h +119 -84
  283. data/vendor/cmock/vendor/unity/test/Makefile +17 -17
  284. data/vendor/cmock/vendor/unity/test/rakefile +63 -3
  285. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +108 -105
  286. data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
  287. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -6
  288. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +1 -9
  289. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
  290. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
  291. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
  292. data/vendor/cmock/vendor/unity/test/tests/testunity.c +1338 -151
  293. data/vendor/deep_merge/Rakefile +1 -1
  294. data/vendor/unity/README.md +19 -10
  295. data/vendor/unity/auto/colour_prompt.rb +67 -64
  296. data/vendor/unity/auto/colour_reporter.rb +20 -20
  297. data/vendor/unity/auto/generate_module.rb +149 -142
  298. data/vendor/unity/auto/generate_test_runner.rb +234 -232
  299. data/vendor/unity/auto/parse_output.rb +220 -0
  300. data/vendor/unity/auto/stylize_as_junit.rb +108 -120
  301. data/vendor/unity/auto/test_file_filter.rb +11 -9
  302. data/vendor/unity/auto/type_sanitizer.rb +1 -3
  303. data/vendor/unity/auto/unity_test_summary.py +6 -2
  304. data/vendor/unity/auto/unity_test_summary.rb +45 -57
  305. data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
  306. data/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  307. data/vendor/unity/docs/UnityAssertionsReference.md +716 -0
  308. data/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
  309. data/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
  310. data/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
  311. data/vendor/unity/examples/example_1/makefile +22 -17
  312. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
  313. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
  314. data/vendor/unity/examples/example_2/makefile +16 -17
  315. data/vendor/unity/examples/example_3/rakefile.rb +15 -15
  316. data/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
  317. data/vendor/unity/examples/example_3/readme.txt +4 -10
  318. data/vendor/unity/examples/unity_config.h +14 -26
  319. data/vendor/unity/extras/fixture/rakefile.rb +12 -12
  320. data/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
  321. data/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
  322. data/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
  323. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
  324. data/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
  325. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
  326. data/vendor/unity/release/version.info +1 -1
  327. data/vendor/unity/src/unity.c +396 -330
  328. data/vendor/unity/src/unity.h +50 -4
  329. data/vendor/unity/src/unity_internals.h +119 -84
  330. data/vendor/unity/test/Makefile +17 -17
  331. data/vendor/unity/test/rakefile +63 -3
  332. data/vendor/unity/test/rakefile_helper.rb +108 -105
  333. data/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
  334. data/vendor/unity/test/targets/clang_file.yml +0 -6
  335. data/vendor/unity/test/targets/clang_strict.yml +1 -9
  336. data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
  337. data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
  338. data/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
  339. data/vendor/unity/test/tests/testunity.c +1338 -151
  340. metadata +102 -157
  341. data/test_graveyard/integration/paths.yml +0 -17
  342. data/test_graveyard/integration/paths_test.rb +0 -80
  343. data/test_graveyard/integration/rake_rules_aux_dependencies_test.rb +0 -75
  344. data/test_graveyard/integration/rake_rules_cmock_test.rb +0 -74
  345. data/test_graveyard/integration/rake_rules_preprocess_test.rb +0 -178
  346. data/test_graveyard/integration/rake_rules_test.rb +0 -268
  347. data/test_graveyard/integration/rake_tasks_test.rb +0 -103
  348. data/test_graveyard/integration_test_helper.rb +0 -34
  349. data/test_graveyard/rakefile_rules.rb +0 -10
  350. data/test_graveyard/rakefile_rules_aux_dependencies.rb +0 -10
  351. data/test_graveyard/rakefile_rules_cmock.rb +0 -10
  352. data/test_graveyard/rakefile_rules_preprocess.rb +0 -10
  353. data/test_graveyard/rakefile_tasks.rb +0 -10
  354. data/test_graveyard/system/file_system_dependencies.yml +0 -20
  355. data/test_graveyard/system/file_system_kitchen_sink.yml +0 -20
  356. data/test_graveyard/system/file_system_mocks.yml +0 -20
  357. data/test_graveyard/system/file_system_preprocess.yml +0 -20
  358. data/test_graveyard/system/file_system_simple.yml +0 -20
  359. data/test_graveyard/system/file_system_test.rb +0 -78
  360. data/test_graveyard/system/mocks/include/a_file.h +0 -2
  361. data/test_graveyard/system/mocks/include/other_stuff.h +0 -2
  362. data/test_graveyard/system/mocks/include/stuff.h +0 -3
  363. data/test_graveyard/system/mocks/source/a_file.c +0 -9
  364. data/test_graveyard/system/mocks/test/test_a_file.c +0 -41
  365. data/test_graveyard/system/mocks/test/test_no_file.c +0 -14
  366. data/test_graveyard/system/project_mocks.yml +0 -43
  367. data/test_graveyard/system/project_mocks_test.rb +0 -38
  368. data/test_graveyard/system/project_simple.yml +0 -36
  369. data/test_graveyard/system/project_simple_test.rb +0 -39
  370. data/test_graveyard/system/rule_mocks_test.rb +0 -44
  371. data/test_graveyard/system/rule_runners_test.rb +0 -44
  372. data/test_graveyard/system/simple/include/other_stuff.h +0 -2
  373. data/test_graveyard/system/simple/include/stuff.h +0 -3
  374. data/test_graveyard/system/simple/source/other_stuff.c +0 -6
  375. data/test_graveyard/system/simple/source/stuff.c +0 -7
  376. data/test_graveyard/system/simple/test/test_other_stuff.c +0 -30
  377. data/test_graveyard/system/simple/test/test_stuff.c +0 -51
  378. data/test_graveyard/system_test_helper.rb +0 -73
  379. data/test_graveyard/test_helper.rb +0 -93
  380. data/test_graveyard/unit/busted/configurator_builder_test.rb +0 -569
  381. data/test_graveyard/unit/busted/configurator_helper_test.rb +0 -234
  382. data/test_graveyard/unit/busted/configurator_test.rb +0 -232
  383. data/test_graveyard/unit/busted/configurator_validator_test.rb +0 -169
  384. data/test_graveyard/unit/busted/deep_merge_fix_test.rb +0 -55
  385. data/test_graveyard/unit/busted/dependinator_test.rb +0 -129
  386. data/test_graveyard/unit/busted/file_finder_helper_test.rb +0 -45
  387. data/test_graveyard/unit/busted/file_finder_test.rb +0 -114
  388. data/test_graveyard/unit/busted/file_path_utils_test.rb +0 -97
  389. data/test_graveyard/unit/busted/file_system_utils_test.rb +0 -21
  390. data/test_graveyard/unit/busted/generator_test.rb +0 -187
  391. data/test_graveyard/unit/busted/generator_test_results_test.rb +0 -129
  392. data/test_graveyard/unit/busted/generator_test_runner_test.rb +0 -475
  393. data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +0 -39
  394. data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +0 -156
  395. data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +0 -93
  396. data/test_graveyard/unit/busted/preprocessinator_test.rb +0 -57
  397. data/test_graveyard/unit/busted/project_file_loader_test.rb +0 -142
  398. data/test_graveyard/unit/busted/setupinator_test.rb +0 -45
  399. data/test_graveyard/unit/busted/streaminator_test.rb +0 -49
  400. data/test_graveyard/unit/busted/task_invoker_test.rb +0 -69
  401. data/test_graveyard/unit/busted/test_includes_extractor_test.rb +0 -111
  402. data/test_graveyard/unit/busted/test_invoker_helper_test.rb +0 -62
  403. data/test_graveyard/unit/busted/test_invoker_test.rb +0 -47
  404. data/test_graveyard/unit/busted/tool_executor_helper_test.rb +0 -100
  405. data/test_graveyard/unit/busted/tool_executor_test.rb +0 -351
  406. data/test_graveyard/unit/busted/verbosinator_test.rb +0 -65
  407. data/test_graveyard/unit/preprocessinator_extractor_test.rb +0 -731
  408. data/test_graveyard/unit_test_helper.rb +0 -16
  409. data/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  410. data/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  411. data/vendor/c_exception/vendor/unity/auto/parseOutput.rb +0 -191
  412. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
  413. data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
  414. data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
  415. data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
  416. data/vendor/cmock/docs/CMock Summary.odt +0 -0
  417. data/vendor/cmock/docs/CMock Summary.pdf +0 -0
  418. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  419. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  420. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parseOutput.rb +0 -191
  421. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
  422. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
  423. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
  424. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
  425. data/vendor/cmock/vendor/unity/auto/parseOutput.rb +0 -191
  426. data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
  427. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
  428. data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
  429. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
  430. data/vendor/unity/auto/parseOutput.rb +0 -191
  431. data/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
  432. data/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
  433. data/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
  434. data/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
@@ -1,18 +1,20 @@
1
1
  CC = gcc
2
2
  ifeq ($(shell uname -s), Darwin)
3
3
  CC = clang
4
- CFLAGS += -std=c99 -pedantic -Wall -Weverything -Werror
5
- CFLAGS += -Wno-unknown-warning-option -Wno-switch-enum
6
- CFLAGS += -Wno-padded -Wno-double-promotion -Wno-missing-noreturn
7
- CFLAGS += -Wno-missing-prototypes
8
4
  endif
9
- ifeq ($(shell uname -s), Linux)
10
- CFLAGS += -std=c99 -pedantic -Wall -Wextra -Werror
5
+ ifeq ($(findstring clang, $(CC)), clang)
6
+ E = -Weverything
7
+ CFLAGS += $E -Wno-unknown-warning-option -Wno-missing-prototypes
8
+ CFLAGS += -Wno-unused-macros -Wno-padded -Wno-missing-noreturn
11
9
  endif
10
+ CFLAGS += -std=c99 -pedantic -Wall -Wextra -Wconversion -Werror
11
+ CFLAGS += -Wno-switch-enum -Wno-double-promotion
12
+ CFLAGS += -Wbad-function-cast -Wcast-qual -Wold-style-definition -Wshadow -Wstrict-overflow \
13
+ -Wstrict-prototypes -Wswitch-default -Wundef
12
14
  #DEBUG = -O0 -g
13
15
  CFLAGS += $(DEBUG)
14
16
  DEFINES = -D UNITY_OUTPUT_CHAR=putcharSpy
15
- DEFINES += -D UNITY_SUPPORT_64 -D UNITY_INCLUDE_DOUBLE -D UNITY_NO_WEAK
17
+ DEFINES += -D UNITY_SUPPORT_64 -D UNITY_INCLUDE_DOUBLE
16
18
  SRC = ../src/unity.c tests/testunity.c build/testunityRunner.c
17
19
  INC_DIR = -I ../src
18
20
  COV_FLAGS = -fprofile-arcs -ftest-coverage -I ../../src
@@ -23,18 +25,16 @@ TARGET = build/testunity-cov.exe
23
25
  # For verbose output of all the tests, run 'make test'.
24
26
  default: coverage
25
27
  .PHONY: default coverage test clean
28
+ coverage: DEFINES += -D UNITY_NO_WEAK
26
29
  coverage: $(BUILD_DIR)/testunityRunner.c
27
30
  cd $(BUILD_DIR) && \
28
31
  $(CC) $(CFLAGS) $(DEFINES) $(foreach i,$(SRC), ../$i) $(COV_FLAGS) -o ../$(TARGET)
29
32
  rm -f $(BUILD_DIR)/*.gcda
30
- ./$(TARGET) | grep Tests -A1
33
+ ./$(TARGET) | grep 'Tests\|]]]' -A1
31
34
  cd $(BUILD_DIR) && \
32
35
  gcov unity.c | head -3
33
36
  grep '###' $(BUILD_DIR)/unity.c.gcov -C2 || true
34
37
 
35
- test: CFLAGS += -Wbad-function-cast -Wcast-qual -Wconversion -Wformat=2 -Wold-style-definition \
36
- -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-overflow=5 -Wstrict-prototypes \
37
- -Wswitch-default -Wundef -Wunreachable-code -Wunused -fstrict-aliasing
38
38
  test: $(BUILD_DIR)/testunityRunner.c
39
39
  $(CC) $(CFLAGS) $(DEFINES) $(INC_DIR) $(SRC) -o $(TARGET)
40
40
  ./$(TARGET)
@@ -50,14 +50,14 @@ $(BUILD_DIR)/testunityRunner.c: tests/testunity.c | $(BUILD_DIR)
50
50
 
51
51
  AWK_SCRIPT=\
52
52
  '/^void test/{ declarations[d++]=$$0; gsub(/\(?void\)? ?/,""); tests[t++]=$$0; line[u++]=NR } \
53
- END{ print "\#include \"unity.h\" /* Autogenerated by awk in Makefile */" ; \
54
- for (i=0; i<d; i++) { print declarations[i] ";" } \
55
- printf "int main(void)\n{\n UNITY_BEGIN();\n" ; \
56
- for (i=0; i<t; i++) { print " RUN_TEST(" tests[i] ", " line[i] ");" } \
57
- printf " return UNITY_END();\n}\n" }'
53
+ END{ print "\#include \"unity.h\" /* Autogenerated by awk in Makefile */" ; \
54
+ for (i=0; i<d; i++) { print declarations[i] ";" } \
55
+ print "int main(void)\n{\n UnityBegin(\"" FILENAME "\");" ; \
56
+ for (i=0; i<t; i++) { print " RUN_TEST(" tests[i] ", " line[i] ");" } \
57
+ print " return UNITY_END();\n}" }'
58
58
 
59
59
  $(BUILD_DIR):
60
60
  mkdir -p $(BUILD_DIR)
61
61
 
62
62
  clean:
63
- rm -f $(BUILD_DIR)/$(TARGET) $(BUILD_DIR)/*.gc* $(BUILD_DIR)/testunityRunner.c
63
+ rm -f $(TARGET) $(BUILD_DIR)/*.gc* $(BUILD_DIR)/testunityRunner.c
@@ -10,9 +10,11 @@ $verbose = false
10
10
  require 'rake'
11
11
  require 'rake/clean'
12
12
  require UNITY_ROOT + 'rakefile_helper'
13
+ require 'rspec/core/rake_task'
13
14
 
14
15
  TEMP_DIRS = [
15
- File.join(UNITY_ROOT, 'build')
16
+ File.join(UNITY_ROOT, 'build'),
17
+ File.join(UNITY_ROOT, 'sandbox')
16
18
  ]
17
19
 
18
20
  TEMP_DIRS.each do |dir|
@@ -30,7 +32,7 @@ configure_toolchain(DEFAULT_CONFIG_FILE)
30
32
 
31
33
  desc "Test unity with its own unit tests"
32
34
  task :unit => [:prepare_for_tests] do
33
- run_tests get_unit_test_files
35
+ run_tests unit_test_files
34
36
  end
35
37
 
36
38
  desc "Test unity's helper scripts"
@@ -40,13 +42,18 @@ task :scripts => [:prepare_for_tests] do
40
42
  end
41
43
  end
42
44
 
45
+ desc "Run all rspecs"
46
+ RSpec::Core::RakeTask.new(:spec) do |t|
47
+ t.pattern = 'spec/**/*_spec.rb'
48
+ end
49
+
43
50
  desc "Generate test summary"
44
51
  task :summary do
45
52
  report_summary
46
53
  end
47
54
 
48
55
  desc "Build and test Unity"
49
- task :all => [:clean, :prepare_for_tests, :scripts, :unit, :summary]
56
+ task :all => [:clean, :prepare_for_tests, :scripts, :unit, :style, :summary]
50
57
  task :default => [:clobber, :all]
51
58
  task :ci => [:no_color, :default]
52
59
  task :cruise => [:no_color, :default]
@@ -63,3 +70,56 @@ end
63
70
  task :verbose do
64
71
  $verbose = true
65
72
  end
73
+
74
+ namespace :style do
75
+ desc "Check style"
76
+ task :check do
77
+ report "\nVERIFYING RUBY STYLE"
78
+ report execute("rubocop ../auto ../examples ../extras --config .rubocop.yml", true)
79
+ report "Styling Ruby:PASS"
80
+ end
81
+
82
+ namespace :check do
83
+ Dir['../**/*.rb'].each do |f|
84
+ filename = File.basename(f, '.rb')
85
+ desc "Check Style of #{filename}"
86
+ task filename.to_sym => ['style:clean'] do
87
+ report execute("rubocop #{f} --color --config .rubocop.yml", true)
88
+ report "Style Checked for #{f}"
89
+ end
90
+ end
91
+ end
92
+
93
+ desc "Fix Style of all C Code"
94
+ task :c do
95
+ run_astyle("../src/*.* ../extras/fixture/src/*.*")
96
+ end
97
+
98
+ namespace :c do
99
+ Dir['../{src,extras/**}/*.{c,h}'].each do |f|
100
+ filename = File.basename(f)[0..-3]
101
+ desc "Check Style of #{filename}"
102
+ task filename.to_sym do
103
+ run_astyle f
104
+ end
105
+ end
106
+ end
107
+
108
+ desc "Attempt to Autocorrect style"
109
+ task :auto => ['style:clean'] do
110
+ execute("rubocop ../auto ../examples ../extras --auto-correct --config .rubocop.yml")
111
+ report "Autocorrected What We Could."
112
+ end
113
+
114
+ desc "Update style todo list"
115
+ task :todo => ['style:clean'] do
116
+ execute("rubocop ../auto ../examples ../extras --auto-gen-config --config .rubocop.yml")
117
+ report "Updated Style TODO List."
118
+ end
119
+
120
+ task :clean do
121
+ File.delete(".rubocop_todo.yml") if File.exists?(".rubocop_todo.yml")
122
+ end
123
+ end
124
+
125
+ task :style => ['style:check']
@@ -11,39 +11,37 @@ require UNITY_ROOT + '../auto/generate_test_runner'
11
11
  require UNITY_ROOT + '../auto/colour_reporter'
12
12
 
13
13
  module RakefileHelpers
14
-
15
- C_EXTENSION = '.c'
16
-
14
+ C_EXTENSION = '.c'.freeze
17
15
  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
16
+ return if $configured
17
+
18
+ $cfg_file = "targets/#{config_file}" unless config_file =~ /[\\|\/]/
19
+ $cfg = YAML.load(File.read($cfg_file))
20
+ $colour_output = false unless $cfg['colour']
21
+ $configured = true if config_file != DEFAULT_CONFIG_FILE
24
22
  end
25
23
 
26
24
  def configure_clean
27
25
  CLEAN.include($cfg['compiler']['build_path'] + '*.*') unless $cfg['compiler']['build_path'].nil?
28
26
  end
29
27
 
30
- def configure_toolchain(config_file=DEFAULT_CONFIG_FILE)
28
+ def configure_toolchain(config_file = DEFAULT_CONFIG_FILE)
31
29
  config_file += '.yml' unless config_file =~ /\.yml$/
32
30
  config_file = config_file unless config_file =~ /[\\|\/]/
33
31
  load_configuration(config_file)
34
32
  configure_clean
35
33
  end
36
34
 
37
- def get_unit_test_files
35
+ def unit_test_files
38
36
  path = $cfg['compiler']['unit_tests_path'] + 'test*' + C_EXTENSION
39
- path.gsub!(/\\/, '/')
37
+ path.tr!('\\', '/')
40
38
  FileList.new(path)
41
39
  end
42
40
 
43
- def get_local_include_dirs
41
+ def local_include_dirs
44
42
  include_dirs = $cfg['compiler']['includes']['items'].dup
45
- include_dirs.delete_if {|dir| dir.is_a?(Array)}
46
- return include_dirs
43
+ include_dirs.delete_if { |dir| dir.is_a?(Array) }
44
+ include_dirs
47
45
  end
48
46
 
49
47
  def extract_headers(filename)
@@ -51,41 +49,37 @@ module RakefileHelpers
51
49
  lines = File.readlines(filename)
52
50
  lines.each do |line|
53
51
  m = line.match(/^\s*#include\s+\"\s*(.+\.[hH])\s*\"/)
54
- if not m.nil?
55
- includes << m[1]
56
- end
52
+ includes << m[1] unless m.nil?
57
53
  end
58
- return includes
54
+ includes
59
55
  end
60
56
 
61
57
  def find_source_file(header, paths)
62
58
  paths.each do |dir|
63
59
  src_file = dir + header.ext(C_EXTENSION)
64
- if (File.exists?(src_file))
65
- return src_file
66
- end
60
+ return src_file if File.exist?(src_file)
67
61
  end
68
- return nil
62
+ nil
69
63
  end
70
64
 
71
65
  def tackit(strings)
72
- if strings.is_a?(Array)
73
- result = "\"#{strings.join}\""
74
- else
75
- result = strings
76
- end
77
- return result
66
+ result = if strings.is_a?(Array)
67
+ "\"#{strings.join}\""
68
+ else
69
+ strings
70
+ end
71
+ result
78
72
  end
79
73
 
80
74
  def squash(prefix, items)
81
75
  result = ''
82
76
  items.each { |item| result += " #{prefix}#{tackit(item)}" }
83
- return result
77
+ result
84
78
  end
85
79
 
86
80
  def should(behave, &block)
87
81
  if block
88
- puts "Should " + behave
82
+ puts 'Should ' + behave
89
83
  yield block
90
84
  else
91
85
  puts "UNIMPLEMENTED CASE: Should #{behave}"
@@ -93,91 +87,103 @@ module RakefileHelpers
93
87
  end
94
88
 
95
89
  def build_compiler_fields(inject_defines)
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'] + inject_defines)
101
- end
102
- options = squash('', $cfg['compiler']['options'])
90
+ command = tackit($cfg['compiler']['path'])
91
+ defines = if $cfg['compiler']['defines']['items'].nil?
92
+ ''
93
+ else
94
+ squash($cfg['compiler']['defines']['prefix'], $cfg['compiler']['defines']['items'] + ['UNITY_OUTPUT_CHAR=putcharSpy'] + inject_defines)
95
+ end
96
+ options = squash('', $cfg['compiler']['options'])
103
97
  includes = squash($cfg['compiler']['includes']['prefix'], $cfg['compiler']['includes']['items'])
104
98
  includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
105
- return {:command => command, :defines => defines, :options => options, :includes => includes}
99
+
100
+ { :command => command, :defines => defines, :options => options, :includes => includes }
106
101
  end
107
102
 
108
- def compile(file, defines=[])
103
+ def compile(file, defines = [])
109
104
  compiler = build_compiler_fields(defines)
110
- defines =
111
- cmd_str = "#{compiler[:command]}#{compiler[:defines]}#{compiler[:options]}#{compiler[:includes]} #{file} " +
105
+ cmd_str = "#{compiler[:command]}#{compiler[:defines]}#{compiler[:options]}#{compiler[:includes]} #{file} " \
112
106
  "#{$cfg['compiler']['object_files']['prefix']}#{$cfg['compiler']['object_files']['destination']}"
113
107
  obj_file = "#{File.basename(file, C_EXTENSION)}#{$cfg['compiler']['object_files']['extension']}"
114
108
  execute(cmd_str + obj_file)
115
- return obj_file
109
+
110
+ obj_file
116
111
  end
117
112
 
118
113
  def build_linker_fields
119
- command = tackit($cfg['linker']['path'])
120
- if $cfg['linker']['options'].nil?
121
- options = ''
122
- else
123
- options = squash('', $cfg['linker']['options'])
124
- end
125
- if ($cfg['linker']['includes'].nil? || $cfg['linker']['includes']['items'].nil?)
126
- includes = ''
127
- else
128
- includes = squash($cfg['linker']['includes']['prefix'], $cfg['linker']['includes']['items'])
129
- end
130
- includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
131
- return {:command => command, :options => options, :includes => includes}
114
+ command = tackit($cfg['linker']['path'])
115
+ options = if $cfg['linker']['options'].nil?
116
+ ''
117
+ else
118
+ squash('', $cfg['linker']['options'])
119
+ end
120
+ includes = if $cfg['linker']['includes'].nil? || $cfg['linker']['includes']['items'].nil?
121
+ ''
122
+ else
123
+ squash($cfg['linker']['includes']['prefix'], $cfg['linker']['includes']['items'])
124
+ end.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
125
+
126
+ { :command => command, :options => options, :includes => includes }
132
127
  end
133
128
 
134
129
  def link_it(exe_name, obj_list)
135
130
  linker = build_linker_fields
136
131
  cmd_str = "#{linker[:command]}#{linker[:options]}#{linker[:includes]} " +
137
- (obj_list.map{|obj|"#{$cfg['linker']['object_files']['path']}#{obj} "}).join +
138
- $cfg['linker']['bin_files']['prefix'] + ' ' +
139
- $cfg['linker']['bin_files']['destination'] +
140
- exe_name + $cfg['linker']['bin_files']['extension']
132
+ (obj_list.map { |obj| "#{$cfg['linker']['object_files']['path']}#{obj} " }).join +
133
+ $cfg['linker']['bin_files']['prefix'] + ' ' +
134
+ $cfg['linker']['bin_files']['destination'] +
135
+ exe_name + $cfg['linker']['bin_files']['extension']
141
136
  execute(cmd_str)
142
137
  end
143
138
 
144
139
  def build_simulator_fields
145
140
  return nil if $cfg['simulator'].nil?
146
- if $cfg['simulator']['path'].nil?
147
- command = ''
148
- else
149
- command = (tackit($cfg['simulator']['path']) + ' ')
150
- end
151
- if $cfg['simulator']['pre_support'].nil?
152
- pre_support = ''
153
- else
154
- pre_support = squash('', $cfg['simulator']['pre_support'])
155
- end
156
- if $cfg['simulator']['post_support'].nil?
157
- post_support = ''
158
- else
159
- post_support = squash('', $cfg['simulator']['post_support'])
160
- end
161
- return {:command => command, :pre_support => pre_support, :post_support => post_support}
141
+ command = if $cfg['simulator']['path'].nil?
142
+ ''
143
+ else
144
+ (tackit($cfg['simulator']['path']) + ' ')
145
+ end
146
+ pre_support = if $cfg['simulator']['pre_support'].nil?
147
+ ''
148
+ else
149
+ squash('', $cfg['simulator']['pre_support'])
150
+ end
151
+ post_support = if $cfg['simulator']['post_support'].nil?
152
+ ''
153
+ else
154
+ squash('', $cfg['simulator']['post_support'])
155
+ end
156
+
157
+ { :command => command, :pre_support => pre_support, :post_support => post_support }
158
+ end
159
+
160
+ def run_astyle(style_what)
161
+ report "Styling C Code..."
162
+ command = "AStyle " \
163
+ "--style=allman --indent=spaces=4 --indent-switches --indent-preproc-define --indent-preproc-block " \
164
+ "--pad-oper --pad-comma --unpad-paren --pad-header " \
165
+ "--align-pointer=type --align-reference=name " \
166
+ "--add-brackets --mode=c --suffix=none " \
167
+ "#{style_what}"
168
+ execute(command, false)
169
+ report "Styling C:PASS"
162
170
  end
163
171
 
164
- def execute(command_string, ok_to_fail=false)
172
+ def execute(command_string, ok_to_fail = false)
165
173
  report command_string if $verbose
166
174
  output = `#{command_string}`.chomp
167
- report(output) if ($verbose && !output.nil? && (output.length > 0))
168
- if (($?.exitstatus != 0) && !ok_to_fail)
169
- raise "Command failed. (Returned #{$?.exitstatus})"
170
- end
171
- return output
175
+ report(output) if $verbose && !output.nil? && !output.empty?
176
+ raise "Command failed. (Returned #{$?.exitstatus})" if !$?.exitstatus.zero? && !ok_to_fail
177
+ output
172
178
  end
173
179
 
174
180
  def report_summary
175
181
  summary = UnityTestSummary.new
176
- summary.set_root_path(UNITY_ROOT)
182
+ summary.root = UNITY_ROOT
177
183
  results_glob = "#{$cfg['compiler']['build_path']}*.test*"
178
- results_glob.gsub!(/\\/, '/')
184
+ results_glob.tr!('\\', '/')
179
185
  results = Dir[results_glob]
180
- summary.set_targets(results)
186
+ summary.targets = results
181
187
  report summary.run
182
188
  end
183
189
 
@@ -187,16 +193,16 @@ module RakefileHelpers
187
193
  # Tack on TEST define for compiling unit tests
188
194
  load_configuration($cfg_file)
189
195
  test_defines = ['TEST']
190
- $cfg['compiler']['defines']['items'] = [] if $cfg['compiler']['defines']['items'].nil?
196
+ $cfg['compiler']['defines']['items'] ||= []
191
197
  $cfg['compiler']['defines']['items'] << 'TEST'
192
198
 
193
- include_dirs = get_local_include_dirs
199
+ include_dirs = local_include_dirs
194
200
 
195
201
  # Build and execute each unit test
196
202
  test_files.each do |test|
197
203
  obj_list = []
198
204
 
199
- if !$cfg['compiler']['aux_sources'].nil?
205
+ unless $cfg['compiler']['aux_sources'].nil?
200
206
  $cfg['compiler']['aux_sources'].each do |aux|
201
207
  obj_list << compile(aux, test_defines)
202
208
  end
@@ -206,25 +212,23 @@ module RakefileHelpers
206
212
  extract_headers(test).each do |header|
207
213
  # Compile corresponding source file if it exists
208
214
  src_file = find_source_file(header, include_dirs)
209
- if !src_file.nil?
210
- obj_list << compile(src_file, test_defines)
211
- end
215
+
216
+ obj_list << compile(src_file, test_defines) unless src_file.nil?
212
217
  end
213
218
 
214
219
  # Build the test runner (generate if configured to do so)
215
220
  test_base = File.basename(test, C_EXTENSION)
216
221
 
217
222
  runner_name = test_base + '_Runner.c'
218
- runner_path = ''
219
223
 
220
- if $cfg['compiler']['runner_path'].nil?
221
- runner_path = $cfg['compiler']['build_path'] + runner_name
222
- else
223
- runner_path = $cfg['compiler']['runner_path'] + runner_name
224
- end
224
+ runner_path = if $cfg['compiler']['runner_path'].nil?
225
+ $cfg['compiler']['build_path'] + runner_name
226
+ else
227
+ $cfg['compiler']['runner_path'] + runner_name
228
+ end
225
229
 
226
230
  options = $cfg[:unity]
227
- options[:use_param_tests] = (test =~ /parameterized/) ? true : false
231
+ options[:use_param_tests] = test =~ /parameterized/ ? true : false
228
232
  UnityTestRunnerGenerator.new(options).run(test, runner_path)
229
233
  obj_list << compile(runner_path, test_defines)
230
234
 
@@ -237,21 +241,20 @@ module RakefileHelpers
237
241
  # Execute unit test and generate results file
238
242
  simulator = build_simulator_fields
239
243
  executable = $cfg['linker']['bin_files']['destination'] + test_base + $cfg['linker']['bin_files']['extension']
240
- if simulator.nil?
241
- cmd_str = executable
242
- else
243
- cmd_str = "#{simulator[:command]} #{simulator[:pre_support]} #{executable} #{simulator[:post_support]}"
244
- end
244
+ cmd_str = if simulator.nil?
245
+ executable
246
+ else
247
+ "#{simulator[:command]} #{simulator[:pre_support]} #{executable} #{simulator[:post_support]}"
248
+ end
245
249
  output = execute(cmd_str)
246
250
  test_results = $cfg['compiler']['build_path'] + test_base
247
251
  if output.match(/OK$/m).nil?
248
252
  test_results += '.testfail'
249
253
  else
250
- report output if (!$verbose) #verbose already prints this line, as does a failure
254
+ report output unless $verbose # Verbose already prints this line, as does a failure
251
255
  test_results += '.testpass'
252
256
  end
253
257
  File.open(test_results, 'w') { |f| f.print output }
254
-
255
258
  end
256
259
  end
257
260
  end