ceedling 0.15.1 → 0.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +9 -13
  4. data/README.md +21 -3
  5. data/{rakefile.rb → Rakefile} +0 -0
  6. data/lib/ceedling/version.rb +4 -4
  7. data/lib/ceedling/version.rb.erb +1 -1
  8. data/release/version.info +1 -1
  9. data/vendor/c_exception/Gemfile +1 -1
  10. data/vendor/c_exception/Gemfile.lock +12 -0
  11. data/vendor/c_exception/{docs/license.txt → LICENSE.txt} +9 -9
  12. data/vendor/c_exception/README.md +146 -0
  13. data/vendor/c_exception/{rakefile.rb → Rakefile} +6 -5
  14. data/vendor/c_exception/lib/CException.c +9 -6
  15. data/vendor/c_exception/release/build.info +1 -1
  16. data/vendor/c_exception/release/version.info +1 -1
  17. data/vendor/c_exception/test/CExceptionConfig.h +2 -0
  18. data/vendor/c_exception/test/TestException.c +4 -1
  19. data/vendor/cmock/README.md +24 -0
  20. data/vendor/cmock/{rakefile.rb → Rakefile} +12 -12
  21. data/vendor/cmock/docs/CMock Summary.odt +0 -0
  22. data/vendor/cmock/docs/CMock Summary.pdf +0 -0
  23. data/vendor/cmock/docs/CMock_Summary.md +130 -111
  24. data/vendor/cmock/docs/license.txt +1 -1
  25. data/vendor/cmock/lib/cmock.rb +36 -12
  26. data/vendor/cmock/lib/cmock_config.rb +39 -36
  27. data/vendor/cmock/lib/cmock_generator.rb +33 -25
  28. data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +68 -0
  29. data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +18 -42
  30. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +2 -2
  31. data/vendor/cmock/lib/cmock_generator_utils.rb +39 -29
  32. data/vendor/cmock/lib/cmock_header_parser.rb +46 -39
  33. data/vendor/cmock/rakefile_helper.rb +38 -38
  34. data/vendor/cmock/src/cmock.c +20 -4
  35. data/vendor/cmock/src/cmock.h +6 -1
  36. data/vendor/cmock/src/cmock_internals.h +26 -3
  37. data/vendor/cmock/targets/clang_strict.yml +85 -0
  38. data/vendor/cmock/targets/gcc.yml +4 -2
  39. data/vendor/cmock/targets/gcc_64.yml +55 -0
  40. data/vendor/cmock/test/c/TestCMockC.c +3 -3
  41. data/vendor/cmock/test/c/TestCMockCDynamic.c +11 -11
  42. data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +4 -2
  43. data/vendor/cmock/test/c/TestCMockC_Runner.c +1 -1
  44. data/vendor/cmock/test/system/systest_generator.rb +38 -26
  45. data/vendor/cmock/test/system/test_compilation/const.h +8 -3
  46. data/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +92 -58
  47. data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +53 -48
  48. data/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +58 -56
  49. data/vendor/cmock/test/system/test_interactions/basic_expect_and_return.yml +19 -18
  50. data/vendor/cmock/test/system/test_interactions/expect_and_return_custom_types.yml +13 -13
  51. data/vendor/cmock/test/system/test_interactions/expect_and_return_treat_as.yml +20 -20
  52. data/vendor/cmock/test/system/test_interactions/expect_any_args.yml +238 -0
  53. data/vendor/cmock/test/system/test_interactions/fancy_pointer_handling.yml +36 -34
  54. data/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +24 -15
  55. data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_2.yml +11 -11
  56. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_and_expect_any_args.yml +235 -0
  57. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +22 -26
  58. data/vendor/cmock/test/system/test_interactions/stubs_with_callbacks.yml +31 -31
  59. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +141 -109
  60. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +82 -0
  61. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +17 -81
  62. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +10 -10
  63. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +47 -41
  64. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +290 -227
  65. data/vendor/unity/{rakefile.rb → Rakefile} +13 -6
  66. data/vendor/unity/auto/colour_prompt.rb +33 -12
  67. data/vendor/unity/auto/generate_test_runner.rb +67 -63
  68. data/vendor/unity/auto/parseOutput.rb +189 -0
  69. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_1}/makefile +41 -40
  70. data/vendor/unity/examples/example_1/readme.txt +5 -0
  71. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_1}/src/ProductionCode.c +24 -24
  72. data/vendor/{c_exception/vendor/unity/examples → unity/examples/example_1}/src/ProductionCode.h +3 -3
  73. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_1}/src/ProductionCode2.c +9 -9
  74. data/vendor/{c_exception/vendor/unity/examples → unity/examples/example_1}/src/ProductionCode2.h +2 -2
  75. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_1}/test/TestProductionCode.c +62 -62
  76. data/vendor/unity/examples/{test → example_1/test}/TestProductionCode2.c +31 -31
  77. data/vendor/unity/examples/{test/no_ruby → example_1/test/test_runners}/TestProductionCode2_Runner.c +46 -46
  78. data/vendor/unity/examples/{test/no_ruby → example_1/test/test_runners}/TestProductionCode_Runner.c +50 -50
  79. data/vendor/unity/examples/example_2/makefile +45 -0
  80. data/vendor/unity/examples/example_2/readme.txt +5 -0
  81. data/vendor/unity/examples/{src → example_2/src}/ProductionCode.c +24 -24
  82. data/vendor/unity/examples/{src → example_2/src}/ProductionCode.h +3 -3
  83. data/vendor/unity/examples/{src → example_2/src}/ProductionCode2.c +9 -9
  84. data/vendor/unity/examples/{src → example_2/src}/ProductionCode2.h +2 -2
  85. data/vendor/unity/examples/{test → example_2/test}/TestProductionCode.c +64 -62
  86. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_2}/test/TestProductionCode2.c +33 -31
  87. data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
  88. data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
  89. data/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
  90. data/vendor/unity/examples/{helper → example_3/helper}/UnityHelper.c +10 -10
  91. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_3}/helper/UnityHelper.h +12 -12
  92. data/vendor/unity/examples/{makefile → example_3/makefile} +41 -40
  93. data/vendor/unity/examples/{rakefile.rb → example_3/rakefile.rb} +44 -43
  94. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_3}/rakefile_helper.rb +256 -256
  95. data/vendor/{c_exception/vendor/unity/examples → unity/examples/example_3}/readme.txt +18 -17
  96. data/vendor/{c_exception/vendor/unity/examples → unity/examples/example_3}/src/ProductionCode.c +24 -24
  97. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_3}/src/ProductionCode.h +3 -3
  98. data/vendor/{c_exception/vendor/unity/examples → unity/examples/example_3}/src/ProductionCode2.c +9 -9
  99. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_3}/src/ProductionCode2.h +2 -2
  100. data/vendor/{c_exception/vendor/unity/targets/gcc_64.yml → unity/examples/example_3/target_gcc_32.yml} +46 -44
  101. data/vendor/{c_exception/vendor/unity/examples → unity/examples/example_3}/test/TestProductionCode.c +62 -62
  102. data/vendor/{c_exception/vendor/unity/examples → unity/examples/example_3}/test/TestProductionCode2.c +31 -31
  103. data/vendor/{c_exception/vendor/unity/examples → unity/examples/example_3}/test/no_ruby/TestProductionCode2_Runner.c +46 -46
  104. data/vendor/{cmock/vendor/unity/examples → unity/examples/example_3}/test/no_ruby/TestProductionCode_Runner.c +50 -50
  105. data/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
  106. data/vendor/unity/extras/fixture/src/unity_fixture.c +4 -1
  107. data/vendor/unity/extras/fixture/src/unity_fixture.h +17 -16
  108. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +7 -7
  109. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +17 -0
  110. data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +1 -0
  111. data/vendor/unity/makefile +6 -4
  112. data/vendor/unity/rakefile_helper.rb +36 -27
  113. data/vendor/unity/src/unity.c +180 -181
  114. data/vendor/unity/src/unity.h +64 -2
  115. data/vendor/unity/src/unity_internals.h +188 -102
  116. data/vendor/unity/targets/clang_strict.yml +83 -0
  117. data/vendor/unity/targets/gcc_32.yml +5 -0
  118. data/vendor/unity/targets/gcc_64.yml +5 -0
  119. data/vendor/{c_exception/vendor/unity/targets/gcc.yml → unity/targets/gcc_auto_limits.yml} +5 -2
  120. data/vendor/{cmock/vendor/unity/targets/gcc_64.yml → unity/targets/gcc_auto_sizeof.yml} +6 -3
  121. data/vendor/{cmock/vendor/unity/targets/gcc.yml → unity/targets/gcc_auto_stdint.yml} +4 -2
  122. data/vendor/unity/test/expectdata/testsample_cmd.c +57 -54
  123. data/vendor/unity/test/expectdata/testsample_def.c +53 -50
  124. data/vendor/unity/test/expectdata/testsample_mock_cmd.c +79 -76
  125. data/vendor/unity/test/expectdata/testsample_mock_def.c +75 -72
  126. data/vendor/unity/test/expectdata/testsample_mock_new1.c +88 -85
  127. data/vendor/unity/test/expectdata/testsample_mock_new2.c +88 -85
  128. data/vendor/unity/test/expectdata/testsample_mock_param.c +76 -73
  129. data/vendor/unity/test/expectdata/testsample_mock_run1.c +88 -85
  130. data/vendor/unity/test/expectdata/testsample_mock_run2.c +88 -85
  131. data/vendor/unity/test/expectdata/testsample_mock_yaml.c +89 -86
  132. data/vendor/unity/test/expectdata/testsample_new1.c +63 -60
  133. data/vendor/unity/test/expectdata/testsample_new2.c +66 -63
  134. data/vendor/unity/test/expectdata/testsample_param.c +54 -51
  135. data/vendor/unity/test/expectdata/testsample_run1.c +63 -60
  136. data/vendor/unity/test/expectdata/testsample_run2.c +66 -63
  137. data/vendor/unity/test/expectdata/testsample_yaml.c +67 -64
  138. data/vendor/unity/test/test_generate_test_runner.rb +66 -72
  139. data/vendor/unity/test/testunity.c +591 -111
  140. metadata +58 -195
  141. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +0 -94
  142. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +0 -39
  143. data/vendor/c_exception/vendor/unity/auto/generate_config.yml +0 -36
  144. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +0 -202
  145. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +0 -313
  146. data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +0 -23
  147. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +0 -139
  148. data/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  149. data/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  150. data/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +0 -217
  151. data/vendor/c_exception/vendor/unity/docs/license.txt +0 -31
  152. data/vendor/c_exception/vendor/unity/examples/helper/UnityHelper.c +0 -10
  153. data/vendor/c_exception/vendor/unity/examples/helper/UnityHelper.h +0 -12
  154. data/vendor/c_exception/vendor/unity/examples/makefile +0 -40
  155. data/vendor/c_exception/vendor/unity/examples/rakefile.rb +0 -32
  156. data/vendor/c_exception/vendor/unity/examples/rakefile_helper.rb +0 -256
  157. data/vendor/c_exception/vendor/unity/examples/test/no_ruby/TestProductionCode_Runner.c +0 -50
  158. data/vendor/c_exception/vendor/unity/extras/fixture/build/MakefileWorker.mk +0 -331
  159. data/vendor/c_exception/vendor/unity/extras/fixture/build/filterGcov.sh +0 -61
  160. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +0 -37
  161. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
  162. data/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +0 -9
  163. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +0 -381
  164. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +0 -81
  165. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -44
  166. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -16
  167. data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +0 -21
  168. data/vendor/c_exception/vendor/unity/extras/fixture/test/testunity_fixture.c +0 -39
  169. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -321
  170. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -40
  171. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -56
  172. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
  173. data/vendor/c_exception/vendor/unity/makefile +0 -35
  174. data/vendor/c_exception/vendor/unity/rakefile.rb +0 -59
  175. data/vendor/c_exception/vendor/unity/rakefile_helper.rb +0 -240
  176. data/vendor/c_exception/vendor/unity/release/build.info +0 -2
  177. data/vendor/c_exception/vendor/unity/release/version.info +0 -2
  178. data/vendor/c_exception/vendor/unity/src/unity.c +0 -979
  179. data/vendor/c_exception/vendor/unity/src/unity.h +0 -232
  180. data/vendor/c_exception/vendor/unity/src/unity_internals.h +0 -424
  181. data/vendor/c_exception/vendor/unity/targets/hitech_picc18.yml +0 -101
  182. data/vendor/c_exception/vendor/unity/targets/iar_arm_v4.yml +0 -89
  183. data/vendor/c_exception/vendor/unity/targets/iar_arm_v5.yml +0 -79
  184. data/vendor/c_exception/vendor/unity/targets/iar_arm_v5_3.yml +0 -79
  185. data/vendor/c_exception/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -93
  186. data/vendor/c_exception/vendor/unity/targets/iar_cortexm3_v5.yml +0 -83
  187. data/vendor/c_exception/vendor/unity/targets/iar_msp430.yml +0 -94
  188. data/vendor/c_exception/vendor/unity/targets/iar_sh2a_v6.yml +0 -85
  189. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +0 -54
  190. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +0 -50
  191. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -76
  192. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +0 -72
  193. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -85
  194. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -85
  195. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +0 -73
  196. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -85
  197. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -85
  198. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -86
  199. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +0 -60
  200. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +0 -63
  201. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +0 -51
  202. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +0 -60
  203. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +0 -63
  204. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +0 -64
  205. data/vendor/c_exception/vendor/unity/test/test_generate_test_runner.rb +0 -94
  206. data/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +0 -51
  207. data/vendor/c_exception/vendor/unity/test/testdata/sample.yml +0 -9
  208. data/vendor/c_exception/vendor/unity/test/testdata/testsample.c +0 -51
  209. data/vendor/c_exception/vendor/unity/test/testparameterized.c +0 -101
  210. data/vendor/c_exception/vendor/unity/test/testunity.c +0 -2024
  211. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  212. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  213. data/vendor/cmock/vendor/c_exception/docs/license.txt +0 -30
  214. data/vendor/cmock/vendor/c_exception/docs/readme.txt +0 -236
  215. data/vendor/cmock/vendor/c_exception/lib/CException.c +0 -39
  216. data/vendor/cmock/vendor/c_exception/lib/CException.h +0 -70
  217. data/vendor/cmock/vendor/c_exception/makefile +0 -24
  218. data/vendor/cmock/vendor/c_exception/rakefile.rb +0 -41
  219. data/vendor/cmock/vendor/c_exception/release/build.info +0 -2
  220. data/vendor/cmock/vendor/c_exception/release/version.info +0 -2
  221. data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +0 -27
  222. data/vendor/cmock/vendor/c_exception/test/TestException.c +0 -291
  223. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +0 -62
  224. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +0 -94
  225. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +0 -39
  226. data/vendor/cmock/vendor/unity/auto/generate_config.yml +0 -36
  227. data/vendor/cmock/vendor/unity/auto/generate_module.rb +0 -202
  228. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +0 -313
  229. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +0 -23
  230. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +0 -139
  231. data/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
  232. data/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
  233. data/vendor/cmock/vendor/unity/docs/Unity Summary.txt +0 -217
  234. data/vendor/cmock/vendor/unity/docs/license.txt +0 -31
  235. data/vendor/cmock/vendor/unity/examples/helper/UnityHelper.c +0 -10
  236. data/vendor/cmock/vendor/unity/examples/rakefile.rb +0 -32
  237. data/vendor/cmock/vendor/unity/examples/readme.txt +0 -18
  238. data/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode2_Runner.c +0 -46
  239. data/vendor/cmock/vendor/unity/extras/fixture/build/MakefileWorker.mk +0 -331
  240. data/vendor/cmock/vendor/unity/extras/fixture/build/filterGcov.sh +0 -61
  241. data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +0 -37
  242. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
  243. data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +0 -9
  244. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +0 -381
  245. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +0 -81
  246. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -44
  247. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -16
  248. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +0 -21
  249. data/vendor/cmock/vendor/unity/extras/fixture/test/testunity_fixture.c +0 -39
  250. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -321
  251. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -40
  252. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -56
  253. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
  254. data/vendor/cmock/vendor/unity/makefile +0 -35
  255. data/vendor/cmock/vendor/unity/rakefile.rb +0 -48
  256. data/vendor/cmock/vendor/unity/rakefile_helper.rb +0 -240
  257. data/vendor/cmock/vendor/unity/release/build.info +0 -2
  258. data/vendor/cmock/vendor/unity/release/version.info +0 -2
  259. data/vendor/cmock/vendor/unity/src/unity.c +0 -979
  260. data/vendor/cmock/vendor/unity/src/unity.h +0 -232
  261. data/vendor/cmock/vendor/unity/src/unity_internals.h +0 -424
  262. data/vendor/cmock/vendor/unity/targets/hitech_picc18.yml +0 -101
  263. data/vendor/cmock/vendor/unity/targets/iar_arm_v4.yml +0 -89
  264. data/vendor/cmock/vendor/unity/targets/iar_arm_v5.yml +0 -79
  265. data/vendor/cmock/vendor/unity/targets/iar_arm_v5_3.yml +0 -79
  266. data/vendor/cmock/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -93
  267. data/vendor/cmock/vendor/unity/targets/iar_cortexm3_v5.yml +0 -83
  268. data/vendor/cmock/vendor/unity/targets/iar_msp430.yml +0 -94
  269. data/vendor/cmock/vendor/unity/targets/iar_sh2a_v6.yml +0 -85
  270. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +0 -54
  271. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +0 -50
  272. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -76
  273. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +0 -72
  274. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -85
  275. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -85
  276. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +0 -73
  277. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -85
  278. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -85
  279. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -86
  280. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +0 -60
  281. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +0 -63
  282. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +0 -51
  283. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +0 -60
  284. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +0 -63
  285. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +0 -64
  286. data/vendor/cmock/vendor/unity/test/test_generate_test_runner.rb +0 -94
  287. data/vendor/cmock/vendor/unity/test/testdata/mocksample.c +0 -51
  288. data/vendor/cmock/vendor/unity/test/testdata/sample.yml +0 -9
  289. data/vendor/cmock/vendor/unity/test/testdata/testsample.c +0 -51
  290. data/vendor/cmock/vendor/unity/test/testparameterized.c +0 -101
  291. data/vendor/cmock/vendor/unity/test/testunity.c +0 -2024
  292. data/vendor/unity/Gemfile +0 -4
  293. data/vendor/unity/examples/helper/UnityHelper.h +0 -12
  294. data/vendor/unity/examples/rakefile_helper.rb +0 -256
  295. data/vendor/unity/examples/readme.txt +0 -18
