ceedling 0.15.1 → 0.15.2

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