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,9 +2,10 @@
2
2
  # CMock Project - Automatic Mock Generation 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
  $ThisIsOnlyATest = true
8
+ $QUICK_RUBY_VERSION = RUBY_VERSION.split('.').inject(0){|vv,v| vv * 100 + v.to_i }
8
9
 
9
10
  require File.expand_path(File.dirname(__FILE__)) + "/../test_helper"
10
11
  require 'cmock_header_parser'
@@ -14,7 +15,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
14
15
  def setup
15
16
  create_mocks :config
16
17
  @test_name = 'test_file.h'
17
- @config.expect.strippables.returns(['(?:__attribute__\s*\(+.*?\)+)'])
18
+ @config.expect.strippables.returns(["STRIPPABLE"])
18
19
  @config.expect.attributes.returns(['__ramfunc', 'funky_attrib', 'SQLITE_API'])
19
20
  @config.expect.c_calling_conventions.returns(['__stdcall'])
20
21
  @config.expect.treat_as_void.returns(['MY_FUNKY_VOID'])
@@ -22,37 +23,36 @@ class CMockHeaderParserTest < Test::Unit::TestCase
22
23
  @config.expect.when_no_prototypes.returns(:error)
23
24
  @config.expect.verbosity.returns(1)
24
25
  @config.expect.treat_externs.returns(:exclude)
25
-
26
+
26
27
  @parser = CMockHeaderParser.new(@config)
27
28
  end
28
29
 
29
30
  def teardown
30
31
  end
31
-
32
+
32
33
  should "create and initialize variables to defaults appropriately" do
33
34
  assert_equal([], @parser.funcs)
34
35
  assert_equal(['const', '__ramfunc', 'funky_attrib', 'SQLITE_API'], @parser.c_attributes)
35
36
  assert_equal(['void','MY_FUNKY_VOID'], @parser.treat_as_void)
36
37
  end
37
-
38
+
38
39
  should "strip out line comments" do
39
- source =
40
+ source =
40
41
  " abcd;\n" +
41
42
  "// hello;\n" +
42
43
  "who // is you\n"
43
-
44
+
44
45
  expected =
45
46
  [
46
47
  "abcd",
47
48
  "who"
48
49
  ]
49
-
50
+
50
51
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
51
52
  end
52
-
53
-
53
+
54
54
  should "remove block comments" do
55
- source =
55
+ source =
56
56
  " no_comments;\n" +
57
57
  "// basic_line_comment;\n" +
58
58
  "/* basic_block_comment;*/\n" +
@@ -71,7 +71,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
71
71
  "/*/\n" +
72
72
  "shown_because_line_above_ended_comment_this_time;\n" +
73
73
  "//*/\n"
74
-
74
+
75
75
  expected =
76
76
  [
77
77
  "no_comments",
@@ -80,13 +80,32 @@ class CMockHeaderParserTest < Test::Unit::TestCase
80
80
  "shown_because_block_comment_invalid_from_shorter_line_comment",
81
81
  "shown_because_line_above_ended_comment_this_time"
82
82
  ]
83
-
83
+
84
84
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
85
85
  end
86
-
87
-
86
+
87
+ should "remove strippables from the beginning or end of function declarations" do
88
+ source =
89
+ "void* my_calloc(size_t, size_t) STRIPPABLE;\n" +
90
+ "void\n" +
91
+ " my_realloc(void*, size_t) STRIPPABLE;\n" +
92
+ "extern int\n" +
93
+ " my_printf (void *my_object, const char *my_format, ...)\n" +
94
+ " STRIPPABLE;\n" +
95
+ " void STRIPPABLE universal_handler ();\n"
96
+
97
+ expected =
98
+ [
99
+ "void* my_calloc(size_t, size_t)",
100
+ "void my_realloc(void*, size_t)",
101
+ "void universal_handler()"
102
+ ]
103
+
104
+ assert_equal(expected, @parser.import_source(source))
105
+ end
106
+
88
107
  should "remove gcc's function __attribute__'s" do
89
- source =
108
+ source =
90
109
  "void* my_calloc(size_t, size_t) __attribute__((alloc_size(1,2)));\n" +
91
110
  "void\n" +
92
111
  " my_realloc(void*, size_t) __attribute__((alloc_size(2)));\n" +
@@ -94,25 +113,25 @@ class CMockHeaderParserTest < Test::Unit::TestCase
94
113
  " my_printf (void *my_object, const char *my_format, ...)\n" +
95
114
  " __attribute__ ((format (printf, 2, 3)));\n" +
96
115
  " void __attribute__ ((interrupt)) universal_handler ();\n"
97
-
98
- expected =
116
+
117
+ expected =
99
118
  [
100
119
  "void* my_calloc(size_t, size_t)",
101
120
  "void my_realloc(void*, size_t)",
102
121
  "void universal_handler()"
103
122
  ]
104
-
123
+
105
124
  assert_equal(expected, @parser.import_source(source))
106
125
  end
107
-
126
+
108
127
  should "remove preprocessor directives" do
109
- source =
128
+ source =
110
129
  "#when stuff_happens\n" +
111
130
  "#ifdef _TEST\n" +
112
131
  "#pragma stack_switch"
113
-
132
+
114
133
  expected = []
115
-
134
+
116
135
  assert_equal(expected, @parser.import_source(source))
117
136
  end
118
137
 
@@ -125,47 +144,47 @@ class CMockHeaderParserTest < Test::Unit::TestCase
125
144
  " nop\n" +
126
145
  "# pragma endasm \n" +
127
146
  "foo"
128
-
147
+
129
148
  expected = ["foo"]
130
-
149
+
131
150
  assert_equal(expected, @parser.import_source(source))
132
151
  end
133
-
134
-
152
+
153
+
135
154
  should "smush lines together that contain continuation characters" do
136
- source =
155
+ source =
137
156
  "hoo hah \\\n" +
138
157
  "when \\ \n"
139
-
158
+
140
159
  expected =
141
160
  [
142
161
  "hoo hah when"
143
162
  ]
144
-
163
+
145
164
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
146
165
  end
147
-
148
-
166
+
167
+
149
168
  should "remove C macro definitions" do
150
- source =
169
+ source =
151
170
  "#define this is the first line\\\n" +
152
171
  "and the second\\\n" +
153
172
  "and the third that should be removed\n" +
154
173
  "but I'm here\n"
155
-
174
+
156
175
  expected = ["but I'm here"]
157
-
176
+
158
177
  assert_equal(expected, @parser.import_source(source))