@@ -2,7 +2,7 @@
2
2
  # Unity Project - A Test Framework for C
3
3
  # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
4
  # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
5
+ # ==========================================
6
6
 
7
7
  UNITY_ROOT = File.expand_path(File.dirname(__FILE__)) + '/'
8
8
 
@@ -24,8 +24,13 @@ task :prepare_for_tests => TEMP_DIRS
24
24
 
25
25
  include RakefileHelpers
26
26
 
27
- # Load default configuration, for now
28
- DEFAULT_CONFIG_FILE = 'gcc_32.yml'
27
+ # Load proper GCC as defult configuration
28
+ if 1.size == 8 # 8 bytes => 64-bits
29
+ DEFAULT_CONFIG_FILE = 'gcc_64.yml'
30
+ else # Assume 32-bit otherwise
31
+ DEFAULT_CONFIG_FILE = 'gcc_32.yml'
32
+ end
33
+
29
34
  configure_toolchain(DEFAULT_CONFIG_FILE)
30
35
 
31
36
  desc "Test unity with its own unit tests"
@@ -33,9 +38,11 @@ task :unit => [:prepare_for_tests] do
33
38
  run_tests get_unit_test_files
34
39
  end
35
40
 
36
- Rake::TestTask.new(:scripts) do |t|
37
- t.pattern = 'test/test_*.rb'
38
- t.verbose = true
41
+ desc "Test unity's helper scripts"
42
+ task :scripts => [:prepare_for_tests] do
43
+ Dir['test/test_*.rb'].each do |scriptfile|
44
+ require "./"+scriptfile
45
+ end
39
46
  end
