ceedling 0.25.0 → 0.27.0

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