159
178
  end
160
-
161
-
179
+
180
+
162
181
  should "remove typedef statements" do
163
- source =
182
+ source =
164
183
  "typedef uint32 (unsigned int);\n" +
165
184
  "const typedef int INT;\n" +
166
185
  "int notatypedef;\n" +
167
186
  "int typedef_isnt_me;\n" +
168
- " typedef who cares what really comes here \\\n" + # exercise multiline typedef
187
+ " typedef who cares what really comes here \n" + # exercise multiline typedef
169
188
  " continuation;\n" +
170
189
  "this should remain!;\n" +
171
190
  "typedef blah bleh;\n" +
@@ -181,20 +200,20 @@ class CMockHeaderParserTest < Test::Unit::TestCase
181
200
  " char_ptr COMMAND;\n" +
182
201
  " int_32 (*SHELL_FUNC)(int_32 argc);\n" +
183
202
  "};\n"
184
-
203
+
185
204
  expected =
186
205
  [
187
206
  "int notatypedef",
188
207
  "int typedef_isnt_me",
189
208
  "this should remain!"
190
209
  ]
191
-
210
+
192
211
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
193
212
  end
194
213
 
195
214
 
196
215
  should "remove enum statements" do
197
- source =
216
+ source =
198
217
  "enum _NamedEnum {\n" +
199
218
  " THING1 = (0x0001),\n" +
200
219
  " THING2 = (0x0001 << 5),\n" +
@@ -206,13 +225,13 @@ class CMockHeaderParserTest < Test::Unit::TestCase
206
225
  " THING2,\n" +
207
226
  "} Thinger;\n" +
208
227
  "or me!!\n"
209
-
228
+
210
229
  assert_equal(["don't delete me!! or me!!"], @parser.import_source(source).map!{|s|s.strip})
211
230
  end
212
231
 
213
232
 
214
233
  should "remove union statements" do
215
- source =
234
+ source =
216
235
  "union _NamedDoohicky {\n" +
217
236
  " unsigned int a;\n" +
218
237
  " char b;\n" +
@@ -224,13 +243,13 @@ class CMockHeaderParserTest < Test::Unit::TestCase
224
243
  " char b;\n" +
225
244
  "} Whatever;\n" +
226
245
  "me too!!\n"
227
-
246
+
228
247
  assert_equal(["I want to live!! me too!!"], @parser.import_source(source).map!{|s|s.strip})
229
248
  end
230
249
 
231
250
 
232
251
  should "remove struct statements" do
233
- source =
252
+ source =
234
253
  "struct _NamedStruct1 {\n" +
235
254
  " unsigned int a;\n" +
236
255
  " signed long int b;\n" +
@@ -247,12 +266,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
247
266
  "}Thinger;\n" +
248
267
  "I want to live!!\n"
249
268
 