40
47
 
41
48
  desc "Generate test summary"
@@ -2,7 +2,7 @@
2
2
  # Unity Project - A Test Framework for C
3
3
  # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
4
  # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
5
+ # ==========================================
6
6
 
7
7
  if RUBY_PLATFORM =~/(win|w)32$/
8
8
  begin
@@ -21,14 +21,14 @@ end
21
21
 
22
22
  class ColourCommandLine
23
23
  def initialize
24
- if RUBY_PLATFORM =~/(win|w)32$/
24
+ if RUBY_PLATFORM =~/(win|w)32$/
25
25
  get_std_handle = Win32API.new("kernel32", "GetStdHandle", ['L'], 'L')
26
26
  @set_console_txt_attrb =
27
- Win32API.new("kernel32","SetConsoleTextAttribute",['L','N'], 'I')
27
+ Win32API.new("kernel32","SetConsoleTextAttribute",['L','N'], 'I')
28
28
  @hout = get_std_handle.call(-11)
29
29
  end
30
30
  end
31
-
31
+
32
32
  def change_to(new_colour)
33
33
  if RUBY_PLATFORM =~/(win|w)32$/
34
34
  @set_console_txt_attrb.call(@hout,self.win32_colour(new_colour))
@@ -36,10 +36,10 @@ class ColourCommandLine
36
36
  "\033[30;#{posix_colour(new_colour)};22m"
