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,16 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__)) + "/../config/test_environment"
2
- require 'test_helper'
3
- require 'constructor'
4
- require 'hardmock'
5
-
6
-
7
- class Test::Unit::TestCase
8
- extend Behaviors
9
-
10
- def redefine_global_constant(constant, value)
11
- $config_options[constant.downcase.to_sym].replace(value)
12
- end
13
-
14
- end
15
-
16
-
@@ -1,191 +0,0 @@
1
- #============================================================
2
- # Author: John Theofanopoulos
3
- # A simple parser. Takes the output files generated during the build process and
4
- # extracts information relating to the tests.
5
- #
6
- # Notes:
7
- # To capture an output file under VS builds use the following:
8
- # devenv [build instructions] > Output.txt & type Output.txt
9
- #
10
- # To capture an output file under GCC/Linux builds use the following:
11
- # make | tee Output.txt
12
- #
13
- # To use this parser use the following command
14
- # ruby parseOutput.rb [options] [file]
15
- # options: -xml : produce a JUnit compatible XML file
16
- # file : file to scan for results
17
- #============================================================
18
-
19
-
20
- class ParseOutput
21
- # The following flag is set to true when a test is found or false otherwise.
22
- @testFlag
23
- @xmlOut
24
- @arrayList
25
- @totalTests
26
- @classIndex
27
-
28
- # Set the flag to indicate if there will be an XML output file or not
29
- def setXmlOutput()
30
- @xmlOut = true
31
- end
32
-
33
- # if write our output to XML
34
- def writeXmlOuput()
35
- output = File.open("report.xml", "w")
36
- output << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
37
- @arrayList.each do |item|
38
- output << item << "\n"
39
- end
40
- output << "</testsuite>\n"
41
- end
42
-
43
- # This function will try and determine when the suite is changed. This is
44
- # is the name that gets added to the classname parameter.
45
- def testSuiteVerify(testSuiteName)
46
- if @testFlag == false
47
- @testFlag = true;
48
- # Split the path name
49
- testName = testSuiteName.split("/")
50
- # Remove the extension
51
- baseName = testName[testName.size - 1].split(".")
52
- @testSuite = "test." + baseName[0]
53
- printf "New Test: %s\n", @testSuite
54
- end
55
- end
56
-
57
-
58
- # Test was flagged as having passed so format the output
59
- def testPassed(array)
60
- lastItem = array.length - 1
61
- testName = array[lastItem - 1]
62
- testSuiteVerify(array[@className])
63
- printf "%-40s PASS\n", testName
64
- if @xmlOut == true
65
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\"/>"
66
- end
67
- end
68
-
69
- # Test was flagged as being ingored so format the output
70
- def testIgnored(array)
71
- lastItem = array.length - 1
72
- testName = array[lastItem - 2]
73
- reason = array[lastItem].chomp
74
- testSuiteVerify(array[@className])
75
- printf "%-40s IGNORED\n", testName
76
- if @xmlOut == true
77
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\">"
78
- @arrayList.push " <skipped type=\"TEST IGNORED\"> " + reason + " </skipped>"
79
- @arrayList.push " </testcase>"
80
- end
81
- end
82
-
83
- # Test was flagged as having failed so format the line
84
- def testFailed(array)
85
- lastItem = array.length - 1
86
- testName = array[lastItem - 2]
87
- reason = array[lastItem].chomp + " at line: " + array[lastItem - 3]
88
- testSuiteVerify(array[@className])
89
- printf "%-40s FAILED\n", testName
90
- if @xmlOut == true
91
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\">"
92
- @arrayList.push " <failure type=\"ASSERT FAILED\"> " + reason + " </failure>"
93
- @arrayList.push " </testcase>"
94
- end
95
- end
96
-
97
-
98
- # Figure out what OS we are running on. For now we are assuming if it's not Windows it must
99
- # be Unix based.
100
- def detectOS()
101
- myOS = RUBY_PLATFORM.split("-")
102
- if myOS.size == 2
103
- if myOS[1] == "mingw32"
104
- @className = 1
105
- else
106
- @className = 0
107
- end
108
- else
109
- @className = 0
110
- end
111
-
112
- end
113
-
114
- # Main function used to parse the file that was captured.
115
- def process(name)
116
- @testFlag = false
117
- @arrayList = Array.new
118
-
119
- detectOS()
120
-
121
- puts "Parsing file: " + name
122
-
123
-
124
- testPass = 0
125
- testFail = 0
126
- testIgnore = 0
127
- puts ""
128
- puts "=================== RESULTS ====================="
129
- puts ""
130
- File.open(name).each do |line|
131
- # Typical test lines look like this:
132
- # <path>/<test_file>.c:36:test_tc1000_opsys:FAIL: Expected 1 Was 0
133
- # <path>/<test_file>.c:112:test_tc5004_initCanChannel:IGNORE: Not Yet Implemented
134
- # <path>/<test_file>.c:115:test_tc5100_initCanVoidPtrs:PASS
135
- #
136
- # where path is different on Unix vs Windows devices (Windows leads with a drive letter)
137
- lineArray = line.split(":")
138
- lineSize = lineArray.size
139
- # If we were able to split the line then we can look to see if any of our target words
140
- # were found. Case is important.
141
- if lineSize >= 4
142
- # Determine if this test passed
143
- if line.include? ":PASS"
144
- testPassed(lineArray)
145
- testPass += 1
146
- elsif line.include? ":FAIL:"
147
- testFailed(lineArray)
148
- testFail += 1
149
- elsif line.include? ":IGNORE:"
150
- testIgnored(lineArray)
151
- testIgnore += 1
152
- # If none of the keywords are found there are no more tests for this suite so clear
153
- # the test flag
154
- else
155
- @testFlag = false
156
- end
157
- else
158
- @testFlag = false
159
- end
160
- end
161
- puts ""
162
- puts "=================== SUMMARY ====================="
163
- puts ""
164
- puts "Tests Passed : " + testPass.to_s
165
- puts "Tests Failed : " + testFail.to_s
166
- puts "Tests Ignored : " + testIgnore.to_s
167
- @totalTests = testPass + testFail + testIgnore
168
- if @xmlOut == true
169
- heading = "<testsuite tests=\"" + @totalTests.to_s + "\" failures=\"" + testFail.to_s + "\"" + " skips=\"" + testIgnore.to_s + "\">"
170
- @arrayList.insert(0, heading)
171
- writeXmlOuput()
172
- end
173
-
174
- # return result
175
- end
176
-
177
- end
178
-
179
- # If the command line has no values in, used a default value of Output.txt
180
- parseMyFile = ParseOutput.new
181
-
182
- if ARGV.size >= 1
183
- ARGV.each do |a|
184
- if a == "-xml"
185
- parseMyFile.setXmlOutput();
186
- else
187
- parseMyFile.process(a)
188
- break
189
- end
190
- end
191
- end
@@ -1,191 +0,0 @@
1
- #============================================================
2
- # Author: John Theofanopoulos
3
- # A simple parser. Takes the output files generated during the build process and
4
- # extracts information relating to the tests.
5
- #
6
- # Notes:
7
- # To capture an output file under VS builds use the following:
8
- # devenv [build instructions] > Output.txt & type Output.txt
9
- #
10
- # To capture an output file under GCC/Linux builds use the following:
11
- # make | tee Output.txt
12
- #
13
- # To use this parser use the following command
14
- # ruby parseOutput.rb [options] [file]
15
- # options: -xml : produce a JUnit compatible XML file
16
- # file : file to scan for results
17
- #============================================================
18
-
19
-
20
- class ParseOutput
21
- # The following flag is set to true when a test is found or false otherwise.
22
- @testFlag
23
- @xmlOut
24
- @arrayList
25
- @totalTests
26
- @classIndex
27
-
28
- # Set the flag to indicate if there will be an XML output file or not
29
- def setXmlOutput()
30
- @xmlOut = true
31
- end
32
-
33
- # if write our output to XML
34
- def writeXmlOuput()
35
- output = File.open("report.xml", "w")
36
- output << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
37
- @arrayList.each do |item|
38
- output << item << "\n"
39
- end
40
- output << "</testsuite>\n"
41
- end
42
-
43
- # This function will try and determine when the suite is changed. This is
44
- # is the name that gets added to the classname parameter.
45
- def testSuiteVerify(testSuiteName)
46
- if @testFlag == false
47
- @testFlag = true;
48
- # Split the path name
49
- testName = testSuiteName.split("/")
50
- # Remove the extension
51
- baseName = testName[testName.size - 1].split(".")
52
- @testSuite = "test." + baseName[0]
53
- printf "New Test: %s\n", @testSuite
54
- end
55
- end
56
-
57
-
58
- # Test was flagged as having passed so format the output
59
- def testPassed(array)
60
- lastItem = array.length - 1
61
- testName = array[lastItem - 1]
62
- testSuiteVerify(array[@className])
63
- printf "%-40s PASS\n", testName
64
- if @xmlOut == true
65
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\"/>"
66
- end
67
- end
68
-
69
- # Test was flagged as being ingored so format the output
70
- def testIgnored(array)
71
- lastItem = array.length - 1
72
- testName = array[lastItem - 2]
73
- reason = array[lastItem].chomp
74
- testSuiteVerify(array[@className])
75
- printf "%-40s IGNORED\n", testName
76
- if @xmlOut == true
77
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\">"
78
- @arrayList.push " <skipped type=\"TEST IGNORED\"> " + reason + " </skipped>"
79
- @arrayList.push " </testcase>"
80
- end
81
- end
82
-
83
- # Test was flagged as having failed so format the line
84
- def testFailed(array)
85
- lastItem = array.length - 1
86
- testName = array[lastItem - 2]
87
- reason = array[lastItem].chomp + " at line: " + array[lastItem - 3]
88
- testSuiteVerify(array[@className])
89
- printf "%-40s FAILED\n", testName
90
- if @xmlOut == true
91
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\">"
92
- @arrayList.push " <failure type=\"ASSERT FAILED\"> " + reason + " </failure>"
93
- @arrayList.push " </testcase>"
94
- end
95
- end
96
-
97
-
98
- # Figure out what OS we are running on. For now we are assuming if it's not Windows it must
99
- # be Unix based.
100
- def detectOS()
101
- myOS = RUBY_PLATFORM.split("-")
102
- if myOS.size == 2
103
- if myOS[1] == "mingw32"
104
- @className = 1
105
- else
106
- @className = 0
107
- end
108
- else
109
- @className = 0
110
- end
111
-
112
- end
113
-
114
- # Main function used to parse the file that was captured.
115
- def process(name)
116
- @testFlag = false
117
- @arrayList = Array.new
118
-
119
- detectOS()
120
-
121
- puts "Parsing file: " + name
122
-
123
-
124
- testPass = 0
125
- testFail = 0
126
- testIgnore = 0
127
- puts ""
128
- puts "=================== RESULTS ====================="
129
- puts ""
130
- File.open(name).each do |line|
131
- # Typical test lines look like this:
132
- # <path>/<test_file>.c:36:test_tc1000_opsys:FAIL: Expected 1 Was 0
133
- # <path>/<test_file>.c:112:test_tc5004_initCanChannel:IGNORE: Not Yet Implemented
134
- # <path>/<test_file>.c:115:test_tc5100_initCanVoidPtrs:PASS
135
- #
136
- # where path is different on Unix vs Windows devices (Windows leads with a drive letter)
137
- lineArray = line.split(":")
138
- lineSize = lineArray.size
139
- # If we were able to split the line then we can look to see if any of our target words
140
- # were found. Case is important.
141
- if lineSize >= 4
142
- # Determine if this test passed
143
- if line.include? ":PASS"
144
- testPassed(lineArray)
145
- testPass += 1
146
- elsif line.include? ":FAIL:"
147
- testFailed(lineArray)
148
- testFail += 1
149
- elsif line.include? ":IGNORE:"
150
- testIgnored(lineArray)
151
- testIgnore += 1
152
- # If none of the keywords are found there are no more tests for this suite so clear
153
- # the test flag
154
- else
155
- @testFlag = false
156
- end
157
- else
158
- @testFlag = false
159
- end
160
- end
161
- puts ""
162
- puts "=================== SUMMARY ====================="
163
- puts ""
164
- puts "Tests Passed : " + testPass.to_s
165
- puts "Tests Failed : " + testFail.to_s
166
- puts "Tests Ignored : " + testIgnore.to_s
167
- @totalTests = testPass + testFail + testIgnore
168
- if @xmlOut == true
169
- heading = "<testsuite tests=\"" + @totalTests.to_s + "\" failures=\"" + testFail.to_s + "\"" + " skips=\"" + testIgnore.to_s + "\">"
170
- @arrayList.insert(0, heading)
171
- writeXmlOuput()
172
- end
173
-
174
- # return result
175
- end
176
-
177
- end
178
-
179
- # If the command line has no values in, used a default value of Output.txt
180
- parseMyFile = ParseOutput.new
181
-
182
- if ARGV.size >= 1
183
- ARGV.each do |a|
184
- if a == "-xml"
185
- parseMyFile.setXmlOutput();
186
- else
187
- parseMyFile.process(a)
188
- break
189
- end
190
- end
191
- end
@@ -1,191 +0,0 @@
1
- #============================================================
2
- # Author: John Theofanopoulos
3
- # A simple parser. Takes the output files generated during the build process and
4
- # extracts information relating to the tests.
5
- #
6
- # Notes:
7
- # To capture an output file under VS builds use the following:
8
- # devenv [build instructions] > Output.txt & type Output.txt
9
- #
10
- # To capture an output file under GCC/Linux builds use the following:
11
- # make | tee Output.txt
12
- #
13
- # To use this parser use the following command
14
- # ruby parseOutput.rb [options] [file]
15
- # options: -xml : produce a JUnit compatible XML file
16
- # file : file to scan for results
17
- #============================================================
18
-
19
-
20
- class ParseOutput
21
- # The following flag is set to true when a test is found or false otherwise.
22
- @testFlag
23
- @xmlOut
24
- @arrayList
25
- @totalTests
26
- @classIndex
27
-
28
- # Set the flag to indicate if there will be an XML output file or not
29
- def setXmlOutput()
30
- @xmlOut = true
31
- end
32
-
33
- # if write our output to XML
34
- def writeXmlOuput()
35
- output = File.open("report.xml", "w")
36
- output << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
37
- @arrayList.each do |item|
38
- output << item << "\n"
39
- end
40
- output << "</testsuite>\n"
41
- end
42
-
43
- # This function will try and determine when the suite is changed. This is
44
- # is the name that gets added to the classname parameter.
45
- def testSuiteVerify(testSuiteName)
46
- if @testFlag == false
47
- @testFlag = true;
48
- # Split the path name
49
- testName = testSuiteName.split("/")
50
- # Remove the extension
51
- baseName = testName[testName.size - 1].split(".")
52
- @testSuite = "test." + baseName[0]
53
- printf "New Test: %s\n", @testSuite
54
- end
55
- end
56
-
57
-
58
- # Test was flagged as having passed so format the output
59
- def testPassed(array)
60
- lastItem = array.length - 1
61
- testName = array[lastItem - 1]
62
- testSuiteVerify(array[@className])
63
- printf "%-40s PASS\n", testName
64
- if @xmlOut == true
65
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\"/>"
66
- end
67
- end
68
-
69
- # Test was flagged as being ingored so format the output
70
- def testIgnored(array)
71
- lastItem = array.length - 1
72
- testName = array[lastItem - 2]
73
- reason = array[lastItem].chomp
74
- testSuiteVerify(array[@className])
75
- printf "%-40s IGNORED\n", testName
76
- if @xmlOut == true
77
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\">"
78
- @arrayList.push " <skipped type=\"TEST IGNORED\"> " + reason + " </skipped>"
79
- @arrayList.push " </testcase>"
80
- end
81
- end
82
-
83
- # Test was flagged as having failed so format the line
84
- def testFailed(array)
85
- lastItem = array.length - 1
86
- testName = array[lastItem - 2]
87
- reason = array[lastItem].chomp + " at line: " + array[lastItem - 3]
88
- testSuiteVerify(array[@className])
89
- printf "%-40s FAILED\n", testName
90
- if @xmlOut == true
91
- @arrayList.push " <testcase classname=\"" + @testSuite + "\" name=\"" + testName + "\">"
92
- @arrayList.push " <failure type=\"ASSERT FAILED\"> " + reason + " </failure>"
93
- @arrayList.push " </testcase>"
94
- end
95
- end
96
-
97
-
98
- # Figure out what OS we are running on. For now we are assuming if it's not Windows it must
99
- # be Unix based.
100
- def detectOS()
101
- myOS = RUBY_PLATFORM.split("-")
102
- if myOS.size == 2
103
- if myOS[1] == "mingw32"
104
- @className = 1
105
- else
106
- @className = 0
107
- end
108
- else
109
- @className = 0
110
- end
111
-
112
- end
113
-
114
- # Main function used to parse the file that was captured.
115
- def process(name)
116
- @testFlag = false
117
- @arrayList = Array.new
118
-
119
- detectOS()
120
-
121
- puts "Parsing file: " + name
122
-
123
-
124
- testPass = 0
125
- testFail = 0
126
- testIgnore = 0
127
- puts ""
128
- puts "=================== RESULTS ====================="
129
- puts ""
130
- File.open(name).each do |line|
131
- # Typical test lines look like this:
132
- # <path>/<test_file>.c:36:test_tc1000_opsys:FAIL: Expected 1 Was 0
133
- # <path>/<test_file>.c:112:test_tc5004_initCanChannel:IGNORE: Not Yet Implemented
134
- # <path>/<test_file>.c:115:test_tc5100_initCanVoidPtrs:PASS
135
- #
136
- # where path is different on Unix vs Windows devices (Windows leads with a drive letter)
137
- lineArray = line.split(":")
138
- lineSize = lineArray.size
139
- # If we were able to split the line then we can look to see if any of our target words
140
- # were found. Case is important.
141
- if lineSize >= 4
142
- # Determine if this test passed
143
- if line.include? ":PASS"
144
- testPassed(lineArray)
145
- testPass += 1
146
- elsif line.include? ":FAIL:"
147
- testFailed(lineArray)
148
- testFail += 1
149
- elsif line.include? ":IGNORE:"
150
- testIgnored(lineArray)
151
- testIgnore += 1
152
- # If none of the keywords are found there are no more tests for this suite so clear
153
- # the test flag
154
- else
155
- @testFlag = false
156
- end
157
- else
158
- @testFlag = false
159
- end
160
- end
161
- puts ""
162
- puts "=================== SUMMARY ====================="
163
- puts ""
164
- puts "Tests Passed : " + testPass.to_s
165
- puts "Tests Failed : " + testFail.to_s
166
- puts "Tests Ignored : " + testIgnore.to_s
167
- @totalTests = testPass + testFail + testIgnore
168
- if @xmlOut == true
169
- heading = "<testsuite tests=\"" + @totalTests.to_s + "\" failures=\"" + testFail.to_s + "\"" + " skips=\"" + testIgnore.to_s + "\">"
170
- @arrayList.insert(0, heading)
171
- writeXmlOuput()
172
- end
173
-
174
- # return result
175
- end
176
-
177
- end
178
-
179
- # If the command line has no values in, used a default value of Output.txt
180
- parseMyFile = ParseOutput.new
181
-
182
- if ARGV.size >= 1
183
- ARGV.each do |a|
184
- if a == "-xml"
185
- parseMyFile.setXmlOutput();
186
- else
187
- parseMyFile.process(a)
188
- break
189
- end
190
- end
191
- end