250
- assert_equal(["void foo(void)", "struct THINGER foo(void)", "I want to live!!"],
269
+ assert_equal(["void foo(void)", "struct THINGER foo(void)", "I want to live!!"],
251
270
  @parser.import_source(source).map!{|s|s.strip})
252
271
  end
253
-
272
+
254
273
  should "remove externed and inline functions" do
255
- source =
274
+ source =
256
275
  " extern uint32 foobar(unsigned int);\n" +
257
276
  "uint32 extern_name_func(unsigned int);\n" +
258
277
  "uint32 funcinline(unsigned int);\n" +
@@ -260,42 +279,61 @@ class CMockHeaderParserTest < Test::Unit::TestCase
260
279
  "inline void bar(unsigned int);\n" +
261
280
  "extern\n" +
262
281
  "void kinda_ugly_on_the_next_line(unsigned int);\n"
263
-
282
+
264
283
  expected =
265
284
  [
266
285
  "uint32 extern_name_func(unsigned int)",
267
286
  "uint32 funcinline(unsigned int)"
268
287
  ]
269
-
288
+
289
+ assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
290
+ end
291
+
292
+ should "remove function definitions but keep function declarations" do
293
+ source =
294
+ "uint32 func_with_decl_a(unsigned int);\n" +
295
+ "uint32 func_with_decl_a(unsigned int a) { return a; }\n" +
296
+ "uint32 func_with_decl_b(unsigned int);\n" +
297
+ "uint32 func_with_decl_b(unsigned int)\n" +
298
+ "{\n" +
299
+ " bar(unsigned int);\n" +
300
+ "}\n"
301
+
302
+ expected =
303
+ [
304
+ "uint32 func_with_decl_a(unsigned int)",
305
+ "uint32 func_with_decl_b(unsigned int)"
306
+ ]
307
+
270
308
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
271
309
  end
272
-
310
+
273
311
  should "remove a fully defined inline function" do
274
- source =
312
+ source =
275
313
  "inline void foo(unsigned int a) { oranges = a; }\n" +
276
314
  "inline void bar(unsigned int a) { apples = a; };\n" +
277
315
  "inline void bar(unsigned int a)\n" +
278
316
  "{" +
279
317
  " bananas = a;\n" +
280
318
  "}"
281
-
319
+
282
320
  # ensure it's expected type of exception
283
321
  assert_raise RuntimeError do
284
322
  @parser.parse("module", source)
285
323
  end
286
324
 
287
325
  assert_equal([], @parser.funcs)
288
-
326
+
289
327
  # verify exception message
290
328
  begin
291
329
  @parser.parse("module", source)
292
330
  rescue RuntimeError => e
293
331
  assert_equal("ERROR: No function prototypes found!", e.message)
294
- end
332
+ end
295
333
  end
296
-
334
+
297
335
  should "remove just inline functions if externs to be included" do
298
- source =
336
+ source =
299
337
  " extern uint32 foobar(unsigned int);\n" +
300
338
  "uint32 extern_name_func(unsigned int);\n" +
301
339
  "uint32 funcinline(unsigned int);\n" +
@@ -303,7 +341,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
303
341
  "inline void bar(unsigned int);\n" +
304
342
  "extern\n" +
305
343
  "void kinda_ugly_on_the_next_line(unsigned int);\n"
306
-
344
+
307
345
  expected =
308
346
  [ "extern uint32 foobar(unsigned int)",
309
347
  "uint32 extern_name_func(unsigned int)",
@@ -311,12 +349,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
311
349
  "extern void bar(unsigned int)",
312
350
  "extern void kinda_ugly_on_the_next_line(unsigned int)"
313
351
  ]
314
-
352
+
315
353
  @parser.treat_externs = :include
316
354
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
317
355
  end
318
-
319
-
356
+
357
+
320
358
  should "remove defines" do
321
359
  source =
322
360
  "#define whatever you feel like defining\n" +
@@ -324,37 +362,37 @@ class CMockHeaderParserTest < Test::Unit::TestCase
324
362
  "#DEFINE I JUST DON'T CARE\n" +
325
363
  "#deFINE\n" +
326
364
  "#define get_foo() \\\n ((Thing)foo.bar)" # exercise multiline define
327
-
365
+
328
366
  expected =
329
367
  [
330
368
  "void hello(void)",
331
369
  ]
332
-
370
+
333
371
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
334
372
  end
335
-
336
-
373
+
374
+
337
375
  should "remove keywords that would keep things from going smoothly in the future" do
338
376
  source =
339
377
  "const int TheMatrix(register int Trinity, unsigned int *restrict Neo)"
340
-
378
+
341
379
  expected =
342
380
  [
343
381
  "const int TheMatrix(int Trinity, unsigned int * Neo)",
344
382
  ]
345
-
383
+
346
384
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
347
385
  end
348
386
 
349
387
 
350
388
  # some code actually typedef's void even though it's not ANSI C and is, frankly, weird
351
389
  # since cmock treats void specially, we can't let void be obfuscated
352
- should "handle odd case of typedef'd void returned" do
390
+ should "handle odd case of typedef'd void returned" do
353
391
  source = "MY_FUNKY_VOID FunkyVoidReturned(int a)"
354
392
  expected = { :var_arg=>nil,
355
393
  :name=>"FunkyVoidReturned",
356
- :return=>{ :type => "void",
357
- :name => 'cmock_to_return',
394
+ :return=>{ :type => "void",
395
+ :name => 'cmock_to_return',
358
396
  :ptr? => false,
359
397
  :const? => false,
360
398
  :str => "void cmock_to_return",
@@ -367,13 +405,13 @@ class CMockHeaderParserTest < Test::Unit::TestCase
367
405
  :args_call=>"a"}
368
406
  assert_equal(expected, @parser.parse_declaration(source))
369
407
  end
370
-
371
- should "handle odd case of typedef'd void as arg" do
408
+
409
+ should "handle odd case of typedef'd void as arg" do
372
410
  source = "int FunkyVoidAsArg(MY_FUNKY_VOID)"
373
411
  expected = { :var_arg=>nil,
374
412
  :name=>"FunkyVoidAsArg",
375
- :return=>{ :type => "int",
376
- :name => 'cmock_to_return',
413
+ :return=>{ :type => "int",
414
+ :name => 'cmock_to_return',
377
415
  :ptr? => false,
378
416
  :const? => false,
379
417
  :str => "int cmock_to_return",
@@ -386,13 +424,13 @@ class CMockHeaderParserTest < Test::Unit::TestCase
386
424
  :args_call=>"" }
387
425
  assert_equal(expected, @parser.parse_declaration(source))
388
426
  end
389
-
390
- should "handle odd case of typedef'd void as arg pointer" do
427
+
428
+ should "handle odd case of typedef'd void as arg pointer" do
391
429
  source = "char FunkyVoidPointer(MY_FUNKY_VOID* bluh)"
392
430
  expected = { :var_arg=>nil,
393
431
  :name=>"FunkyVoidPointer",
394
- :return=>{ :type => "char",
395
- :name => 'cmock_to_return',
432
+ :return=>{ :type => "char",
433
+ :name => 'cmock_to_return',
396
434
  :ptr? => false,
397
435
  :const? => false,
398
436
  :str => "char cmock_to_return",
@@ -403,11 +441,11 @@ class CMockHeaderParserTest < Test::Unit::TestCase
403
441
  :args=>[{:type=>"MY_FUNKY_VOID*", :name=>"bluh", :ptr? => true, :const? => false}],
404
442
  :args_string=>"MY_FUNKY_VOID* bluh",
405
443
  :args_call=>"bluh" }
406
- assert_equal(expected, @parser.parse_declaration(source))
444
+ assert_equal(expected, @parser.parse_declaration(source))
407
445
  end
408
446
 
409
447
 
410
- should "strip default values from function parameter lists" do
448
+ should "strip default values from function parameter lists" do
411
449
  source =
412
450
  "void Foo(int a = 57, float b=37.52, char c= 'd', char* e=\"junk\");\n"
413
451
 
@@ -415,41 +453,41 @@ class CMockHeaderParserTest < Test::Unit::TestCase
415
453
  [
416
454
  "void Foo(int a, float b, char c, char* e)"
417
455
  ]
418
-
456
+
419
457
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
420
458
  end
421
459
 
422
460
 
423
- should "raise upon empty file" do
461
+ should "raise upon empty file" do
424
462
  source = ''
425
-
463
+
426
464
  # ensure it's expected type of exception
427
465
  assert_raise RuntimeError do
428
466
  @parser.parse("module", source)
429
467
  end
430
468
 
431
469
  assert_equal([], @parser.funcs)
432
-
470
+
433
471
  # verify exception message
434
472
  begin
435
473
  @parser.parse("module", source)
436
474
  rescue RuntimeError => e
437
475
  assert_equal("ERROR: No function prototypes found!", e.message)
438
- end
476
+ end
439
477
  end
440
-
441
- should "clean up module names that contain spaces, dashes, and such" do
478
+
479
+ should "clean up module names that contain spaces, dashes, and such" do
442
480
  source = 'void meh(int (*func)(int));'
443
-
481
+
444
482
  retval = @parser.parse("C:\Ugly Module-Name", source)
445
483
  assert (retval[:typedefs][0] =~ /CUglyModuleName/)
446
484
  end
447
485
 
448
- should "raise upon no function prototypes found in file" do
449
- source =
486
+ should "raise upon no function prototypes found in file" do
487
+ source =
450
488
  "typedef void SILLY_VOID_TYPE1;\n" +
451
489
  "typedef (void) SILLY_VOID_TYPE2 ;\n" +
452
- "typedef ( void ) (*FUNCPTR)(void);\n\n" +
490
+ "typedef ( void ) (*FUNCPTR)(void);\n\n" +
453
491
  "#define get_foo() \\\n ((Thing)foo.bar)"
454
492
 
455
493
  # ensure it's expected type of exception
@@ -457,19 +495,19 @@ class CMockHeaderParserTest < Test::Unit::TestCase
457
495
  @parser.parse("module", source)
458
496
  end
459
497
 
460
- assert_equal([], @parser.funcs)
498
+ assert_equal([], @parser.funcs)
461
499
 
462
500
  # verify exception message
463
501
  begin
464
- @parser.parse("module", source)
502
+ @parser.parse("module", source)
465
503
  rescue RuntimeError => e
466
504
  assert_equal("ERROR: No function prototypes found!", e.message)
467
- end
505
+ end
468
506
  end
469
507
 
470
508
 
471
509
  should "raise upon prototype parsing failure" do
472
- source = "void (int, )"
510
+ source = "void (int, )"
473
511
 
474
512
  # ensure it's expected type of exception
475
513
  assert_raise(RuntimeError) do
@@ -478,19 +516,19 @@ class CMockHeaderParserTest < Test::Unit::TestCase
478
516
 
479
517
  # verify exception message
480
518
  begin
481
- @parser.parse("module", source)
519
+ @parser.parse("module", source)
482
520
  rescue RuntimeError => e
483
521
  assert(e.message.include?("Failed Parsing Declaration Prototype!"))
484
- end
522
+ end
485
523
  end
486
524
 
487
525
  should "extract and return function declarations with retval and args" do
488
-
526
+
489
527
  source = "int Foo(int a, unsigned int b)"
490
528
  expected = { :var_arg=>nil,
491
529
  :name=>"Foo",
492
- :return=>{ :type => "int",
493
- :name => 'cmock_to_return',
530
+ :return=>{ :type => "int",
531
+ :name => 'cmock_to_return',
494
532
  :ptr? => false,
495
533
  :const? => false,
496
534
  :str => "int cmock_to_return",
@@ -498,7 +536,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
498
536
  },
499
537
  :modifier=>"",
500
538
  :contains_ptr? => false,
501
- :args=>[ {:type=>"int", :name=>"a", :ptr? => false, :const? => false},
539
+ :args=>[ {:type=>"int", :name=>"a", :ptr? => false, :const? => false},
502
540
  {:type=>"unsigned int", :name=>"b", :ptr? => false, :const? => false}
503
541
  ],
504
542
  :args_string=>"int a, unsigned int b",
@@ -507,11 +545,11 @@ class CMockHeaderParserTest < Test::Unit::TestCase
507
545
  end
508
546
 
509
547
  should "extract and return function declarations with no retval" do
510
-
548
+
511
549
  source = "void FunkyChicken( uint la, int de, bool da)"
512
550
  expected = { :var_arg=>nil,
513
- :return=>{ :type => "void",
514
- :name => 'cmock_to_return',
551
+ :return=>{ :type => "void",
552
+ :name => 'cmock_to_return',
515
553
  :ptr? => false,
516
554
  :const? => false,
517
555
  :str => "void cmock_to_return",
@@ -520,7 +558,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
520
558
  :name=>"FunkyChicken",
521
559
  :modifier=>"",
522
560
  :contains_ptr? => false,
523
- :args=>[ {:type=>"uint", :name=>"la", :ptr? => false, :const? => false},
561
+ :args=>[ {:type=>"uint", :name=>"la", :ptr? => false, :const? => false},
524
562
  {:type=>"int", :name=>"de", :ptr? => false, :const? => false},
525
563
  {:type=>"bool", :name=>"da", :ptr? => false, :const? => false}
526
564
  ],
@@ -530,11 +568,11 @@ class CMockHeaderParserTest < Test::Unit::TestCase
530
568
  end
531
569
 
532
570
  should "extract and return function declarations with implied voids" do
533
-
571
+
534
572
  source = "void tat()"
535
573
  expected = { :var_arg=>nil,
536
- :return=>{ :type => "void",
537
- :name => 'cmock_to_return',
574
+ :return=>{ :type => "void",
575
+ :name => 'cmock_to_return',
538
576
  :ptr? => false,
539
577
  :const? => false,
540
578
  :str => "void cmock_to_return",
@@ -548,37 +586,37 @@ class CMockHeaderParserTest < Test::Unit::TestCase
548
586
  :args_call=>"" }
549
587
  assert_equal(expected, @parser.parse_declaration(source))
550
588
  end
551
-
589
+
552
590
  should "extract modifiers properly" do
553
-
591
+
554
592
  source = "const int TheMatrix(int Trinity, unsigned int * Neo)"
555
593
  expected = { :var_arg=>nil,
556
- :return=>{ :type => "int",
557
- :name => 'cmock_to_return',
594
+ :return=>{ :type => "int",
595
+ :name => 'cmock_to_return',
558
596
  :ptr? => false,
559
- :const? => false,
597
+ :const? => true,
560
598
  :str => "int cmock_to_return",
561
599
  :void? => false
562
600
  },
563
601
  :name=>"TheMatrix",
564
602
  :modifier=>"const",
565
603
  :contains_ptr? => true,
566
- :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
604
+ :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
567
605
  {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
568
606
  ],
569
607
  :args_string=>"int Trinity, unsigned int* Neo",
570
608
  :args_call=>"Trinity, Neo" }
571
609
  assert_equal(expected, @parser.parse_declaration(source))
572
610
  end
573
-
611
+
574
612
  should "extract c calling conventions properly" do
575
-
613
+
576
614
  source = "const int __stdcall TheMatrix(int Trinity, unsigned int * Neo)"
577
615
  expected = { :var_arg=>nil,
578
- :return=>{ :type => "int",
579
- :name => 'cmock_to_return',
616
+ :return=>{ :type => "int",
617
+ :name => 'cmock_to_return',
580
618
  :ptr? => false,
581
- :const? => false,
619
+ :const? => true,
582
620
  :str => "int cmock_to_return",
583
621
  :void? => false
584
622
  },
@@ -586,38 +624,38 @@ class CMockHeaderParserTest < Test::Unit::TestCase
586
624
  :modifier=>"const",
587
625
  :c_calling_convention=>"__stdcall",
588
626
  :contains_ptr? => true,
589
- :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
627
+ :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
590
628
  {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
591
629
  ],
592
630
  :args_string=>"int Trinity, unsigned int* Neo",
593
631
  :args_call=>"Trinity, Neo" }
594
632
  assert_equal(expected, @parser.parse_declaration(source))
595
633
  end
596
-
634
+
597
635
  should "fully parse multiple prototypes" do
598
-
599
- source = "const int TheMatrix(int Trinity, unsigned int * Neo);\n" +
636
+
637
+ source = "const int TheMatrix(int Trinity, unsigned int * Neo);\n" +
600
638
  "int Morpheus(int, unsigned int*);\n"
601
-
639
+
602
640
  expected = [{ :var_arg=>nil,
603
- :return=> { :type => "int",
604
- :name => 'cmock_to_return',
641
+ :return=> { :type => "int",
642
+ :name => 'cmock_to_return',
605
643
  :ptr? => false,
606
- :const? => false,
644
+ :const? => true,
607
645
  :str => "int cmock_to_return",
608
646
  :void? => false
609
647
  },
610
648
  :name=>"TheMatrix",
611
649
  :modifier=>"const",
612
650
  :contains_ptr? => true,
613
- :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
651
+ :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
614
652
  {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
615
653
  ],
616
654
  :args_string=>"int Trinity, unsigned int* Neo",
617
655
  :args_call=>"Trinity, Neo" },
618
656
  { :var_arg=>nil,
619
- :return=> { :type => "int",
620
- :name => 'cmock_to_return',
657
+ :return=> { :type => "int",
658
+ :name => 'cmock_to_return',
621
659
  :ptr? => false,
622
660
  :const? => false,
623
661
  :str => "int cmock_to_return",
@@ -626,32 +664,32 @@ class CMockHeaderParserTest < Test::Unit::TestCase
626
664
  :name=>"Morpheus",
627
665
  :modifier=>"",
628
666
  :contains_ptr? => true,
629
- :args=>[ {:type=>"int", :name=>"cmock_arg1", :ptr? => false, :const? => false},
667
+ :args=>[ {:type=>"int", :name=>"cmock_arg1", :ptr? => false, :const? => false},
630
668
  {:type=>"unsigned int*", :name=>"cmock_arg2", :ptr? => true, :const? => false}
631
669
  ],
632
670
  :args_string=>"int cmock_arg1, unsigned int* cmock_arg2",
633
- :args_call=>"cmock_arg1, cmock_arg2"
671
+ :args_call=>"cmock_arg1, cmock_arg2"
634
672
  }]
635
673
  assert_equal(expected, @parser.parse("module", source)[:functions])
636
674
  end
637
-
675
+
638
676
  should "not extract for mocking multiply defined prototypes" do
639
-
640
- source = "const int TheMatrix(int Trinity, unsigned int * Neo);\n" +
677
+
678
+ source = "const int TheMatrix(int Trinity, unsigned int * Neo);\n" +
641
679
  "const int TheMatrix(int, unsigned int*);\n"
642
-
680
+
643
681
  expected = [{ :var_arg=>nil,
644
682
  :name=>"TheMatrix",
645
- :return=> { :type => "int",
646
- :name => 'cmock_to_return',
683
+ :return=> { :type => "int",
684
+ :name => 'cmock_to_return',
647
685
  :ptr? => false,
648
- :const? => false,
686
+ :const? => true,
649
687
  :str => "int cmock_to_return",
650
688
  :void? => false
651
689
  },
652
690
  :modifier=>"const",
653
691
  :contains_ptr? => true,
654
- :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
692
+ :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
655
693
  {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
656
694
  ],
657
695
  :args_string=>"int Trinity, unsigned int* Neo",
@@ -659,18 +697,18 @@ class CMockHeaderParserTest < Test::Unit::TestCase
659
697
  }]
660
698
  assert_equal(expected, @parser.parse("module", source)[:functions])
661
699
  end
662
-
700
+
663
701
  should "properly detect typedef'd variants of void and use those" do
664
-
665
- source = "typedef (void) FUNKY_VOID_T;\n" +
702
+
703
+ source = "typedef (void) FUNKY_VOID_T;\n" +
666
704
  "typedef void CHUNKY_VOID_T;\n" +
667
705
  "FUNKY_VOID_T DrHorrible(int SingAlong);\n" +
668
706
  "int CaptainHammer(CHUNKY_VOID_T);\n"
669
-
707
+
670
708
  expected = [{ :var_arg=>nil,
671
709
  :name=>"DrHorrible",
672
- :return => { :type => "void",
673
- :name => 'cmock_to_return',
710
+ :return => { :type => "void",
711
+ :name => 'cmock_to_return',
674
712
  :ptr? => false,
675
713
  :const? => false,
676
714
  :str => "void cmock_to_return",
@@ -683,8 +721,8 @@ class CMockHeaderParserTest < Test::Unit::TestCase
683
721
  :args_call=>"SingAlong"
684
722
  },
685
723
  { :var_arg=>nil,
686
- :return=> { :type => "int",
687
- :name => 'cmock_to_return',
724
+ :return=> { :type => "int",
725
+ :name => 'cmock_to_return',
688
726
  :ptr? => false,
689
727
  :const? => false,
690
728
  :str => "int cmock_to_return",
@@ -699,16 +737,16 @@ class CMockHeaderParserTest < Test::Unit::TestCase
699
737
  }]
700
738
  assert_equal(expected, @parser.parse("module", source)[:functions])
701
739
  end
702
-
740
+
703
741
  should "be ok with structs inside of function declarations" do
704
-
742
+
705
743
  source = "int DrHorrible(struct SingAlong Blog);\n" +
706
744
  "void Penny(struct const _KeepYourHeadUp_ * const BillyBuddy);\n" +
707
745
  "struct TheseArentTheHammer CaptainHammer(void);\n"
708
-
746
+
709
747
  expected = [{ :var_arg=>nil,
710
- :return =>{ :type => "int",
711
- :name => 'cmock_to_return',
748
+ :return =>{ :type => "int",
749
+ :name => 'cmock_to_return',
712
750
  :ptr? => false,
713
751
  :const? => false,
714
752
  :str => "int cmock_to_return",
@@ -719,11 +757,11 @@ class CMockHeaderParserTest < Test::Unit::TestCase
719
757
  :contains_ptr? => false,
720
758
  :args=>[ {:type=>"struct SingAlong", :name=>"Blog", :ptr? => false, :const? => false} ],
721
759
  :args_string=>"struct SingAlong Blog",
722
- :args_call=>"Blog"
760
+ :args_call=>"Blog"
723
761
  },
724
762
  { :var_arg=>nil,
725
- :return=> { :type => "void",
726
- :name => 'cmock_to_return',
763
+ :return=> { :type => "void",
764
+ :name => 'cmock_to_return',
727
765
  :ptr? => false,
728
766
  :const? => false,
729
767
  :str => "void cmock_to_return",
@@ -734,11 +772,11 @@ class CMockHeaderParserTest < Test::Unit::TestCase
734
772
  :contains_ptr? => true,
735
773
  :args=>[ {:type=>"struct _KeepYourHeadUp_*", :name=>"BillyBuddy", :ptr? => true, :const? => true} ],
736
774
  :args_string=>"struct const _KeepYourHeadUp_* const BillyBuddy",
737
- :args_call=>"BillyBuddy"
775
+ :args_call=>"BillyBuddy"
738
776
  },
739
777
  { :var_arg=>nil,
740
- :return=> { :type => "struct TheseArentTheHammer",
741
- :name => 'cmock_to_return',
778
+ :return=> { :type => "struct TheseArentTheHammer",
779
+ :name => 'cmock_to_return',
742
780
  :ptr? => false,
743
781
  :const? => false,
744
782
  :str => "struct TheseArentTheHammer cmock_to_return",
@@ -753,12 +791,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
753
791
  }]
754
792
  assert_equal(expected, @parser.parse("module", source)[:functions])
755
793
  end
756
-
794
+
757
795
  should "extract functions containing unions with union specifier" do
758
796
  source = "void OrangePeel(union STARS_AND_STRIPES * a, union AFL_CIO b)"
759
797
  expected = [{ :var_arg=>nil,
760
- :return=>{ :type => "void",
761
- :name => 'cmock_to_return',
798
+ :return=>{ :type => "void",
799
+ :name => 'cmock_to_return',
762
800
  :ptr? => false,
763
801
  :const? => false,
764
802
  :str => "void cmock_to_return",
@@ -775,12 +813,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
775
813
  result = @parser.parse("module", source)
776
814
  assert_equal(expected, result[:functions])
777
815
  end
778
-
816
+
779
817
  should "not be thwarted by variables named with primitive types as part of the name" do
780
818
  source = "void ApplePeel(const unsigned int const_param, int int_param, int integer, char character, int* const constant)"
781
819
  expected = [{ :var_arg=>nil,
782
- :return=>{ :type => "void",
783
- :name => 'cmock_to_return',
820
+ :return=>{ :type => "void",
821
+ :name => 'cmock_to_return',
784
822
  :ptr? => false,
785
823
  :const? => false,
786
824
  :str => "void cmock_to_return",
@@ -800,12 +838,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
800
838
  result = @parser.parse("module", source)
801
839
  assert_equal(expected, result[:functions])
802
840
  end
803
-
804
- should "not be thwarted by custom types named similarly to primitive types" do
841
+
842
+ should "not be thwarted by custom types named similarly to primitive types" do
805
843
  source = "void LemonPeel(integer param, character thing, longint * junk, constant value, int32_t const number)"
806
844
  expected = [{:var_arg=>nil,
807
- :return=>{ :type => "void",
808
- :name => 'cmock_to_return',
845
+ :return=>{ :type => "void",
846
+ :name => 'cmock_to_return',
809
847
  :ptr? => false,
810
848
  :const? => false,
811
849
  :str => "void cmock_to_return",
@@ -825,12 +863,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
825
863
  result = @parser.parse("module", source)
826
864
  assert_equal(expected, result[:functions])
827
865
  end
828
-
866
+
829
867
  should "handle some of those chains of C name specifiers naturally" do
830
868
  source = "void CoinOperated(signed char abc, const unsigned long int xyz_123, unsigned int const abc_123, long long arm_of_the_law)"
831
869
  expected = [{:var_arg=>nil,
832
- :return=>{ :type => "void",
833
- :name => 'cmock_to_return',
870
+ :return=>{ :type => "void",
871
+ :name => 'cmock_to_return',
834
872
  :ptr? => false,
835
873
  :const? => false,
836
874
  :str => "void cmock_to_return",
@@ -849,12 +887,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
849
887
  result = @parser.parse("module", source)
850
888
  assert_equal(expected, result[:functions])
851
889
  end
852
-
853
- should "handle custom types of various formats" do
890
+
891
+ should "handle custom types of various formats" do
854
892
  source = "void CardOperated(CUSTOM_TYPE abc, CUSTOM_TYPE* xyz_123, CUSTOM_TYPE const abcxyz, struct CUSTOM_TYPE const * const abc123)"
855
893
  expected = [{:var_arg=>nil,
856
- :return=>{ :type => "void",
857
- :name => 'cmock_to_return',
894
+ :return=>{ :type => "void",
895
+ :name => 'cmock_to_return',
858
896
  :ptr? => false,
859
897
  :const? => false,
860
898
  :str => "void cmock_to_return",
@@ -873,12 +911,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
873
911
  result = @parser.parse("module", source)
874
912
  assert_equal(expected, result[:functions])
875
913
  end
876
-
914
+
877
915
  should "handle arrays and treat them as pointers" do
878
916
  source = "void KeyOperated(CUSTOM_TYPE thing1[], int thing2 [ ], char thing3 [][2 ][ 3], int* thing4[4])"
879
917
  expected = [{:var_arg=>nil,
880
- :return=>{ :type => "void",
881
- :name => 'cmock_to_return',
918
+ :return=>{ :type => "void",
919
+ :name => 'cmock_to_return',
882
920
  :ptr? => false,
883
921
  :const? => false,
884
922
  :str => "void cmock_to_return",
@@ -897,12 +935,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
897
935
  result = @parser.parse("module", source)
898
936
  assert_equal(expected, result[:functions])
899
937
  end
900
-
901
- should "give a reasonable guess when dealing with weird combinations of custom types and modifiers" do
938
+
939
+ should "give a reasonable guess when dealing with weird combinations of custom types and modifiers" do
902
940
  source = "void Cheese(unsigned CUSTOM_TYPE abc, unsigned xyz, CUSTOM_TYPE1 CUSTOM_TYPE2 pdq)"
903
941
  expected = [{:var_arg=>nil,
904
- :return=>{ :type => "void",
905
- :name => 'cmock_to_return',
942
+ :return=>{ :type => "void",
943
+ :name => 'cmock_to_return',
906
944
  :ptr? => false,
907
945
  :const? => false,
908
946
  :str => "void cmock_to_return",
@@ -920,12 +958,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
920
958
  result = @parser.parse("module", source)
921
959
  assert_equal(expected, result[:functions])
922
960
  end
923
-
961
+
924
962
  should "extract functions containing a function pointer" do
925
963
  source = "void FunkyTurkey(unsigned int (*func_ptr)(int, char))"
926
964
  expected = [{ :var_arg=>nil,
927
- :return=>{ :type => "void",
928
- :name => 'cmock_to_return',
965
+ :return=>{ :type => "void",
966
+ :name => 'cmock_to_return',
929
967
  :ptr? => false,
930
968
  :const? => false,
931
969
  :str => "void cmock_to_return",
@@ -943,12 +981,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
943
981
  assert_equal(expected, result[:functions])
944
982
  assert_equal(typedefs, result[:typedefs])
945
983
  end
946
-
984
+
947
985
  should "extract functions containing a function pointer with an implied void" do
948
986
  source = "void FunkyTurkey(unsigned int (*func_ptr)())"
949
987
  expected = [{ :var_arg=>nil,
950
- :return=>{ :type => "void",
951
- :name => 'cmock_to_return',
988
+ :return=>{ :type => "void",
989
+ :name => 'cmock_to_return',
952
990
  :ptr? => false,
953
991
  :const? => false,
954
992
  :str => "void cmock_to_return",
@@ -966,12 +1004,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
966
1004
  assert_equal(expected, result[:functions])
967
1005
  assert_equal(typedefs, result[:typedefs])
968
1006
  end
969
-
1007
+
970
1008
  should "extract functions containing a constant function pointer and a pointer in the nested arg list" do
971
1009
  source = "void FunkyChicken(unsigned int (* const func_ptr)(unsigned long int * , char))"
972
1010
  expected = [{ :var_arg=>nil,
973
- :return=>{ :type => "void",
974
- :name => 'cmock_to_return',
1011
+ :return=>{ :type => "void",
1012
+ :name => 'cmock_to_return',
975
1013
  :ptr? => false,
976
1014
  :const? => false,
977
1015
  :str => "void cmock_to_return",
@@ -989,12 +1027,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
989
1027
  assert_equal(expected, result[:functions])
990
1028
  assert_equal(typedefs, result[:typedefs])
991
1029
  end
992
-
1030
+
993
1031
  # should "extract functions containing a function pointer taking a vararg" do
994
1032
  # source = "void FunkyParrot(unsigned int (*func_ptr)(int, char, ...))"
995
1033
  # expected = [{ :var_arg=>nil,
996
- # :return=>{ :type => "void",
997
- # :name => 'cmock_to_return',
1034
+ # :return=>{ :type => "void",
1035
+ # :name => 'cmock_to_return',
998
1036
  # :ptr? => false,
999
1037
  # :const? => false,
1000
1038
  # :str => "void cmock_to_return",
@@ -1012,12 +1050,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1012
1050
  # assert_equal(expected, result[:functions])
1013
1051
  # assert_equal(typedefs, result[:typedefs])
1014
1052
  # end
1015
-
1053
+
1016
1054
  should "extract functions containing a function pointer with extra parenthesis and two sets" do
1017
1055
  source = "void FunkyBudgie(int (((* func_ptr1)(int, char))), void (*func_ptr2)(void))"
1018
1056
  expected = [{ :var_arg=>nil,
1019
- :return=>{ :type => "void",
1020
- :name => 'cmock_to_return',
1057
+ :return=>{ :type => "void",
1058
+ :name => 'cmock_to_return',
1021
1059
  :ptr? => false,
1022
1060
  :const? => false,
1023
1061
  :str => "void cmock_to_return",
@@ -1036,12 +1074,37 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1036
1074
  assert_equal(expected, result[:functions])
1037
1075
  assert_equal(typedefs, result[:typedefs])
1038
1076
  end
1039
-
1077
+
1078
+ should "extract functions containing a function pointers, structs and other things" do
1079
+ source = "struct mytype *FunkyRobin(uint16_t num1, uint16_t num2, void (*func_ptr1)(uint16_t num3, struct mytype2 *s));"
1080
+ expected = [{ :var_arg=>nil,
1081
+ :return=>{ :type => "struct mytype*",
1082
+ :name => 'cmock_to_return',
1083
+ :ptr? => true,
1084
+ :const? => false,
1085
+ :str => "struct mytype* cmock_to_return",
1086
+ :void? => false
1087
+ },
1088
+ :name=>"FunkyRobin",
1089
+ :modifier=>"",
1090
+ :contains_ptr? => false,
1091
+ :args=>[ {:type=>"uint16_t", :name=>"num1", :ptr? => false, :const? => false},
1092
+ {:type=>"uint16_t", :name=>"num2", :ptr? => false, :const? => false},
1093
+ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false}
1094
+ ],
1095
+ :args_string=>"uint16_t num1, uint16_t num2, cmock_module_func_ptr1 func_ptr1",
1096
+ :args_call=>"num1, num2, func_ptr1" }]
1097
+ typedefs = ["typedef void(*cmock_module_func_ptr1)(uint16_t num3, struct mytype2* s);"]
1098
+ result = @parser.parse("module", source)
1099
+ assert_equal(expected, result[:functions])
1100
+ assert_equal(typedefs, result[:typedefs])
1101
+ end
1102
+
1040
1103
  should "extract functions containing an anonymous function pointer" do
1041
1104
  source = "void FunkyFowl(unsigned int (* const)(int, char))"
1042
1105
  expected = [{ :var_arg=>nil,
1043
- :return=>{ :type => "void",
1044
- :name => 'cmock_to_return',
1106
+ :return=>{ :type => "void",
1107
+ :name => 'cmock_to_return',
1045
1108
  :ptr? => false,
1046
1109
  :const? => false,
1047
1110
  :str => "void cmock_to_return",
@@ -1059,12 +1122,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1059
1122
  assert_equal(expected, result[:functions])
1060
1123
  assert_equal(typedefs, result[:typedefs])
1061
1124
  end
1062
-
1125
+
1063
1126
  should "extract functions returning a function pointer" do
1064
1127
  source = "unsigned short (*FunkyPidgeon( const char op_code ))( int, long int )"
1065
1128
  expected = [{ :var_arg=>nil,
1066
- :return=>{ :type => "cmock_module_func_ptr1",
1067
- :name => 'cmock_to_return',
1129
+ :return=>{ :type => "cmock_module_func_ptr1",
1130
+ :name => 'cmock_to_return',
1068
1131
  :ptr? => false,
1069
1132
  :const? => false,
1070
1133
  :str => "cmock_module_func_ptr1 cmock_to_return",
@@ -1082,12 +1145,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1082
1145
  assert_equal(expected, result[:functions])
1083
1146
  assert_equal(typedefs, result[:typedefs])
1084
1147
  end
1085
-
1148
+
1086
1149
  should "extract functions returning a function pointer with implied void" do
1087
1150
  source = "unsigned short (*FunkyTweetie())()"
1088
1151
  expected = [{ :var_arg=>nil,
1089
- :return=>{ :type => "cmock_module_func_ptr1",
1090
- :name => 'cmock_to_return',
1152
+ :return=>{ :type => "cmock_module_func_ptr1",
1153
+ :name => 'cmock_to_return',
1091
1154
  :ptr? => false,
1092
1155
  :const? => false,
1093
1156
  :str => "cmock_module_func_ptr1 cmock_to_return",
@@ -1104,12 +1167,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1104
1167
  assert_equal(expected, result[:functions])
1105
1168
  assert_equal(typedefs, result[:typedefs])
1106
1169
  end
1107
-
1170
+
1108
1171
  should "extract functions returning a function pointer where everything is a void" do
1109
1172
  source = "void (* FunkySeaGull(void))(void)"
1110
1173
  expected = [{ :var_arg=>nil,
1111
- :return=>{ :type => "cmock_module_func_ptr1",
1112
- :name => 'cmock_to_return',
1174
+ :return=>{ :type => "cmock_module_func_ptr1",
1175
+ :name => 'cmock_to_return',
1113
1176
  :ptr? => false,
1114
1177
  :const? => false,
1115
1178
  :str => "cmock_module_func_ptr1 cmock_to_return",
@@ -1126,12 +1189,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1126
1189
  assert_equal(expected, result[:functions])
1127
1190
  assert_equal(typedefs, result[:typedefs])
1128
1191
  end
1129
-
1192
+
1130
1193
  should "extract functions returning a function pointer with some pointer nonsense" do
1131
1194
  source = "unsigned int * (* FunkyMacaw(double* foo, THING *bar))(unsigned int)"
1132
1195
  expected = [{ :var_arg=>nil,
1133
- :return=>{ :type => "cmock_module_func_ptr1",
1134
- :name => 'cmock_to_return',
1196
+ :return=>{ :type => "cmock_module_func_ptr1",
1197
+ :name => 'cmock_to_return',
1135
1198
  :ptr? => false,
1136
1199
  :const? => false,
1137
1200
  :str => "cmock_module_func_ptr1 cmock_to_return",
@@ -1150,7 +1213,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1150
1213
  assert_equal(expected, result[:functions])
1151
1214
  assert_equal(typedefs, result[:typedefs])
1152
1215
  end
1153
-
1216
+
1154
1217
  should "extract this SQLite3 function with an anonymous function pointer arg (regression test)" do
1155
1218
  source = "SQLITE_API int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*))"
1156
1219
  expected = [{ :var_arg=>nil,
@@ -1177,12 +1240,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1177
1240
  assert_equal(expected, result[:functions])
1178
1241
  assert_equal(typedefs, result[:typedefs])
1179
1242
  end
1180
-
1243
+
1181
1244
  should "extract functions with varargs" do
1182
1245
  source = "int XFiles(int Scully, int Mulder, ...);\n"
1183
1246
  expected = [{ :var_arg=>"...",
1184
- :return=> { :type => "int",
1185
- :name => 'cmock_to_return',
1247
+ :return=> { :type => "int",
1248
+ :name => 'cmock_to_return',
1186
1249
  :ptr? => false,
1187
1250
  :const? => false,
1188
1251
  :str => "int cmock_to_return",
@@ -1191,7 +1254,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1191
1254
  :name=>"XFiles",
1192
1255
  :modifier=>"",
1193
1256
  :contains_ptr? => false,
1194
- :args=>[ {:type=>"int", :name=>"Scully", :ptr? => false, :const? => false},
1257
+ :args=>[ {:type=>"int", :name=>"Scully", :ptr? => false, :const? => false},
1195
1258
  {:type=>"int", :name=>"Mulder", :ptr? => false, :const? => false}
1196
1259
  ],
1197
1260
  :args_string=>"int Scully, int Mulder",
@@ -1199,12 +1262,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1199
1262
  }]
1200
1263
  assert_equal(expected, @parser.parse("module", source)[:functions])
1201
1264
  end
1202
-
1265
+
1203
1266
  should "extract functions with strippable confusing junk like gcc attributes" do
1204
1267
  source = "int LaverneAndShirley(int Lenny, int Squiggy) __attribute__((weak)) __attribute__ ((deprecated));\n"
1205
1268
  expected = [{ :var_arg=>nil,
1206
- :return=> { :type => "int",
1207
- :name => 'cmock_to_return',
1269
+ :return=> { :type => "int",
1270
+ :name => 'cmock_to_return',
1208
1271
  :ptr? => false,
1209
1272
  :const? => false,
1210
1273
  :str => "int cmock_to_return",
@@ -1213,7 +1276,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1213
1276
  :name=>"LaverneAndShirley",
1214
1277
  :modifier=>"",
1215
1278
  :contains_ptr? => false,
1216
- :args=>[ {:type=>"int", :name=>"Lenny", :ptr? => false, :const? => false},
1279
+ :args=>[ {:type=>"int", :name=>"Lenny", :ptr? => false, :const? => false},
1217
1280
  {:type=>"int", :name=>"Squiggy", :ptr? => false, :const? => false}
1218
1281
  ],
1219
1282
  :args_string=>"int Lenny, int Squiggy",
@@ -1221,12 +1284,12 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1221
1284
  }]
1222
1285
  assert_equal(expected, @parser.parse("module", source)[:functions])
1223
1286
  end
1224
-
1287
+
1225
1288
  should "extract functions with strippable confusing junk like gcc attributes with parenthesis" do
1226
1289
  source = "int TheCosbyShow(int Cliff, int Claire) __attribute__((weak, alias (\"__f\"));\n"
1227
1290
  expected = [{ :var_arg=>nil,
1228
- :return=> { :type => "int",
1229
- :name => 'cmock_to_return',
1291
+ :return=> { :type => "int",
1292
+ :name => 'cmock_to_return',
1230
1293
  :ptr? => false,
1231
1294
  :const? => false,
1232
1295
  :str => "int cmock_to_return",
@@ -1235,7 +1298,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
1235
1298
  :name=>"TheCosbyShow",
1236
1299
  :modifier=>"",
1237
1300
  :contains_ptr? => false,
1238
- :args=>[ {:type=>"int", :name=>"Cliff", :ptr? => false, :const? => false},
1301
+ :args=>[ {:type=>"int", :name=>"Cliff", :ptr? => false, :const? => false},
1239
1302
  {:type=>"int", :name=>"Claire", :ptr? => false, :const? => false}
1240
1303
  ],
1241
1304
  :args_string=>"int Cliff, int Claire",