37
37
  end
38
38
  end
39
-
39
+
40
40
  def win32_colour(colour)
41
41
  case colour
42
- when :black then 0
42
+ when :black then 0
43
43
  when :dark_blue then 1
44
44
  when :dark_green then 2
45
45
  when :dark_cyan then 3
@@ -59,22 +59,43 @@ class ColourCommandLine
59
59
  0
60
60
  end
61
61
  end
62
-
62
+
63
63
  def posix_colour(colour)
64
+ # ANSI Escape Codes - Foreground colors
65
+ # | Code | Color |
66
+ # | 39 | Default foreground color |
67
+ # | 30 | Black |
68
+ # | 31 | Red |
69
+ # | 32 | Green |
70
+ # | 33 | Yellow |
71
+ # | 34 | Blue |
72
+ # | 35 | Magenta |
73
+ # | 36 | Cyan |
74
+ # | 37 | Light gray |
75
+ # | 90 | Dark gray |
76
+ # | 91 | Light red |
77
+ # | 92 | Light green |
78
+ # | 93 | Light yellow |
79
+ # | 94 | Light blue |
80
+ # | 95 | Light magenta |
81
+ # | 96 | Light cyan |
82
+ # | 97 | White |
83
+
64
84
  case colour
65
- when :black then 30
85
+ when :black then 30
66
86
  when :red, :failure then 31
