ceedling 0.28.1 → 0.28.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (467) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ceedling +3 -2
  3. data/docs/CeedlingPacket.md +4 -0
  4. data/lib/ceedling/configurator_builder.rb +26 -0
  5. data/lib/ceedling/configurator_setup.rb +1 -0
  6. data/lib/ceedling/file_finder.rb +7 -1
  7. data/lib/ceedling/flaginator.rb +28 -8
  8. data/lib/ceedling/rules_release.rake +3 -3
  9. data/lib/ceedling/rules_release_deep_dependencies.rake +1 -1
  10. data/lib/ceedling/version.rb +3 -3
  11. data/plugins/gcov/config/defaults.yml +4 -3
  12. data/plugins/module_generator/lib/module_generator.rb +1 -1
  13. data/plugins/subprojects/README.md +63 -63
  14. data/plugins/subprojects/config/defaults.yml +33 -33
  15. data/plugins/subprojects/lib/subprojects.rb +92 -92
  16. data/plugins/subprojects/subprojects.rake +78 -78
  17. data/vendor/cmock/docs/CMock_Summary.md +75 -60
  18. data/vendor/cmock/lib/cmock_config.rb +1 -0
  19. data/vendor/cmock/lib/cmock_generator.rb +13 -1
  20. data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +1 -1
  21. data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +0 -14
  22. data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +4 -0
  23. data/vendor/cmock/lib/cmock_generator_utils.rb +4 -5
  24. data/vendor/cmock/lib/cmock_header_parser.rb +26 -28
  25. data/vendor/cmock/lib/cmock_plugin_manager.rb +27 -12
  26. data/vendor/cmock/scripts/create_makefile.rb +5 -4
  27. data/vendor/cmock/scripts/test_summary.rb +1 -1
  28. data/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +167 -0
  29. data/vendor/cmock/test/system/test_interactions/ignore_strict_mock_calling.yml +37 -0
  30. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +14 -1
  31. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +25 -24
  32. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +101 -3
  33. data/vendor/unity/README.md +11 -0
  34. data/vendor/unity/auto/generate_module.rb +3 -3
  35. data/vendor/unity/auto/stylize_as_junit.rb +0 -0
  36. data/vendor/unity/docs/UnityAssertionsReference.md +54 -0
  37. data/vendor/unity/examples/unity_config.h +6 -4
  38. data/vendor/unity/extras/fixture/rakefile_helper.rb +1 -1
  39. data/vendor/unity/extras/fixture/test/Makefile +1 -0
  40. data/vendor/unity/src/unity.c +121 -73
  41. data/vendor/unity/src/unity.h +60 -0
  42. data/vendor/unity/src/unity_internals.h +47 -7
  43. data/vendor/unity/test/Makefile +1 -0
  44. data/vendor/unity/test/rakefile_helper.rb +1 -1
  45. data/vendor/unity/test/tests/testunity.c +508 -164
  46. metadata +3 -423
  47. data/out.fail +0 -21
  48. data/plugins/fake_function_framework/vendor/fff/LICENSE +0 -25
  49. data/plugins/fake_function_framework/vendor/fff/Makefile +0 -10
  50. data/plugins/fake_function_framework/vendor/fff/README.md +0 -454
  51. data/plugins/fake_function_framework/vendor/fff/buildandtest +0 -15
  52. data/plugins/fake_function_framework/vendor/fff/examples/Makefile +0 -7
  53. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/Makefile +0 -64
  54. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.c +0 -24
  55. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.h +0 -11
  56. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.test.cpp +0 -50
  57. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -62
  58. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -15
  59. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/registers.h +0 -13
  60. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -17
  61. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
  62. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/Makefile +0 -67
  63. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -21
  64. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI.c +0 -48
  65. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI.h +0 -12
  66. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -183
  67. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -136
  68. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -34
  69. data/plugins/fake_function_framework/vendor/fff/fakegen.rb +0 -420
  70. data/plugins/fake_function_framework/vendor/fff/fff.h +0 -5112
  71. data/plugins/fake_function_framework/vendor/fff/gtest/Makefile +0 -22
  72. data/plugins/fake_function_framework/vendor/fff/gtest/gtest-all.cc +0 -9118
  73. data/plugins/fake_function_framework/vendor/fff/gtest/gtest-main.cc +0 -6
  74. data/plugins/fake_function_framework/vendor/fff/gtest/gtest.h +0 -19537
  75. data/plugins/fake_function_framework/vendor/fff/test/Makefile +0 -81
  76. data/plugins/fake_function_framework/vendor/fff/test/c_test_framework.h +0 -15
  77. data/plugins/fake_function_framework/vendor/fff/test/fff_test_c.c +0 -108
  78. data/plugins/fake_function_framework/vendor/fff/test/fff_test_cpp.cpp +0 -45
  79. data/plugins/fake_function_framework/vendor/fff/test/fff_test_global_c.c +0 -76
  80. data/plugins/fake_function_framework/vendor/fff/test/fff_test_global_cpp.cpp +0 -23
  81. data/plugins/fake_function_framework/vendor/fff/test/global_fakes.c +0 -13
  82. data/plugins/fake_function_framework/vendor/fff/test/global_fakes.h +0 -37
  83. data/plugins/fake_function_framework/vendor/fff/test/test_cases.include +0 -276
  84. data/vendor/c_exception/vendor/unity/README.md +0 -220
  85. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +0 -118
  86. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +0 -39
  87. data/vendor/c_exception/vendor/unity/auto/generate_config.yml +0 -36
  88. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +0 -308
  89. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +0 -437
  90. data/vendor/c_exception/vendor/unity/auto/parse_output.rb +0 -220
  91. data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +0 -252
  92. data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +0 -25
  93. data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +0 -6
  94. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +0 -139
  95. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +0 -136
  96. data/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +0 -146
  97. data/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +0 -207
  98. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  99. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +0 -716
  100. data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +0 -398
  101. data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +0 -191
  102. data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +0 -242
  103. data/vendor/c_exception/vendor/unity/docs/license.txt +0 -21
  104. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +0 -71
  105. data/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +0 -5
  106. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +0 -24
  107. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +0 -3
  108. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +0 -11
  109. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +0 -2
  110. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +0 -62
  111. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +0 -31
  112. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -53
  113. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -57
  114. data/vendor/c_exception/vendor/unity/examples/example_2/makefile +0 -70
  115. data/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +0 -5
  116. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +0 -24
  117. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +0 -3
  118. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +0 -11
  119. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +0 -2
  120. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +0 -64
  121. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +0 -33
  122. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +0 -9
  123. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +0 -11
  124. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +0 -12
  125. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +0 -10
  126. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +0 -12
  127. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -43
  128. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +0 -249
  129. data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +0 -13
  130. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +0 -24
  131. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +0 -3
  132. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +0 -11
  133. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +0 -2
  134. data/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +0 -46
  135. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +0 -62
  136. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +0 -31
  137. data/vendor/c_exception/vendor/unity/examples/unity_config.h +0 -237
  138. data/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +0 -26
  139. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +0 -48
  140. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
  141. data/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +0 -9
  142. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +0 -432
  143. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +0 -83
  144. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -51
  145. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -47
  146. data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +0 -74
  147. data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +0 -22
  148. data/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +0 -39
  149. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -543
  150. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -57
  151. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -57
  152. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
  153. data/vendor/c_exception/vendor/unity/release/build.info +0 -2
  154. data/vendor/c_exception/vendor/unity/release/version.info +0 -2
  155. data/vendor/c_exception/vendor/unity/src/unity.c +0 -1517
  156. data/vendor/c_exception/vendor/unity/src/unity.h +0 -339
  157. data/vendor/c_exception/vendor/unity/src/unity_internals.h +0 -784
  158. data/vendor/c_exception/vendor/unity/test/Makefile +0 -63
  159. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +0 -61
  160. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +0 -57
  161. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +0 -55
  162. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +0 -15
  163. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -80
  164. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +0 -76
  165. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +0 -75
  166. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +0 -13
  167. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -89
  168. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -89
  169. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +0 -77
  170. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -89
  171. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -89
  172. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -90
  173. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +0 -67
  174. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +0 -70
  175. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +0 -58
  176. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +0 -67
  177. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +0 -70
  178. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +0 -71
  179. data/vendor/c_exception/vendor/unity/test/rakefile +0 -125
  180. data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +0 -260
  181. data/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +0 -158
  182. data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -78
  183. data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +0 -78
  184. data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +0 -49
  185. data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +0 -50
  186. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +0 -47
  187. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -59
  188. data/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +0 -47
  189. data/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +0 -101
  190. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +0 -90
  191. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +0 -80
  192. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -80
  193. data/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -94
  194. data/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -84
  195. data/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +0 -95
  196. data/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -86
  197. data/vendor/c_exception/vendor/unity/test/testdata/CException.h +0 -11
  198. data/vendor/c_exception/vendor/unity/test/testdata/Defs.h +0 -8
  199. data/vendor/c_exception/vendor/unity/test/testdata/cmock.h +0 -14
  200. data/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +0 -13
  201. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +0 -183
  202. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +0 -67
  203. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +0 -192
  204. data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +0 -1252
  205. data/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +0 -110
  206. data/vendor/c_exception/vendor/unity/test/tests/testunity.c +0 -4993
  207. data/vendor/cmock/vendor/c_exception/Gemfile +0 -4
  208. data/vendor/cmock/vendor/c_exception/Gemfile.lock +0 -12
  209. data/vendor/cmock/vendor/c_exception/LICENSE.txt +0 -30
  210. data/vendor/cmock/vendor/c_exception/README.md +0 -162
  211. data/vendor/cmock/vendor/c_exception/Rakefile +0 -42
  212. data/vendor/cmock/vendor/c_exception/docs/CException.md +0 -292
  213. data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +0 -207
  214. data/vendor/cmock/vendor/c_exception/lib/CException.c +0 -46
  215. data/vendor/cmock/vendor/c_exception/lib/CException.h +0 -110
  216. data/vendor/cmock/vendor/c_exception/makefile +0 -24
  217. data/vendor/cmock/vendor/c_exception/release/build.info +0 -2
  218. data/vendor/cmock/vendor/c_exception/release/version.info +0 -2
  219. data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +0 -46
  220. data/vendor/cmock/vendor/c_exception/test/TestException.c +0 -391
  221. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +0 -67
  222. data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +0 -220
  223. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +0 -118
  224. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +0 -39
  225. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +0 -36
  226. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +0 -308
  227. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +0 -437
  228. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parse_output.rb +0 -220
  229. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +0 -252
  230. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +0 -25
  231. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +0 -6
  232. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +0 -139
  233. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +0 -136
  234. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +0 -146
  235. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +0 -207
  236. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  237. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +0 -716
  238. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +0 -398
  239. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +0 -191
  240. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +0 -242
  241. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +0 -21
  242. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +0 -71
  243. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +0 -5
  244. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +0 -24
  245. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +0 -3
  246. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +0 -11
  247. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +0 -2
  248. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +0 -62
  249. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +0 -31
  250. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -53
  251. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -57
  252. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +0 -70
  253. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +0 -5
  254. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +0 -24
  255. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +0 -3
  256. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +0 -11
  257. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +0 -2
  258. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +0 -64
  259. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +0 -33
  260. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +0 -9
  261. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +0 -11
  262. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +0 -12
  263. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +0 -10
  264. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +0 -12
  265. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -43
  266. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +0 -249
  267. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +0 -13
  268. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +0 -24
  269. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +0 -3
  270. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +0 -11
  271. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +0 -2
  272. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +0 -46
  273. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +0 -62
  274. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +0 -31
  275. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +0 -237
  276. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +0 -26
  277. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +0 -48
  278. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
  279. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +0 -9
  280. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +0 -432
  281. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +0 -83
  282. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -51
  283. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -47
  284. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +0 -74
  285. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +0 -22
  286. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +0 -39
  287. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -543
  288. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -57
  289. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -57
  290. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
  291. data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +0 -2
  292. data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +0 -2
  293. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +0 -1517
  294. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +0 -339
  295. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +0 -784
  296. data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +0 -63
  297. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +0 -61
  298. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +0 -57
  299. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +0 -55
  300. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +0 -15
  301. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -80
  302. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +0 -76
  303. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +0 -75
  304. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +0 -13
  305. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -89
  306. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -89
  307. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +0 -77
  308. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -89
  309. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -89
  310. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -90
  311. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +0 -67
  312. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +0 -70
  313. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +0 -58
  314. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +0 -67
  315. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +0 -70
  316. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +0 -71
  317. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +0 -125
  318. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +0 -260
  319. data/vendor/cmock/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +0 -158
  320. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -78
  321. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +0 -78
  322. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +0 -49
  323. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +0 -50
  324. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +0 -47
  325. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -59
  326. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +0 -47
  327. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +0 -101
  328. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +0 -90
  329. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +0 -80
  330. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -80
  331. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -94
  332. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -84
  333. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +0 -95
  334. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -86
  335. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/CException.h +0 -11
  336. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/Defs.h +0 -8
  337. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/cmock.h +0 -14
  338. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +0 -13
  339. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +0 -183
  340. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +0 -67
  341. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +0 -192
  342. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +0 -1252
  343. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +0 -110
  344. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +0 -4993
  345. data/vendor/cmock/vendor/unity/README.md +0 -220
  346. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +0 -118
  347. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +0 -39
  348. data/vendor/cmock/vendor/unity/auto/generate_config.yml +0 -36
  349. data/vendor/cmock/vendor/unity/auto/generate_module.rb +0 -308
  350. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +0 -437
  351. data/vendor/cmock/vendor/unity/auto/parse_output.rb +0 -220
  352. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +0 -252
  353. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +0 -25
  354. data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +0 -6
  355. data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +0 -139
  356. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +0 -136
  357. data/vendor/cmock/vendor/unity/auto/unity_to_junit.py +0 -146
  358. data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +0 -207
  359. data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  360. data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +0 -716
  361. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +0 -398
  362. data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +0 -191
  363. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +0 -242
  364. data/vendor/cmock/vendor/unity/docs/license.txt +0 -21
  365. data/vendor/cmock/vendor/unity/examples/example_1/makefile +0 -71
  366. data/vendor/cmock/vendor/unity/examples/example_1/readme.txt +0 -5
  367. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +0 -24
  368. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +0 -3
  369. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +0 -11
  370. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +0 -2
  371. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +0 -62
  372. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +0 -31
  373. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -53
  374. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -57
  375. data/vendor/cmock/vendor/unity/examples/example_2/makefile +0 -70
  376. data/vendor/cmock/vendor/unity/examples/example_2/readme.txt +0 -5
  377. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +0 -24
  378. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +0 -3
  379. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +0 -11
  380. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +0 -2
  381. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +0 -64
  382. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +0 -33
  383. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +0 -9
  384. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +0 -11
  385. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +0 -12
  386. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +0 -10
  387. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +0 -12
  388. data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +0 -43
  389. data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +0 -249
  390. data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +0 -13
  391. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +0 -24
  392. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +0 -3
  393. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +0 -11
  394. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +0 -2
  395. data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +0 -46
  396. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +0 -62
  397. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +0 -31
  398. data/vendor/cmock/vendor/unity/examples/unity_config.h +0 -237
  399. data/vendor/cmock/vendor/unity/extras/eclipse/error_parsers.txt +0 -26
  400. data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +0 -48
  401. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
  402. data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +0 -9
  403. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +0 -432
  404. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +0 -83
  405. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -51
  406. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -47
  407. data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +0 -74
  408. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +0 -22
  409. data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +0 -39
  410. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -543
  411. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -57
  412. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -57
  413. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
  414. data/vendor/cmock/vendor/unity/release/build.info +0 -2
  415. data/vendor/cmock/vendor/unity/release/version.info +0 -2
  416. data/vendor/cmock/vendor/unity/src/unity.c +0 -1517
  417. data/vendor/cmock/vendor/unity/src/unity.h +0 -339
  418. data/vendor/cmock/vendor/unity/src/unity_internals.h +0 -784
  419. data/vendor/cmock/vendor/unity/test/Makefile +0 -63
  420. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +0 -61
  421. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +0 -57
  422. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +0 -55
  423. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +0 -15
  424. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -80
  425. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +0 -76
  426. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +0 -75
  427. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +0 -13
  428. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -89
  429. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -89
  430. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +0 -77
  431. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -89
  432. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -89
  433. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -90
  434. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +0 -67
  435. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +0 -70
  436. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +0 -58
  437. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +0 -67
  438. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +0 -70
  439. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +0 -71
  440. data/vendor/cmock/vendor/unity/test/rakefile +0 -125
  441. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +0 -260
  442. data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +0 -158
  443. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -78
  444. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +0 -78
  445. data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +0 -49
  446. data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +0 -50
  447. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +0 -47
  448. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -59
  449. data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +0 -47
  450. data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +0 -101
  451. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +0 -90
  452. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +0 -80
  453. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -80
  454. data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -94
  455. data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -84
  456. data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +0 -95
  457. data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -86
  458. data/vendor/cmock/vendor/unity/test/testdata/CException.h +0 -11
  459. data/vendor/cmock/vendor/unity/test/testdata/Defs.h +0 -8
  460. data/vendor/cmock/vendor/unity/test/testdata/cmock.h +0 -14
  461. data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +0 -13
  462. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +0 -183
  463. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +0 -67
  464. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +0 -192
  465. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +0 -1252
  466. data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +0 -110
  467. data/vendor/cmock/vendor/unity/test/tests/testunity.c +0 -4993
@@ -1,12 +0,0 @@
1
- #ifndef UI_H_
2
- #define UI_H_
3
-
4
- typedef void (*button_cbk_t)(void);
5
-
6
- void UI_init();
7
- unsigned int UI_get_missed_irqs();
8
- void UI_button_irq_handler();
9
- void UI_register_button_cbk(button_cbk_t cbk);
10
- void UI_write_line(char *line);
11
-
12
- #endif /* UI_H_ */
@@ -1,183 +0,0 @@
1
- #include "UI.h"
2
- #include "../../fff.h"
3
- #include "SYSTEM.h"
4
- #include "DISPLAY.h"
5
-
6
- #include <assert.h>
7
- #include <stdio.h>
8
- #include <string.h>
9
-
10
- /* Test Framework :-) */
11
- void setup();
12
- #define TEST_F(SUITE, NAME) void NAME()
13
- #define RUN_TEST(SUITE, TESTNAME) printf(" Running %s.%s: \n", #SUITE, #TESTNAME); setup(); TESTNAME(); printf(" SUCCESS\n");
14
-
15
- DEFINE_FFF_GLOBALS;
16
-
17
- /* SYSTEM.h */
18
- FAKE_VOID_FUNC2(SYSTEM_register_irq, irq_func_t, unsigned int);
19
- /* DISPLAY.h */
20
- FAKE_VOID_FUNC(DISPLAY_init);
21
- FAKE_VOID_FUNC(DISPLAY_clear);
22
- FAKE_VOID_FUNC(DISPLAY_output, char *);
23
- FAKE_VALUE_FUNC(unsigned int, DISPLAY_get_line_capacity);
24
- FAKE_VALUE_FUNC(unsigned int, DISPLAY_get_line_insert_index);
25
-
26
- FAKE_VOID_FUNC0(button_press_cbk);
27
-
28
-
29
-
30
- /* Initialializers called for every test */
31
- void setup()
32
- {
33
- RESET_FAKE(SYSTEM_register_irq);
34
-
35
- RESET_FAKE(DISPLAY_init)
36
- RESET_FAKE(DISPLAY_clear)
37
- RESET_FAKE(DISPLAY_output)
38
- RESET_FAKE(DISPLAY_get_line_capacity)
39
- RESET_FAKE(DISPLAY_get_line_insert_index);
40
-
41
- RESET_FAKE(button_press_cbk);
42
-
43
- FFF_RESET_HISTORY();
44
-
45
- DISPLAY_get_line_capacity_fake.return_val = 2;
46
- }
47
-
48
- /* Tests go here */
49
- TEST_F(UITests, init_will_initialise_display)
50
- {
51
- UI_init();
52
- assert(DISPLAY_init_fake.call_count == 1);
53
- }
54
-
55
- TEST_F(UITests, init_will_register_interrupt_gpio2)
56
- {
57
- UI_init();
58
- assert(SYSTEM_register_irq_fake.call_count == 1);
59
- assert(SYSTEM_register_irq_fake.arg0_val == UI_button_irq_handler);
60
- assert(SYSTEM_register_irq_fake.arg1_val == IRQ_GPIO_2);
61
- }
62
-
63
- TEST_F(UITests, when_no_irq_then_missed_irq_counter_zero)
64
- {
65
- assert(UI_get_missed_irqs() == 0);
66
- }
67
-
68
- TEST_F(UITests, when_one_irq_and_no_handler_then_missed_irq_counter_one)
69
- {
70
- UI_button_irq_handler();
71
- assert(UI_get_missed_irqs() == 1);
72
- }
73
-
74
- TEST_F(UITests, when_one_irq_and_valid_callback_then_missed_irq_counter_zero)
75
- {
76
- UI_init();
77
- UI_register_button_cbk(button_press_cbk);
78
- UI_button_irq_handler();
79
- assert(UI_get_missed_irqs() == 0);
80
- }
81
-
82
- TEST_F(UITests, when_one_irq_and_valid_callback_then_callback_called)
83
- {
84
- UI_register_button_cbk(button_press_cbk);
85
- UI_button_irq_handler();
86
- assert(button_press_cbk_fake.call_count == 1);
87
- }
88
-
89
- TEST_F(UITests, write_line_outputs_lines_to_display)
90
- {
91
- char msg[] = "helloworld";
92
- UI_write_line(msg);
93
- assert(DISPLAY_output_fake.call_count == 1);
94
- assert(strncmp(DISPLAY_output_fake.arg0_val, msg, 26) == 0);
95
- }
96
-
97
- TEST_F(UITests, when_no_empty_lines_write_line_clears_screen_and_outputs_lines_to_display)
98
- {
99
- DISPLAY_get_line_insert_index_fake.return_val = 2;
100
- char msg[] = "helloworld";
101
-
102
- UI_write_line(msg);
103
-
104
- assert(DISPLAY_clear_fake.call_count == 1);
105
- assert(DISPLAY_output_fake.call_count == 1);
106
- // Check the order of the calls: Don't care about the first two:
107
- // DISPLAY_get_line_capacity and DISPLAY_get_line_insert_index
108
- assert(fff.call_history_idx == 4);
109
- assert(fff.call_history[2] == (void *) DISPLAY_clear);
110
- assert(fff.call_history[3] == (void *) DISPLAY_output);
111
- }
112
-
113
- TEST_F(UITests, when_empty_lines_write_line_doesnt_clear_screen)
114
- {
115
- // given
116
- DISPLAY_get_line_insert_index_fake.return_val = 1;
117
- char msg[] = "helloworld";
118
- // when
119
- UI_write_line(msg);
120
- // then
121
- assert(DISPLAY_clear_fake.call_count == 0);
122
- }
123
-
124
- TEST_F(UITests, when_string_longer_than_26_then_truncated_string_output)
125
- {
126
- // given
127
- char input[] = "abcdefghijklmnopqrstuvwxyz0123456789";
128
- char expected[] = "abcdefghijklmnopqrstuvwxyz";
129
- // when
130
- UI_write_line(input);
131
- // then
132
- assert(strncmp(expected, DISPLAY_output_fake.arg0_val, 37) == 0);
133
- }
134
-
135
- TEST_F(UITests, when_outputting_to_full_display_then_previous_inserted)
136
- {
137
- // given
138
- DISPLAY_get_line_insert_index_fake.return_val = 1;
139
- char oldest[] = "oldest";
140
- char newest[] = "newest";
141
- // when
142
- UI_write_line(oldest);
143
- UI_write_line(newest);
144
- // then
145
-
146
- assert(DISPLAY_output_fake.call_count == 2);
147
-
148
- // fills last line
149
- assert(strncmp(oldest, DISPLAY_output_fake.arg0_history[0], 37) == 0);
150
- //clears
151
- assert(DISPLAY_clear_fake.call_count == 1);
152
- // inserts old line at first
153
- assert(strncmp(oldest, DISPLAY_output_fake.arg0_history[1], 37) == 0);
154
- // then inserts new line
155
- assert(strncmp(newest, DISPLAY_output_fake.arg0_history[2], 37) == 0);
156
- }
157
-
158
- int main()
159
- {
160
- setbuf(stdout, NULL);
161
- fprintf(stdout, "-------------\n");
162
- fprintf(stdout, "Running Tests\n");
163
- fprintf(stdout, "-------------\n\n");
164
- fflush(0);
165
-
166
- /* Run tests */
167
- RUN_TEST(UITests, init_will_initialise_display);
168
- RUN_TEST(UITests, init_will_register_interrupt_gpio2);
169
- RUN_TEST(UITests, when_no_irq_then_missed_irq_counter_zero);
170
- RUN_TEST(UITests, when_one_irq_and_no_handler_then_missed_irq_counter_one);
171
- RUN_TEST(UITests, when_one_irq_and_valid_callback_then_missed_irq_counter_zero);
172
- RUN_TEST(UITests, when_one_irq_and_valid_callback_then_callback_called);
173
- RUN_TEST(UITests, write_line_outputs_lines_to_display);
174
- RUN_TEST(UITests, when_no_empty_lines_write_line_clears_screen_and_outputs_lines_to_display);
175
- RUN_TEST(UITests, when_empty_lines_write_line_doesnt_clear_screen);
176
- RUN_TEST(UITests, when_string_longer_than_26_then_truncated_string_output);
177
-
178
- printf("\n-------------\n");
179
- printf("Complete\n");
180
- printf("-------------\n\n");
181
-
182
- return 0;
183
- }
@@ -1,136 +0,0 @@
1
- extern "C"{
2
- #include "UI.h"
3
- #include "SYSTEM.h"
4
- #include "DISPLAY.h"
5
- }
6
- #include <gtest/gtest.h>
7
-
8
-
9
- #include "../../fff.h"
10
- DEFINE_FFF_GLOBALS;
11
-
12
- /* SYSTEM.h */
13
- FAKE_VOID_FUNC(SYSTEM_register_irq, irq_func_t, unsigned int);
14
- /* DISPLAY.h */
15
- FAKE_VOID_FUNC(DISPLAY_init);
16
- FAKE_VOID_FUNC(DISPLAY_clear);
17
- FAKE_VOID_FUNC(DISPLAY_output, char *);
18
- FAKE_VALUE_FUNC(unsigned int, DISPLAY_get_line_capacity);
19
- FAKE_VALUE_FUNC(unsigned int, DISPLAY_get_line_insert_index);
20
-
21
- FAKE_VOID_FUNC(button_press_cbk);
22
-
23
-
24
- class UITests : public testing::Test
25
- {
26
- public:
27
-
28
- void SetUp()
29
- {
30
- // Register resets
31
- RESET_FAKE(SYSTEM_register_irq);
32
-
33
- RESET_FAKE(DISPLAY_init)
34
- RESET_FAKE(DISPLAY_clear)
35
- RESET_FAKE(DISPLAY_output)
36
- RESET_FAKE(DISPLAY_get_line_capacity)
37
- RESET_FAKE(DISPLAY_get_line_insert_index);
38
-
39
- RESET_FAKE(button_press_cbk);
40
-
41
- FFF_RESET_HISTORY();
42
- // non default init
43
- DISPLAY_get_line_capacity_fake.return_val = 2;
44
- }
45
- };
46
-
47
-
48
-
49
- /* Tests go here */
50
- TEST_F(UITests, init_will_initialise_display)
51
- {
52
- UI_init();
53
- ASSERT_EQ(DISPLAY_init_fake.call_count, 1);
54
- }
55
-
56
- TEST_F(UITests, init_will_register_interrupt_gpio2)
57
- {
58
- UI_init();
59
- ASSERT_EQ(SYSTEM_register_irq_fake.call_count, 1);
60
- ASSERT_EQ((void *)SYSTEM_register_irq_fake.arg0_val, (void *)UI_button_irq_handler);
61
- ASSERT_EQ(SYSTEM_register_irq_fake.arg1_val, IRQ_GPIO_2);
62
- }
63
-
64
- TEST_F(UITests, when_no_irq_then_missed_irq_counter_zero)
65
- {
66
- ASSERT_EQ(UI_get_missed_irqs(), 0);
67
- }
68
-
69
- TEST_F(UITests, when_one_irq_and_no_handler_then_missed_irq_counter_one)
70
- {
71
- UI_button_irq_handler();
72
- ASSERT_EQ(UI_get_missed_irqs(), 1);
73
- }
74
-
75
- TEST_F(UITests, when_one_irq_and_valid_callback_then_missed_irq_counter_zero)
76
- {
77
- UI_init();
78
- UI_register_button_cbk(button_press_cbk);
79
- UI_button_irq_handler();
80
- ASSERT_EQ(UI_get_missed_irqs(), 0);
81
- }
82
-
83
- TEST_F(UITests, when_one_irq_and_valid_callback_then_callback_called)
84
- {
85
- UI_register_button_cbk(button_press_cbk);
86
- UI_button_irq_handler();
87
- ASSERT_EQ(button_press_cbk_fake.call_count, 1);
88
- }
89
-
90
- TEST_F(UITests, write_line_outputs_lines_to_display)
91
- {
92
- char msg[] = "helloworld";
93
- UI_write_line(msg);
94
- ASSERT_EQ(DISPLAY_output_fake.call_count, 1);
95
- ASSERT_EQ(strncmp(DISPLAY_output_fake.arg0_val, msg, 26), 0);
96
- }
97
-
98
- TEST_F(UITests, when_no_empty_lines_write_line_clears_screen_and_outputs_lines_to_display)
99
- {
100
- DISPLAY_get_line_insert_index_fake.return_val = 2;
101
- char msg[] = "helloworld";
102
-
103
- UI_write_line(msg);
104
-
105
- ASSERT_EQ(DISPLAY_clear_fake.call_count, 1);
106
- ASSERT_EQ(DISPLAY_output_fake.call_count, 1);
107
- // Check the order of the calls: Don't care about the first two:
108
- // DISPLAY_get_line_capacity and DISPLAY_get_line_insert_index
109
- ASSERT_EQ(fff.call_history_idx, 4);
110
- ASSERT_EQ(fff.call_history[2], (void *) DISPLAY_clear);
111
- ASSERT_EQ(fff.call_history[3], (void *) DISPLAY_output);
112
- }
113
-
114
- TEST_F(UITests, when_empty_lines_write_line_doesnt_clear_screen)
115
- {
116
- // given
117
- DISPLAY_get_line_insert_index_fake.return_val = 1;
118
- char msg[] = "helloworld";
119
- // when
120
- UI_write_line(msg);
121
- // then
122
- ASSERT_EQ(DISPLAY_clear_fake.call_count, 0);
123
- }
124
-
125
- TEST_F(UITests, when_string_longer_than_26_then_truncated_string_output)
126
- {
127
- // given
128
- char input[] = "abcdefghijklmnopqrstuvwxyz0123456789";
129
- char expected[] = "abcdefghijklmnopqrstuvwxyz";
130
- // when
131
- UI_write_line(input);
132
- // then
133
- ASSERT_EQ(strncmp(expected, DISPLAY_output_fake.arg0_val, 37), 0);
134
- }
135
-
136
-
@@ -1,34 +0,0 @@
1
- #include "../../test/c_test_framework.h"
2
-
3
- /* Initialializers called for every test */
4
- void setup()
5
- {
6
-
7
- }
8
-
9
- /* Tests go here */
10
- TEST_F(GreeterTests, hello_world)
11
- {
12
- assert(1 == 0);
13
- }
14
-
15
-
16
-
17
- int main()
18
- {
19
- setbuf(stderr, NULL);
20
- fprintf(stdout, "-------------\n");
21
- fprintf(stdout, "Running Tests\n");
22
- fprintf(stdout, "-------------\n\n");
23
- fflush(0);
24
-
25
- /* Run tests */
26
- RUN_TEST(GreeterTests, hello_world);
27
-
28
-
29
- printf("\n-------------\n");
30
- printf("Complete\n");
31
- printf("-------------\n\n");
32
-
33
- return 0;
34
- }
@@ -1,420 +0,0 @@
1
-
2
- # fakegen.rb
3
- # A simple code generator to create some C macros for defining test fake functions
4
-
5
-
6
- $cpp_output = true
7
- $MAX_ARGS = 20
8
- $DEFAULT_ARG_HISTORY = 50
9
- $MAX_CALL_HISTORY = 50
10
-
11
- def output_constants
12
- putd "#define FFF_MAX_ARGS (#{$MAX_ARGS}u)"
13
- putd "#ifndef FFF_ARG_HISTORY_LEN"
14
- putd " #define FFF_ARG_HISTORY_LEN (#{$DEFAULT_ARG_HISTORY}u)"
15
- putd "#endif"
16
- putd "#ifndef FFF_CALL_HISTORY_LEN"
17
- putd " #define FFF_CALL_HISTORY_LEN (#{$MAX_CALL_HISTORY}u)"
18
- putd "#endif"
19
- end
20
-
21
-
22
-
23
-
24
-
25
- # ------ Helper macros to use internally ------ #
26
- def output_internal_helper_macros
27
- putd "/* -- INTERNAL HELPER MACROS -- */"
28
-
29
- define_return_sequence_helper
30
- define_reset_fake_macro
31
- define_declare_arg_helper
32
- define_declare_all_func_common_helper
33
- define_save_arg_helper
34
- define_room_for_more_history
35
- define_save_arg_history_helper
36
- define_history_dropped_helper
37
- define_value_function_variables_helper
38
- define_increment_call_count_helper
39
- define_return_fake_result_helper
40
- define_extern_c_helper
41
- define_reset_fake_helper
42
-
43
- putd "/* -- END INTERNAL HELPER MACROS -- */"
44
- putd ""
45
- end
46
-
47
- def define_return_sequence_helper
48
- putd "#define SET_RETURN_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \\"
49
- putd " FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \\"
50
- putd " FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN;"
51
- end
52
-
53
- def define_reset_fake_macro
54
- putd ""
55
- putd "/* Defining a function to reset a fake function */"
56
- putd "#define RESET_FAKE(FUNCNAME) { \\"
57
- putd " FUNCNAME##_reset(); \\"
58
- putd "} \\"
59
- putd ""
60
- end
61
-
62
- def define_declare_arg_helper
63
- putd ""
64
- putd "#define DECLARE_ARG(type, n, FUNCNAME) \\"
65
- putd " type arg##n##_val; \\"
66
- putd " type arg##n##_history[FFF_ARG_HISTORY_LEN];"
67
- end
68
-
69
- def define_declare_all_func_common_helper
70
- putd ""
71
- putd "#define DECLARE_ALL_FUNC_COMMON \\"
72
- putd " unsigned int call_count; \\"
73
- putd " unsigned int arg_history_len;\\"
74
- putd " unsigned int arg_histories_dropped; \\"
75
- end
76
-
77
- def define_save_arg_helper
78
- putd ""
79
- putd "#define SAVE_ARG(FUNCNAME, n) \\"
80
- putd " memcpy((void*)&FUNCNAME##_fake.arg##n##_val, (void*)&arg##n, sizeof(arg##n));"
81
- end
82
-
83
- def define_room_for_more_history
84
- putd ""
85
- putd "#define ROOM_FOR_MORE_HISTORY(FUNCNAME) \\"
86
- putd " FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN"
87
- end
88
-
89
- def define_save_arg_history_helper
90
- putd ""
91
- putd "#define SAVE_ARG_HISTORY(FUNCNAME, ARGN) \\"
92
- putd " memcpy((void*)&FUNCNAME##_fake.arg##ARGN##_history[FUNCNAME##_fake.call_count], (void*)&arg##ARGN, sizeof(arg##ARGN));"
93
- end
94
-
95
- def define_history_dropped_helper
96
- putd ""
97
- putd "#define HISTORY_DROPPED(FUNCNAME) \\"
98
- putd " FUNCNAME##_fake.arg_histories_dropped++"
99
- end
100
-
101
- def define_value_function_variables_helper
102
- putd ""
103
- putd "#define DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \\"
104
- putd " RETURN_TYPE return_val; \\"
105
- putd " int return_val_seq_len; \\"
106
- putd " int return_val_seq_idx; \\"
107
- putd " RETURN_TYPE * return_val_seq; \\"
108
- end
109
-
110
- def define_increment_call_count_helper
111
- putd ""
112
- putd "#define INCREMENT_CALL_COUNT(FUNCNAME) \\"
113
- putd " FUNCNAME##_fake.call_count++"
114
- end
115
-
116
- def define_return_fake_result_helper
117
- putd ""
118
- putd "#define RETURN_FAKE_RESULT(FUNCNAME) \\"
119
- putd " if (FUNCNAME##_fake.return_val_seq_len){ /* then its a sequence */ \\"
120
- putd " if(FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) { \\"
121
- putd " return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \\"
122
- putd " } \\"
123
- putd " return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]; /* return last element */ \\"
124
- putd " } \\"
125
- putd " return FUNCNAME##_fake.return_val; \\"
126
- end
127
-
128
- def define_extern_c_helper
129
- putd ""
130
- putd "#ifdef __cplusplus"
131
- putd " #define FFF_EXTERN_C extern \"C\"{"
132
- putd " #define FFF_END_EXTERN_C } "
133
- putd "#else /* ansi c */"
134
- putd " #define FFF_EXTERN_C "
135
- putd " #define FFF_END_EXTERN_C "
136
- putd "#endif /* cpp/ansi c */"
137
- end
138
-
139
- def define_reset_fake_helper
140
- putd ""
141
- putd "#define DEFINE_RESET_FUNCTION(FUNCNAME) \\"
142
- putd " void FUNCNAME##_reset(){ \\"
143
- putd " memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \\"
144
- putd " FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\\"
145
- putd " }"
146
- end
147
- # ------ End Helper macros ------ #
148
-
149
- #fakegen helpers to print at levels of indentation
150
- $current_depth = 0
151
- def putd(str)
152
- $current_depth.times {|not_used| print " "}
153
- puts str
154
- end
155
-
156
- def pushd
157
- $current_depth = $current_depth + 4
158
- end
159
-
160
- def popd
161
- $current_depth = $current_depth - 4
162
- end
163
-
164
- def output_macro(arg_count, has_varargs, is_value_function)
165
-
166
- vararg_name = has_varargs ? "_VARARG" : ""
167
- fake_macro_name = is_value_function ? "FAKE_VALUE_FUNC#{arg_count}#{vararg_name}" : "FAKE_VOID_FUNC#{arg_count}#{vararg_name}"
168
- declare_macro_name = "DECLARE_#{fake_macro_name}"
169
- define_macro_name = "DEFINE_#{fake_macro_name}"
170
- saved_arg_count = arg_count - (has_varargs ? 1 : 0)
171
- return_type = is_value_function ? "RETURN_TYPE" : ""
172
-
173
- putd ""
174
- output_macro_header(declare_macro_name, saved_arg_count, has_varargs, return_type)
175
- pushd
176
- extern_c { # define argument capture variables
177
- output_variables(saved_arg_count, has_varargs, is_value_function)
178
- }
179
- popd
180
-
181
- putd ""
182
- output_macro_header(define_macro_name, saved_arg_count, has_varargs, return_type)
183
- pushd
184
- extern_c {
185
- putd "FUNCNAME##_Fake FUNCNAME##_fake;\\"
186
- putd function_signature(saved_arg_count, has_varargs, is_value_function) + "{ \\"
187
- pushd
188
- output_function_body(saved_arg_count, has_varargs, is_value_function)
189
- popd
190
- putd "} \\"
191
- putd "DEFINE_RESET_FUNCTION(FUNCNAME) \\"
192
- }
193
- popd
194
-
195
- putd ""
196
-
197
- output_macro_header(fake_macro_name, saved_arg_count, has_varargs, return_type)
198
- pushd
199
- putd macro_signature_for(declare_macro_name, saved_arg_count, has_varargs, return_type)
200
- putd macro_signature_for(define_macro_name, saved_arg_count, has_varargs, return_type)
201
- putd ""
202
- popd
203
- end
204
-
205
- def output_macro_header(macro_name, arg_count, has_varargs, return_type)
206
- output_macro_name(macro_name, arg_count, has_varargs, return_type)
207
- end
208
-
209
- # #define #macro_name(RETURN_TYPE, FUNCNAME, ARG0,...)
210
- def output_macro_name(macro_name, arg_count, has_varargs, return_type)
211
- putd "#define " + macro_signature_for(macro_name, arg_count, has_varargs, return_type)
212
- end
213
-
214
- # #macro_name(RETURN_TYPE, FUNCNAME, ARG0,...)
215
- def macro_signature_for(macro_name, arg_count, has_varargs, return_type)
216
- parameter_list = "#{macro_name}("
217
- if return_type != ""
218
- parameter_list += return_type
219
- parameter_list += ", "
220
- end
221
- parameter_list += "FUNCNAME"
222
-
223
- arg_count.times { |i| parameter_list += ", ARG#{i}_TYPE" }
224
-
225
- parameter_list += ", ..." if has_varargs
226
-
227
- parameter_list += ") \\"
228
-
229
- parameter_list
230
- end
231
-
232
- def output_argument_capture_variables(argN)
233
- putd " DECLARE_ARG(ARG#{argN}_TYPE, #{argN}, FUNCNAME) \\"
234
- end
235
-
236
- def output_variables(arg_count, has_varargs, is_value_function)
237
- in_struct{
238
- arg_count.times { |argN|
239
- putd "DECLARE_ARG(ARG#{argN}_TYPE, #{argN}, FUNCNAME) \\"
240
- }
241
- putd "DECLARE_ALL_FUNC_COMMON \\"
242
- putd "DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \\" unless not is_value_function
243
- output_custom_function_signature(arg_count, has_varargs, is_value_function)
244
- }
245
- putd "extern FUNCNAME##_Fake FUNCNAME##_fake;\\"
246
- putd "void FUNCNAME##_reset(); \\"
247
- end
248
-
249
- #example: ARG0_TYPE arg0, ARG1_TYPE arg1
250
- def arg_val_list(args_count)
251
- arguments = []
252
- args_count.times { |i| arguments << "ARG#{i}_TYPE arg#{i}" }
253
- arguments.join(", ")
254
- end
255
-
256
- #example: arg0, arg1
257
- def arg_list(args_count)
258
- arguments = []
259
- args_count.times { |i| arguments << "arg#{i}" }
260
- arguments.join(", ")
261
- end
262
-
263
- # RETURN_TYPE (*custom_fake)(ARG0_TYPE arg0);\
264
- # void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2);\
265
- def output_custom_function_signature(arg_count, has_varargs, is_value_function)
266
- return_type = is_value_function ? "RETURN_TYPE" : "void"
267
- signature = "(*custom_fake)(#{arg_val_list(arg_count)}); \\"
268
- putd return_type + signature
269
- end
270
-
271
- # example: RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1)
272
- def function_signature(arg_count, has_varargs, is_value_function)
273
- return_type = is_value_function ? "RETURN_TYPE" : "void"
274
- varargs = has_varargs ? ", ..." : ""
275
- "#{return_type} FUNCNAME(#{arg_val_list(arg_count)}#{varargs})"
276
- end
277
-
278
- def output_function_body(arg_count, has_varargs, is_value_function)
279
- arg_count.times { |i| putd "SAVE_ARG(FUNCNAME, #{i}); \\" }
280
- putd "if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\\"
281
- arg_count.times { |i| putd " SAVE_ARG_HISTORY(FUNCNAME, #{i}); \\" }
282
- putd "}\\"
283
- putd "else{\\"
284
- putd " HISTORY_DROPPED(FUNCNAME);\\"
285
- putd "}\\"
286
- putd "INCREMENT_CALL_COUNT(FUNCNAME); \\"
287
- putd "REGISTER_CALL(FUNCNAME); \\"
288
-
289
- return_type = is_value_function ? "return" : ""
290
- putd "if (FUNCNAME##_fake.custom_fake) #{return_type} FUNCNAME##_fake.custom_fake(#{arg_list(arg_count)}); \\"
291
-
292
- putd "RETURN_FAKE_RESULT(FUNCNAME) \\" if is_value_function
293
- end
294
-
295
- def output_reset_function(arg_count, is_value_function)
296
- putd "void FUNCNAME##_reset(){ \\"
297
- putd " memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \\"
298
- putd " FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\\"
299
- putd "} \\"
300
- end
301
-
302
- def define_fff_globals
303
- putd "typedef struct { "
304
- putd " void * call_history[FFF_CALL_HISTORY_LEN];"
305
- putd " unsigned int call_history_idx;"
306
- putd "} fff_globals_t;"
307
- putd ""
308
- putd "FFF_EXTERN_C \\"
309
- putd "extern fff_globals_t fff;"
310
- putd "FFF_END_EXTERN_C \\"
311
- putd ""
312
- putd "#define DEFINE_FFF_GLOBALS \\"
313
- putd " FFF_EXTERN_C \\"
314
- putd " fff_globals_t fff; \\"
315
- putd " FFF_END_EXTERN_C"
316
- putd ""
317
- putd "#define FFF_RESET_HISTORY() fff.call_history_idx = 0;"
318
- putd ""
319
- putd "#define REGISTER_CALL(function) \\"
320
- putd " if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \\"
321
- putd " fff.call_history[fff.call_history_idx++] = (void *)function;"
322
- end
323
-
324
- def extern_c
325
- putd "FFF_EXTERN_C \\"
326
- pushd
327
- yield
328
- popd
329
- putd "FFF_END_EXTERN_C \\"
330
- end
331
-
332
- def in_struct
333
- putd "typedef struct FUNCNAME##_Fake { \\"
334
- pushd
335
- yield
336
- popd
337
- putd "} FUNCNAME##_Fake;\\"
338
- end
339
-
340
- def include_guard
341
- putd "#ifndef FAKE_FUNCTIONS"
342
- putd "#define FAKE_FUNCTIONS"
343
- putd ""
344
-
345
- yield
346
-
347
- putd ""
348
- putd "#endif /* FAKE_FUNCTIONS */"
349
- end
350
-
351
- def output_macro_counting_shortcuts
352
- putd <<-MACRO_COUNTING
353
-
354
- #define PP_NARG_MINUS2(...) \
355
- PP_NARG_MINUS2_(__VA_ARGS__, PP_RSEQ_N_MINUS2())
356
-
357
- #define PP_NARG_MINUS2_(...) \
358
- PP_ARG_MINUS2_N(__VA_ARGS__)
359
-
360
- #define PP_ARG_MINUS2_N(returnVal, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, N, ...) N
361
-
362
- #define PP_RSEQ_N_MINUS2() \
363
- 19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
364
-
365
-
366
- #define FAKE_VALUE_FUNC(...) \
367
- FUNC_VALUE_(PP_NARG_MINUS2(__VA_ARGS__), __VA_ARGS__)
368
-
369
- #define FUNC_VALUE_(N,...) \
370
- FUNC_VALUE_N(N,__VA_ARGS__)
371
-
372
- #define FUNC_VALUE_N(N,...) \
373
- FAKE_VALUE_FUNC ## N(__VA_ARGS__)
374
-
375
-
376
-
377
- #define PP_NARG_MINUS1(...) \
378
- PP_NARG_MINUS1_(__VA_ARGS__, PP_RSEQ_N_MINUS1())
379
-
380
- #define PP_NARG_MINUS1_(...) \
381
- PP_ARG_MINUS1_N(__VA_ARGS__)
382
-
383
- #define PP_ARG_MINUS1_N(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, N, ...) N
384
-
385
- #define PP_RSEQ_N_MINUS1() \
386
- 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
387
-
388
- #define FAKE_VOID_FUNC(...) \
389
- FUNC_VOID_(PP_NARG_MINUS1(__VA_ARGS__), __VA_ARGS__)
390
-
391
- #define FUNC_VOID_(N,...) \
392
- FUNC_VOID_N(N,__VA_ARGS__)
393
-
394
- #define FUNC_VOID_N(N,...) \
395
- FAKE_VOID_FUNC ## N(__VA_ARGS__)
396
-
397
- MACRO_COUNTING
398
- end
399
-
400
- def output_c_and_cpp
401
-
402
- include_guard {
403
- output_constants
404
- output_internal_helper_macros
405
- yield
406
- output_macro_counting_shortcuts
407
- }
408
- end
409
-
410
- # lets generate!!
411
- output_c_and_cpp{
412
- define_fff_globals
413
- # Create fake generators for 0..MAX_ARGS
414
- num_fake_generators = $MAX_ARGS + 1
415
- num_fake_generators.times {|arg_count| output_macro(arg_count, false, false)}
416
- num_fake_generators.times {|arg_count| output_macro(arg_count, false, true)}
417
- # generate the varargs variants
418
- (2..$MAX_ARGS).each {|arg_count| output_macro(arg_count, true, false)}
419
- (2..$MAX_ARGS).each {|arg_count| output_macro(arg_count, true, true)}
420
- }