67
87
  when :green, :success then 32
68
88
  when :yellow then 33
69
89
  when :blue, :narrative then 34
70
90
  when :purple, :magenta then 35
71
91
  when :cyan, :output then 36
72
- when :white, :default_white, :default then 37
92
+ when :white, :default_white then 37
93
+ when :default then 39
73
94
  else
74
- 30
95
+ 39
75
96
  end
76
97
  end
77
-
98
+
78
99
  def out_c(mode, colour, str)
79
100
  case RUBY_PLATFORM
80
101
  when /(win|w)32$/
@@ -85,7 +106,7 @@ class ColourCommandLine
85
106
  else
86
107
  $stdout.puts("#{change_to(colour)}#{str}\033[0m") if mode == :puts
87
108
  $stdout.print("#{change_to(colour)}#{str}\033[0m") if mode == :print
88
- end
109
+ end
89
110
  end
90
111
  end # ColourCommandLine
91
112
 
@@ -2,8 +2,9 @@
2
2
  # Unity Project - A Test Framework for C
3
3
  # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
4
  # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
5
+ # ==========================================
6
6
 
7
+ $QUICK_RUBY_VERSION = RUBY_VERSION.split('.').inject(0){|vv,v| vv * 100 + v.to_i }
7
8
  File.expand_path(File.join(File.dirname(__FILE__),'colour_prompt'))
8
9
 
9
10
  class UnityTestRunnerGenerator
@@ -17,7 +18,7 @@ class UnityTestRunnerGenerator
17
18
  else raise "If you specify arguments, it should be a filename or a hash of options"
18
19
  end
19
20
  end
20
-
21
+
21
22
  def self.grab_config(config_file)
22
23
  options = { :includes => [], :plugins => [], :framework => :unity }
23
24
  unless (config_file.nil? or config_file.empty?)
@@ -33,46 +34,44 @@ class UnityTestRunnerGenerator
33
34
  tests = []
34
35
  testfile_includes = []
35
36
  used_mocks = []
36
-
37
+
37
38
  @options.merge!(options) unless options.nil?
38
39
  module_name = File.basename(input_file)
39
-
40
+
40
41
  #pull required data from source file
41
- File.open(input_file, 'r') do |input|
42
- tests = find_tests(input)
43
- testfile_includes = find_includes(input)
44
- used_mocks = find_mocks(testfile_includes)
45
- end
42
+ source = File.read(input_file)
43
+ source = source.force_encoding("ISO-8859-1").encode("utf-8", :replace => nil) if ($QUICK_RUBY_VERSION > 10900)
44
+ tests = find_tests(source)
45
+ testfile_includes = find_includes(source)
46
+ used_mocks = find_mocks(testfile_includes)
46
47
 
47
48
  #build runner file
48
- generate(input_file, output_file, tests, used_mocks)
49
-
49
+ generate(input_file, output_file, tests, used_mocks, testfile_includes)
50
+
50
51
  #determine which files were used to return them
51
52
  all_files_used = [input_file, output_file]
52
53
  all_files_used += testfile_includes.map {|filename| filename + '.c'} unless testfile_includes.empty?
53
54
  all_files_used += @options[:includes] unless @options[:includes].empty?
54
55
  return all_files_used.uniq
55
56
  end
56
-
57
- def generate(input_file, output_file, tests, used_mocks)
57
+
58
+ def generate(input_file, output_file, tests, used_mocks, testfile_includes)
58
59
  File.open(output_file, 'w') do |output|
59
- create_header(output, used_mocks)
60
+ create_header(output, used_mocks, testfile_includes)
60
61
  create_externs(output, tests, used_mocks)
61
62
  create_mock_management(output, used_mocks)
62
63
  create_suite_setup_and_teardown(output)
63
64
  create_reset(output, used_mocks)
64
- create_main(output, input_file, tests)
65
+ create_main(output, input_file, tests, used_mocks)
65
66
  end
66
67
  end
67
-
68
- def find_tests(input_file)
68
+
69
+ def find_tests(source)
69
70
  tests_raw = []
70
71
  tests_args = []
71
72
  tests_and_line_numbers = []
72
-
73
- input_file.rewind
74
- source_raw = input_file.read
75
- source_scrubbed = source_raw.gsub(/\/\/.*$/, '') # remove line comments
73
+
74
+ source_scrubbed = source.gsub(/\/\/.*$/, '') # remove line comments
76
75
  source_scrubbed = source_scrubbed.gsub(/\/\*.*?\*\//m, '') # remove block comments
77
76
  lines = source_scrubbed.split(/(^\s*\#.*$) # Treat preprocessor directives as a logical line
78
77
  | (;|\{|\}) /x) # Match ;, {, and } as end of lines
@@ -94,7 +93,7 @@ class UnityTestRunnerGenerator
94
93
  end
95
94
 
96
95
  #determine line numbers and create tests to run
97
- source_lines = source_raw.split("\n")
96
+ source_lines = source.split("\n")
98
97
  source_index = 0;
99
98
  tests_and_line_numbers.size.times do |i|
100
99
  source_lines[source_index..-1].each_with_index do |line, index|
@@ -105,34 +104,33 @@ class UnityTestRunnerGenerator
105
104
  end
106
105
  end
107
106
  end
108
-
107
+
109
108
  return tests_and_line_numbers
110
109
  end
111
110
 
112
- def find_includes(input_file)
113
- input_file.rewind
114
-
115
- #read in file
116
- source = input_file.read
117
-
111
+ def find_includes(source)
112
+
118
113
  #remove comments (block and line, in three steps to ensure correct precedence)
119
114
  source.gsub!(/\/\/(?:.+\/\*|\*(?:$|[^\/])).*$/, '') # remove line comments that comment out the start of blocks
120
- source.gsub!(/\/\*.*?\*\//m, '') # remove block comments
115
+ source.gsub!(/\/\*.*?\*\//m, '') # remove block comments
121
116
  source.gsub!(/\/\/.*$/, '') # remove line comments (all that remain)
122
-
117
+
123
118
  #parse out includes
124
- return source.scan(/^\s*#include\s+\"\s*(.+)\.[hH]\s*\"/).flatten
119
+ includes = source.scan(/^\s*#include\s+\"\s*(.+)\.[hH]\s*\"/).flatten
120
+ brackets_includes = source.scan(/^\s*#include\s+<\s*(.+)\s*>/).flatten
121
+ brackets_includes.each { |inc| includes << '<' + inc +'>' }
122
+ return includes
125
123
  end
126
-
124
+
127
125
  def find_mocks(includes)
128
126
  mock_headers = []
129
127
  includes.each do |include_file|
130
128
  mock_headers << File.basename(include_file) if (include_file =~ /^mock/i)
131
129
  end
132
- return mock_headers
130
+ return mock_headers
133
131
  end
134
-
135
- def create_header(output, mocks)
132
+
133
+ def create_header(output, mocks, testfile_includes)
136
134
  output.puts('/* AUTOGENERATED FILE. DO NOT EDIT. */')
137
135
  create_runtest(output, mocks)
138
136
  output.puts("\n//=======Automagically Detected Files To Include=====")
@@ -144,17 +142,22 @@ class UnityTestRunnerGenerator
144
142
  output.puts('#include <setjmp.h>')
145
143
  output.puts('#include <stdio.h>')
146
144
  output.puts('#include "CException.h"') if @options[:plugins].include?(:cexception)
145
+ testfile_includes.delete("unity").delete("cmock")
146
+ testrunner_includes = testfile_includes - mocks
147
+ testrunner_includes.each do |inc|
148
+ output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
149
+ end
147
150
  mocks.each do |mock|
148
151
  output.puts("#include \"#{mock.gsub('.h','')}.h\"")
149
152
  end
150
153
  if @options[:enforce_strict_ordering]
151
- output.puts('')
152
- output.puts('int GlobalExpectCount;')
153
- output.puts('int GlobalVerifyOrder;')
154
- output.puts('char* GlobalOrderError;')
154
+ output.puts('')
155
+ output.puts('int GlobalExpectCount;')
156
+ output.puts('int GlobalVerifyOrder;')
157
+ output.puts('char* GlobalOrderError;')
155
158
  end
156
159
  end
157
-
160
+
158
161
  def create_externs(output, tests, mocks)
159
162
  output.puts("\n//=======External Functions This Runner Calls=====")
160
163
  output.puts("extern void setUp(void);")
@@ -164,7 +167,7 @@ class UnityTestRunnerGenerator
164
167
  end
165
168
  output.puts('')
166
169
  end
167
-
170
+
168
171
  def create_mock_management(output, mocks)
169
172
  unless (mocks.empty?)
170
173
  output.puts("\n//=======Mock Management=====")
@@ -172,8 +175,8 @@ class UnityTestRunnerGenerator
172
175
  output.puts("{")
173
176
  if @options[:enforce_strict_ordering]
174
177
  output.puts(" GlobalExpectCount = 0;")
175
- output.puts(" GlobalVerifyOrder = 0;")
176
- output.puts(" GlobalOrderError = NULL;")
178
+ output.puts(" GlobalVerifyOrder = 0;")
179
+ output.puts(" GlobalOrderError = NULL;")
177
180
  end
178
181
  mocks.each do |mock|
179
182
  mock_clean = mock.gsub(/(?:-|\s+)/, "_")
@@ -198,7 +201,7 @@ class UnityTestRunnerGenerator
198
201
  output.puts("}\n")
199
202
  end
200
203
  end
201
-
204
+
202
205
  def create_suite_setup_and_teardown(output)
203
206
  unless (@options[:suite_setup].nil?)
204
207
  output.puts("\n//=======Suite Setup=====")
@@ -215,37 +218,37 @@ class UnityTestRunnerGenerator
215
218
  output.puts("}")
216
219
  end
217
220
  end
218
-
221
+
219
222
  def create_runtest(output, used_mocks)
220
223
  cexception = @options[:plugins].include? :cexception
221
224
  va_args1 = @options[:use_param_tests] ? ', ...' : ''
222
225
  va_args2 = @options[:use_param_tests] ? '__VA_ARGS__' : ''
223
226
  output.puts("\n//=======Test Runner Used To Run Each Test Below=====")
224
- output.puts("#define RUN_TEST_NO_ARGS") if @options[:use_param_tests]
227
+ output.puts("#define RUN_TEST_NO_ARGS") if @options[:use_param_tests]
225
228
  output.puts("#define RUN_TEST(TestFunc, TestLineNum#{va_args1}) \\")
226
229
  output.puts("{ \\")
227
230
  output.puts(" Unity.CurrentTestName = #TestFunc#{va_args2.empty? ? '' : " \"(\" ##{va_args2} \")\""}; \\")
228
231
  output.puts(" Unity.CurrentTestLineNumber = TestLineNum; \\")
229
232
  output.puts(" Unity.NumberOfTests++; \\")
233
+ output.puts(" CMock_Init(); \\") unless (used_mocks.empty?)
230
234
  output.puts(" if (TEST_PROTECT()) \\")
231
235
  output.puts(" { \\")
232
236
  output.puts(" CEXCEPTION_T e; \\") if cexception
233
237
  output.puts(" Try { \\") if cexception
234
- output.puts(" CMock_Init(); \\") unless (used_mocks.empty?)
235
238
  output.puts(" setUp(); \\")
236
239
  output.puts(" TestFunc(#{va_args2}); \\")
237
- output.puts(" CMock_Verify(); \\") unless (used_mocks.empty?)
238
240
  output.puts(" } Catch(e) { TEST_ASSERT_EQUAL_HEX32_MESSAGE(CEXCEPTION_NONE, e, \"Unhandled Exception!\"); } \\") if cexception
239
241
  output.puts(" } \\")
240
- output.puts(" CMock_Destroy(); \\") unless (used_mocks.empty?)
241
242
  output.puts(" if (TEST_PROTECT() && !TEST_IS_IGNORED) \\")
242
243
  output.puts(" { \\")
243
244
  output.puts(" tearDown(); \\")
245
+ output.puts(" CMock_Verify(); \\") unless (used_mocks.empty?)
244
246
  output.puts(" } \\")
247
+ output.puts(" CMock_Destroy(); \\") unless (used_mocks.empty?)
245
248
  output.puts(" UnityConcludeTest(); \\")
246
249
  output.puts("}\n")
247
250
  end
248
-
251
+
249
252
  def create_reset(output, used_mocks)
250
253
  output.puts("\n//=======Test Reset Option=====")
251
254
  output.puts("void resetTest()")
@@ -253,18 +256,18 @@ class UnityTestRunnerGenerator
253
256
  output.puts(" CMock_Verify();") unless (used_mocks.empty?)
254
257
  output.puts(" CMock_Destroy();") unless (used_mocks.empty?)
255
258
  output.puts(" tearDown();")
256
- output.puts(" CMock_Init();") unless (used_mocks.empty?)
259
+ output.puts(" CMock_Init();") unless (used_mocks.empty?)
257
260
  output.puts(" setUp();")
258
261
  output.puts("}")
259
262
  end
260
-
261
- def create_main(output, filename, tests)
263
+
264
+ def create_main(output, filename, tests, used_mocks)
262
265
  output.puts("\n\n//=======MAIN=====")
263
266
  output.puts("int main(void)")
264
267
  output.puts("{")
265
268
  output.puts(" suite_setup();") unless @options[:suite_setup].nil?
266
- output.puts(" Unity.TestFile = \"#{filename}\";")
267
269
  output.puts(" UnityBegin();")
270
+ output.puts(" Unity.TestFile = \"#{filename}\";")
268
271
  if (@options[:use_param_tests])
269
272
  tests.each do |test|
270
273
  if ((test[:args].nil?) or (test[:args].empty?))
@@ -277,6 +280,7 @@ class UnityTestRunnerGenerator
277
280
  tests.each { |test| output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]});") }
278
281
  end
279
282
  output.puts()
283
+ output.puts(" CMock_Guts_MemFreeFinal();") unless used_mocks.empty?
280
284
  output.puts(" return #{@options[:suite_teardown].nil? ? "" : "suite_teardown"}(UnityEnd());")
281
285
  output.puts("}")
282
286
  end
@@ -286,18 +290,18 @@ end
286
290
  if ($0 == __FILE__)
287
291
  options = { :includes => [] }
288
292
  yaml_file = nil
289
-
293
+
290
294
  #parse out all the options first
291
- ARGV.reject! do |arg|
295
+ ARGV.reject! do |arg|
292
296
  case(arg)
293
- when '-cexception'
297
+ when '-cexception'
294
298
  options[:plugins] = [:cexception]; true
295
299
  when /\.*\.yml/
296
300
  options = UnityTestRunnerGenerator.grab_config(arg); true
297
301
  else false
298
302
  end
299
- end
300
-
303
+ end
304
+
301
305
  #make sure there is at least one parameter left (the input file)
302
306
  if !ARGV[0]
303
307
  puts ["usage: ruby #{__FILE__} (yaml) (options) input_test_file output_test_runner (includes)",
@@ -305,12 +309,12 @@ if ($0 == __FILE__)
305
309
  " -cexception - include cexception support"].join("\n")
306
310
  exit 1
307
311
  end
308
-
312
+
309
313
  #create the default test runner name if not specified
310
314
  ARGV[1] = ARGV[0].gsub(".c","_Runner.c") if (!ARGV[1])
311
-
315
+
312
316
  #everything else is an include file
313
317
  options[:includes] ||= (ARGV.slice(2..-1).flatten.compact) if (ARGV.size > 2)
314
-
318
+
315
319
  UnityTestRunnerGenerator.new(options).run(ARGV[0], ARGV[1])
316
320
  end
@@ -0,0 +1,189 @@
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
+ end
109
+
110
+ end
111
+
112
+ # Main function used to parse the file that was captured.
113
+ def process(name)
114
+ @testFlag = false
115
+ @arrayList = Array.new
116
+
117
+ detectOS()
118
+
119
+ puts "Parsing file: " + name
120
+
121
+
122
+ testPass = 0
123
+ testFail = 0
124
+ testIgnore = 0
125
+ puts ""
126
+ puts "=================== RESULTS ====================="
127
+ puts ""
128
+ File.open(name).each do |line|
129
+ # Typical test lines look like this:
130
+ # <path>/<test_file>.c:36:test_tc1000_opsys:FAIL: Expected 1 Was 0
131
+ # <path>/<test_file>.c:112:test_tc5004_initCanChannel:IGNORE: Not Yet Implemented
132
+ # <path>/<test_file>.c:115:test_tc5100_initCanVoidPtrs:PASS
133
+ #
134
+ # where path is different on Unix vs Windows devices (Windows leads with a drive letter)
135
+ lineArray = line.split(":")
136
+ lineSize = lineArray.size
137
+ # If we were able to split the line then we can look to see if any of our target words
138
+ # were found. Case is important.
139
+ if lineSize >= 4
140
+ # Determine if this test passed
141
+ if line.include? ":PASS"
142
+ testPassed(lineArray)
143
+ testPass += 1
144
+ elsif line.include? ":FAIL:"
145
+ testFailed(lineArray)
146
+ testFail += 1
147
+ elsif line.include? ":IGNORE:"
148
+ testIgnored(lineArray)
149
+ testIgnore += 1
150
+ # If none of the keywords are found there are no more tests for this suite so clear
151
+ # the test flag
152
+ else
153
+ @testFlag = false
154
+ end
155
+ else
156
+ @testFlag = false
157
+ end
158
+ end
159
+ puts ""
160
+ puts "=================== SUMMARY ====================="
161
+ puts ""
162
+ puts "Tests Passed : " + testPass.to_s
163
+ puts "Tests Failed : " + testFail.to_s
164
+ puts "Tests Ignored : " + testIgnore.to_s
165
+ @totalTests = testPass + testFail + testIgnore
166
+ if @xmlOut == true
167
+ heading = "<testsuite tests=\"" + @totalTests.to_s + "\" failures=\"" + testFail.to_s + "\"" + " skips=\"" + testIgnore.to_s + "\">"
168
+ @arrayList.insert(0, heading)
169
+ writeXmlOuput()
170
+ end
171
+
172
+ # return result
173
+ end
174
+
175
+ end
176
+
177
+ # If the command line has no values in, used a default value of Output.txt
178
+ parseMyFile = ParseOutput.new
179
+
180
+ if ARGV.size >= 1
181
+ ARGV.each do |a|
182
+ if a == "-xml"
183
+ parseMyFile.setXmlOutput();
184
+ else
185
+ parseMyFile.process(a)
186
+ break
187
+ end
188
+ end
189
+ end