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,57 +0,0 @@
1
- /* Copyright (c) 2010 James Grenning and Contributed to Unity Project
2
- * ==========================================
3
- * Unity Project - A Test Framework for C
4
- * Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5
- * [Released under MIT License. Please refer to license.txt for details]
6
- * ========================================== */
7
-
8
- #include "unity_fixture.h"
9
-
10
- TEST_GROUP_RUNNER(UnityFixture)
11
- {
12
- RUN_TEST_CASE(UnityFixture, PointerSetting);
13
- RUN_TEST_CASE(UnityFixture, ForceMallocFail);
14
- RUN_TEST_CASE(UnityFixture, ReallocSmallerIsUnchanged);
15
- RUN_TEST_CASE(UnityFixture, ReallocSameIsUnchanged);
16
- RUN_TEST_CASE(UnityFixture, ReallocLargerNeeded);
17
- RUN_TEST_CASE(UnityFixture, ReallocNullPointerIsLikeMalloc);
18
- RUN_TEST_CASE(UnityFixture, ReallocSizeZeroFreesMemAndReturnsNullPointer);
19
- RUN_TEST_CASE(UnityFixture, CallocFillsWithZero);
20
- RUN_TEST_CASE(UnityFixture, PointerSet);
21
- RUN_TEST_CASE(UnityFixture, FreeNULLSafety);
22
- RUN_TEST_CASE(UnityFixture, ConcludeTestIncrementsFailCount);
23
- }
24
-
25
- TEST_GROUP_RUNNER(UnityCommandOptions)
26
- {
27
- RUN_TEST_CASE(UnityCommandOptions, DefaultOptions);
28
- RUN_TEST_CASE(UnityCommandOptions, OptionVerbose);
29
- RUN_TEST_CASE(UnityCommandOptions, OptionSelectTestByGroup);
30
- RUN_TEST_CASE(UnityCommandOptions, OptionSelectTestByName);
31
- RUN_TEST_CASE(UnityCommandOptions, OptionSelectRepeatTestsDefaultCount);
32
- RUN_TEST_CASE(UnityCommandOptions, OptionSelectRepeatTestsSpecificCount);
33
- RUN_TEST_CASE(UnityCommandOptions, MultipleOptions);
34
- RUN_TEST_CASE(UnityCommandOptions, MultipleOptionsDashRNotLastAndNoValueSpecified);
35
- RUN_TEST_CASE(UnityCommandOptions, UnknownCommandIsIgnored);
36
- RUN_TEST_CASE(UnityCommandOptions, GroupOrNameFilterWithoutStringFails);
37
- RUN_TEST_CASE(UnityCommandOptions, GroupFilterReallyFilters);
38
- RUN_TEST_CASE(UnityCommandOptions, TestShouldBeIgnored);
39
- }
40
-
41
- TEST_GROUP_RUNNER(LeakDetection)
42
- {
43
- RUN_TEST_CASE(LeakDetection, DetectsLeak);
44
- RUN_TEST_CASE(LeakDetection, BufferOverrunFoundDuringFree);
45
- RUN_TEST_CASE(LeakDetection, BufferOverrunFoundDuringRealloc);
46
- RUN_TEST_CASE(LeakDetection, BufferGuardWriteFoundDuringFree);
47
- RUN_TEST_CASE(LeakDetection, BufferGuardWriteFoundDuringRealloc);
48
- RUN_TEST_CASE(LeakDetection, PointerSettingMax);
49
- }
50
-
51
- TEST_GROUP_RUNNER(InternalMalloc)
52
- {
53
- RUN_TEST_CASE(InternalMalloc, MallocPastBufferFails);
54
- RUN_TEST_CASE(InternalMalloc, CallocPastBufferFails);
55
- RUN_TEST_CASE(InternalMalloc, MallocThenReallocGrowsMemoryInPlace);
56
- RUN_TEST_CASE(InternalMalloc, ReallocFailDoesNotFreeMem);
57
- }
@@ -1,57 +0,0 @@
1
- /* Copyright (c) 2010 James Grenning and Contributed to Unity Project
2
- * ==========================================
3
- * Unity Project - A Test Framework for C
4
- * Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5
- * [Released under MIT License. Please refer to license.txt for details]
6
- * ========================================== */
7
-
8
-
9
- #include "unity_output_Spy.h"
10
- #include "unity_fixture.h"
11
-
12
- #include <stdio.h>
13
- #include <string.h>
14
-
15
- static int size;
16
- static int count;
17
- static char* buffer;
18
- static int spy_enable;
19
-
20
- void UnityOutputCharSpy_Create(int s)
21
- {
22
- size = (s > 0) ? s : 0;
23
- count = 0;
24
- spy_enable = 0;
25
- buffer = malloc((size_t)size);
26
- TEST_ASSERT_NOT_NULL_MESSAGE(buffer, "Internal malloc failed in Spy Create():" __FILE__);
27
- memset(buffer, 0, (size_t)size);
28
- }
29
-
30
- void UnityOutputCharSpy_Destroy(void)
31
- {
32
- size = 0;
33
- free(buffer);
34
- }
35
-
36
- void UnityOutputCharSpy_OutputChar(int c)
37
- {
38
- if (spy_enable)
39
- {
40
- if (count < (size-1))
41
- buffer[count++] = (char)c;
42
- }
43
- else
44
- {
45
- putchar(c);
46
- }
47
- }
48
-
49
- const char * UnityOutputCharSpy_Get(void)
50
- {
51
- return buffer;
52
- }
53
-
54
- void UnityOutputCharSpy_Enable(int enable)
55
- {
56
- spy_enable = enable;
57
- }
@@ -1,17 +0,0 @@
1
- /* Copyright (c) 2010 James Grenning and Contributed to Unity Project
2
- * ==========================================
3
- * Unity Project - A Test Framework for C
4
- * Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5
- * [Released under MIT License. Please refer to license.txt for details]
6
- * ========================================== */
7
-
8
- #ifndef D_unity_output_Spy_H
9
- #define D_unity_output_Spy_H
10
-
11
- void UnityOutputCharSpy_Create(int s);
12
- void UnityOutputCharSpy_Destroy(void);
13
- void UnityOutputCharSpy_OutputChar(int c);
14
- const char * UnityOutputCharSpy_Get(void);
15
- void UnityOutputCharSpy_Enable(int enable);
16
-
17
- #endif
@@ -1,1517 +0,0 @@
1
- /* =========================================================================
2
- Unity Project - A Test Framework for C
3
- Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams
4
- [Released under MIT License. Please refer to license.txt for details]
5
- ============================================================================ */
6
-
7
- #include "unity.h"
8
- #include <stddef.h>
9
-
10
- /* If omitted from header, declare overrideable prototypes here so they're ready for use */
11
- #ifdef UNITY_OMIT_OUTPUT_CHAR_HEADER_DECLARATION
12
- void UNITY_OUTPUT_CHAR(int);
13
- #endif
14
-
15
- /* Helpful macros for us to use here in Assert functions */
16
- #define UNITY_FAIL_AND_BAIL { Unity.CurrentTestFailed = 1; TEST_ABORT(); }
17
- #define UNITY_IGNORE_AND_BAIL { Unity.CurrentTestIgnored = 1; TEST_ABORT(); }
18
- #define RETURN_IF_FAIL_OR_IGNORE if (Unity.CurrentTestFailed || Unity.CurrentTestIgnored) return
19
-
20
- struct UNITY_STORAGE_T Unity;
21
-
22
- static const char UnityStrOk[] = "OK";
23
- static const char UnityStrPass[] = "PASS";
24
- static const char UnityStrFail[] = "FAIL";
25
- static const char UnityStrIgnore[] = "IGNORE";
26
- static const char UnityStrNull[] = "NULL";
27
- static const char UnityStrSpacer[] = ". ";
28
- static const char UnityStrExpected[] = " Expected ";
29
- static const char UnityStrWas[] = " Was ";
30
- static const char UnityStrElement[] = " Element ";
31
- static const char UnityStrByte[] = " Byte ";
32
- static const char UnityStrMemory[] = " Memory Mismatch.";
33
- static const char UnityStrDelta[] = " Values Not Within Delta ";
34
- static const char UnityStrPointless[] = " You Asked Me To Compare Nothing, Which Was Pointless.";
35
- static const char UnityStrNullPointerForExpected[] = " Expected pointer to be NULL";
36
- static const char UnityStrNullPointerForActual[] = " Actual pointer was NULL";
37
- #ifndef UNITY_EXCLUDE_FLOAT
38
- static const char UnityStrNot[] = "Not ";
39
- static const char UnityStrInf[] = "Infinity";
40
- static const char UnityStrNegInf[] = "Negative Infinity";
41
- static const char UnityStrNaN[] = "NaN";
42
- static const char UnityStrDet[] = "Determinate";
43
- static const char UnityStrInvalidFloatTrait[] = "Invalid Float Trait";
44
- #endif
45
- const char UnityStrErrFloat[] = "Unity Floating Point Disabled";
46
- const char UnityStrErrDouble[] = "Unity Double Precision Disabled";
47
- const char UnityStrErr64[] = "Unity 64-bit Support Disabled";
48
- static const char UnityStrBreaker[] = "-----------------------";
49
- static const char UnityStrResultsTests[] = " Tests ";
50
- static const char UnityStrResultsFailures[] = " Failures ";
51
- static const char UnityStrResultsIgnored[] = " Ignored ";
52
- static const char UnityStrDetail1Name[] = UNITY_DETAIL1_NAME " ";
53
- static const char UnityStrDetail2Name[] = " " UNITY_DETAIL2_NAME " ";
54
-
55
- /*-----------------------------------------------
56
- * Pretty Printers & Test Result Output Handlers
57
- *-----------------------------------------------*/
58
-
59
- void UnityPrint(const char* string)
60
- {
61
- const char* pch = string;
62
-
63
- if (pch != NULL)
64
- {
65
- while (*pch)
66
- {
67
- /* printable characters plus CR & LF are printed */
68
- if ((*pch <= 126) && (*pch >= 32))
69
- {
70
- UNITY_OUTPUT_CHAR(*pch);
71
- }
72
- /* write escaped carriage returns */
73
- else if (*pch == 13)
74
- {
75
- UNITY_OUTPUT_CHAR('\\');
76
- UNITY_OUTPUT_CHAR('r');
77
- }
78
- /* write escaped line feeds */
79
- else if (*pch == 10)
80
- {
81
- UNITY_OUTPUT_CHAR('\\');
82
- UNITY_OUTPUT_CHAR('n');
83
- }
84
- /* unprintable characters are shown as codes */
85
- else
86
- {
87
- UNITY_OUTPUT_CHAR('\\');
88
- UNITY_OUTPUT_CHAR('x');
89
- UnityPrintNumberHex((UNITY_UINT)*pch, 2);
90
- }
91
- pch++;
92
- }
93
- }
94
- }
95
-
96
- void UnityPrintLen(const char* string, const UNITY_UINT32 length)
97
- {
98
- const char* pch = string;
99
-
100
- if (pch != NULL)
101
- {
102
- while (*pch && (UNITY_UINT32)(pch - string) < length)
103
- {
104
- /* printable characters plus CR & LF are printed */
105
- if ((*pch <= 126) && (*pch >= 32))
106
- {
107
- UNITY_OUTPUT_CHAR(*pch);
108
- }
109
- /* write escaped carriage returns */
110
- else if (*pch == 13)
111
- {
112
- UNITY_OUTPUT_CHAR('\\');
113
- UNITY_OUTPUT_CHAR('r');
114
- }
115
- /* write escaped line feeds */
116
- else if (*pch == 10)
117
- {
118
- UNITY_OUTPUT_CHAR('\\');
119
- UNITY_OUTPUT_CHAR('n');
120
- }
121
- /* unprintable characters are shown as codes */
122
- else
123
- {
124
- UNITY_OUTPUT_CHAR('\\');
125
- UNITY_OUTPUT_CHAR('x');
126
- UnityPrintNumberHex((UNITY_UINT)*pch, 2);
127
- }
128
- pch++;
129
- }
130
- }
131
- }
132
-
133
- /*-----------------------------------------------*/
134
- void UnityPrintNumberByStyle(const UNITY_INT number, const UNITY_DISPLAY_STYLE_T style)
135
- {
136
- if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
137
- {
138
- UnityPrintNumber(number);
139
- }
140
- else if ((style & UNITY_DISPLAY_RANGE_UINT) == UNITY_DISPLAY_RANGE_UINT)
141
- {
142
- UnityPrintNumberUnsigned((UNITY_UINT)number);
143
- }
144
- else
145
- {
146
- UNITY_OUTPUT_CHAR('0');
147
- UNITY_OUTPUT_CHAR('x');
148
- UnityPrintNumberHex((UNITY_UINT)number, (char)((style & 0xF) * 2));
149
- }
150
- }
151
-
152
- /*-----------------------------------------------*/
153
- void UnityPrintNumber(const UNITY_INT number_to_print)
154
- {
155
- UNITY_UINT number = (UNITY_UINT)number_to_print;
156
-
157
- if (number_to_print < 0)
158
- {
159
- /* A negative number, including MIN negative */
160
- UNITY_OUTPUT_CHAR('-');
161
- number = (UNITY_UINT)(-number_to_print);
162
- }
163
- UnityPrintNumberUnsigned(number);
164
- }
165
-
166
- /*-----------------------------------------------
167
- * basically do an itoa using as little ram as possible */
168
- void UnityPrintNumberUnsigned(const UNITY_UINT number)
169
- {
170
- UNITY_UINT divisor = 1;
171
-
172
- /* figure out initial divisor */
173
- while (number / divisor > 9)
174
- {
175
- divisor *= 10;
176
- }
177
-
178
- /* now mod and print, then divide divisor */
179
- do
180
- {
181
- UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10)));
182
- divisor /= 10;
183
- } while (divisor > 0);
184
- }
185
-
186
- /*-----------------------------------------------*/
187
- void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print)
188
- {
189
- int nibble;
190
- char nibbles = nibbles_to_print;
191
- if ((unsigned)nibbles > (2 * sizeof(number)))
192
- nibbles = 2 * sizeof(number);
193
-
194
- while (nibbles > 0)
195
- {
196
- nibbles--;
197
- nibble = (int)(number >> (nibbles * 4)) & 0x0F;
198
- if (nibble <= 9)
199
- {
200
- UNITY_OUTPUT_CHAR((char)('0' + nibble));
201
- }
202
- else
203
- {
204
- UNITY_OUTPUT_CHAR((char)('A' - 10 + nibble));
205
- }
206
- }
207
- }
208
-
209
- /*-----------------------------------------------*/
210
- void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number)
211
- {
212
- UNITY_UINT current_bit = (UNITY_UINT)1 << (UNITY_INT_WIDTH - 1);
213
- UNITY_INT32 i;
214
-
215
- for (i = 0; i < UNITY_INT_WIDTH; i++)
216
- {
217
- if (current_bit & mask)
218
- {
219
- if (current_bit & number)
220
- {
221
- UNITY_OUTPUT_CHAR('1');
222
- }
223
- else
224
- {
225
- UNITY_OUTPUT_CHAR('0');
226
- }
227
- }
228
- else
229
- {
230
- UNITY_OUTPUT_CHAR('X');
231
- }
232
- current_bit = current_bit >> 1;
233
- }
234
- }
235
-
236
- /*-----------------------------------------------*/
237
- #ifndef UNITY_EXCLUDE_FLOAT_PRINT
238
- static void UnityPrintDecimalAndNumberWithLeadingZeros(UNITY_INT32 fraction_part, UNITY_INT32 divisor)
239
- {
240
- UNITY_OUTPUT_CHAR('.');
241
- while (divisor > 0)
242
- {
243
- UNITY_OUTPUT_CHAR('0' + fraction_part / divisor);
244
- fraction_part %= divisor;
245
- divisor /= 10;
246
- if (fraction_part == 0) break; /* Truncate trailing 0's */
247
- }
248
- }
249
- #ifndef UNITY_ROUND_TIES_AWAY_FROM_ZERO
250
- /* If rounds up && remainder 0.5 && result odd && below cutoff for double precision issues */
251
- #define ROUND_TIES_TO_EVEN(orig, num_int, num) \
252
- if (num_int > (num) && (num) - (num_int-1) <= 0.5 && (num_int & 1) == 1 && orig < 1e22) \
253
- num_int -= 1 /* => a tie to round down to even */
254
- #else
255
- #define ROUND_TIES_TO_EVEN(orig, num_int, num) /* Remove macro */
256
- #endif
257
-
258
- /* Printing floating point numbers is hard. Some goals of this implementation: works for embedded
259
- * systems, floats or doubles, and has a reasonable format. The key paper in this area,
260
- * 'How to Print Floating-Point Numbers Accurately' by Steele & White, shows an approximation by
261
- * scaling called Dragon 2. This code uses a similar idea. The other core algorithm uses casts and
262
- * floating subtraction to give exact remainders after the decimal, to be scaled into an integer.
263
- * Extra trailing 0's are excluded. The output defaults to rounding to nearest, ties to even. You
264
- * can enable rounding ties away from zero. Note: UNITY_DOUBLE param can typedef to float or double
265
-
266
- * The old version required compiling in snprintf. For reference, with a similar format as now:
267
- * char buf[19];
268
- * if (number > 4294967296.0 || -number > 4294967296.0) snprintf(buf, sizeof buf, "%.8e", number);
269
- * else snprintf(buf, sizeof buf, "%.6f", number);
270
- * UnityPrint(buf);
271
- */
272
- void UnityPrintFloat(const UNITY_DOUBLE input_number)
273
- {
274
- UNITY_DOUBLE number;
275
-
276
- if (input_number < 0)
277
- {
278
- UNITY_OUTPUT_CHAR('-');
279
- number = -input_number;
280
- } else
281
- {
282
- number = input_number;
283
- }
284
-
285
- if (isnan(number)) UnityPrint(UnityStrNaN);
286
- else if (isinf(number)) UnityPrintLen(UnityStrInf, 3);
287
- else if (number <= 0.0000005 && number > 0) UnityPrint("0.000000..."); /* Small number */
288
- else if (number < 4294967295.9999995) /* Rounded result fits in 32 bits, "%.6f" format */
289
- {
290
- const UNITY_INT32 divisor = 1000000/10;
291
- UNITY_UINT32 integer_part = (UNITY_UINT32)number;
292
- UNITY_INT32 fraction_part = (UNITY_INT32)((number - (UNITY_DOUBLE)integer_part)*1000000.0 + 0.5);
293
- /* Double precision calculation gives best performance for six rounded decimal places */
294
- ROUND_TIES_TO_EVEN(number, fraction_part, (number - (UNITY_DOUBLE)integer_part)*1000000.0);
295
-
296
- if (fraction_part == 1000000) /* Carry across the decimal point */
297
- {
298
- fraction_part = 0;
299
- integer_part += 1;
300
- }
301
-
302
- UnityPrintNumberUnsigned(integer_part);
303
- UnityPrintDecimalAndNumberWithLeadingZeros(fraction_part, divisor);
304
- }
305
- else /* Number is larger, use exponential format of 9 digits, "%.8e" */
306
- {
307
- const UNITY_INT32 divisor = 1000000000/10;
308
- UNITY_INT32 integer_part;
309
- UNITY_DOUBLE_TYPE divide = 10.0;
310
- int exponent = 9;
311
-
312
- while (number / divide >= 1000000000.0 - 0.5)
313
- {
314
- divide *= 10;
315
- exponent++;
316
- }
317
- integer_part = (UNITY_INT32)(number / divide + 0.5);
318
- /* Double precision calculation required for float, to produce 9 rounded digits */
319
- ROUND_TIES_TO_EVEN(number, integer_part, number / divide);
320
-
321
- UNITY_OUTPUT_CHAR('0' + integer_part / divisor);
322
- UnityPrintDecimalAndNumberWithLeadingZeros(integer_part % divisor, divisor / 10);
323
- UNITY_OUTPUT_CHAR('e');
324
- UNITY_OUTPUT_CHAR('+');
325
- if (exponent < 10) UNITY_OUTPUT_CHAR('0');
326
- UnityPrintNumber(exponent);
327
- }
328
- }
329
- #endif /* ! UNITY_EXCLUDE_FLOAT_PRINT */
330
-
331
- /*-----------------------------------------------*/
332
- static void UnityTestResultsBegin(const char* file, const UNITY_LINE_TYPE line)
333
- {
334
- UnityPrint(file);
335
- UNITY_OUTPUT_CHAR(':');
336
- UnityPrintNumber((UNITY_INT)line);
337
- UNITY_OUTPUT_CHAR(':');
338
- UnityPrint(Unity.CurrentTestName);
339
- UNITY_OUTPUT_CHAR(':');
340
- }
341
-
342
- /*-----------------------------------------------*/
343
- static void UnityTestResultsFailBegin(const UNITY_LINE_TYPE line)
344
- {
345
- UnityTestResultsBegin(Unity.TestFile, line);
346
- UnityPrint(UnityStrFail);
347
- UNITY_OUTPUT_CHAR(':');
348
- }
349
-
350
- /*-----------------------------------------------*/
351
- void UnityConcludeTest(void)
352
- {
353
- if (Unity.CurrentTestIgnored)
354
- {
355
- Unity.TestIgnores++;
356
- }
357
- else if (!Unity.CurrentTestFailed)
358
- {
359
- UnityTestResultsBegin(Unity.TestFile, Unity.CurrentTestLineNumber);
360
- UnityPrint(UnityStrPass);
361
- }
362
- else
363
- {
364
- Unity.TestFailures++;
365
- }
366
-
367
- Unity.CurrentTestFailed = 0;
368
- Unity.CurrentTestIgnored = 0;
369
- UNITY_PRINT_EOL();
370
- UNITY_FLUSH_CALL();
371
- }
372
-
373
- /*-----------------------------------------------*/
374
- static void UnityAddMsgIfSpecified(const char* msg)
375
- {
376
- if (msg)
377
- {
378
- UnityPrint(UnityStrSpacer);
379
- #ifndef UNITY_EXCLUDE_DETAILS
380
- if (Unity.CurrentDetail1)
381
- {
382
- UnityPrint(UnityStrDetail1Name);
383
- UnityPrint(Unity.CurrentDetail1);
384
- if (Unity.CurrentDetail2)
385
- {
386
- UnityPrint(UnityStrDetail2Name);
387
- UnityPrint(Unity.CurrentDetail2);
388
- }
389
- UnityPrint(UnityStrSpacer);
390
- }
391
- #endif
392
- UnityPrint(msg);
393
- }
394
- }
395
-
396
- /*-----------------------------------------------*/
397
- static void UnityPrintExpectedAndActualStrings(const char* expected, const char* actual)
398
- {
399
- UnityPrint(UnityStrExpected);
400
- if (expected != NULL)
401
- {
402
- UNITY_OUTPUT_CHAR('\'');
403
- UnityPrint(expected);
404
- UNITY_OUTPUT_CHAR('\'');
405
- }
406
- else
407
- {
408
- UnityPrint(UnityStrNull);
409
- }
410
- UnityPrint(UnityStrWas);
411
- if (actual != NULL)
412
- {
413
- UNITY_OUTPUT_CHAR('\'');
414
- UnityPrint(actual);
415
- UNITY_OUTPUT_CHAR('\'');
416
- }
417
- else
418
- {
419
- UnityPrint(UnityStrNull);
420
- }
421
- }
422
-
423
- /*-----------------------------------------------*/
424
- static void UnityPrintExpectedAndActualStringsLen(const char* expected,
425
- const char* actual,
426
- const UNITY_UINT32 length)
427
- {
428
- UnityPrint(UnityStrExpected);
429
- if (expected != NULL)
430
- {
431
- UNITY_OUTPUT_CHAR('\'');
432
- UnityPrintLen(expected, length);
433
- UNITY_OUTPUT_CHAR('\'');
434
- }
435
- else
436
- {
437
- UnityPrint(UnityStrNull);
438
- }
439
- UnityPrint(UnityStrWas);
440
- if (actual != NULL)
441
- {
442
- UNITY_OUTPUT_CHAR('\'');
443
- UnityPrintLen(actual, length);
444
- UNITY_OUTPUT_CHAR('\'');
445
- }
446
- else
447
- {
448
- UnityPrint(UnityStrNull);
449
- }
450
- }
451
-
452
- /*-----------------------------------------------
453
- * Assertion & Control Helpers
454
- *-----------------------------------------------*/
455
-
456
- static int UnityIsOneArrayNull(UNITY_INTERNAL_PTR expected,
457
- UNITY_INTERNAL_PTR actual,
458
- const UNITY_LINE_TYPE lineNumber,
459
- const char* msg)
460
- {
461
- if (expected == actual) return 0; /* Both are NULL or same pointer */
462
-
463
- /* print and return true if just expected is NULL */
464
- if (expected == NULL)
465
- {
466
- UnityTestResultsFailBegin(lineNumber);
467
- UnityPrint(UnityStrNullPointerForExpected);
468
- UnityAddMsgIfSpecified(msg);
469
- return 1;
470
- }
471
-
472
- /* print and return true if just actual is NULL */
473
- if (actual == NULL)
474
- {
475
- UnityTestResultsFailBegin(lineNumber);
476
- UnityPrint(UnityStrNullPointerForActual);
477
- UnityAddMsgIfSpecified(msg);
478
- return 1;
479
- }
480
-
481
- return 0; /* return false if neither is NULL */
482
- }
483
-
484
- /*-----------------------------------------------
485
- * Assertion Functions
486
- *-----------------------------------------------*/
487
-
488
- void UnityAssertBits(const UNITY_INT mask,
489
- const UNITY_INT expected,
490
- const UNITY_INT actual,
491
- const char* msg,
492
- const UNITY_LINE_TYPE lineNumber)
493
- {
494
- RETURN_IF_FAIL_OR_IGNORE;
495
-
496
- if ((mask & expected) != (mask & actual))
497
- {
498
- UnityTestResultsFailBegin(lineNumber);
499
- UnityPrint(UnityStrExpected);
500
- UnityPrintMask((UNITY_UINT)mask, (UNITY_UINT)expected);
501
- UnityPrint(UnityStrWas);
502
- UnityPrintMask((UNITY_UINT)mask, (UNITY_UINT)actual);
503
- UnityAddMsgIfSpecified(msg);
504
- UNITY_FAIL_AND_BAIL;
505
- }
506
- }
507
-
508
- /*-----------------------------------------------*/
509
- void UnityAssertEqualNumber(const UNITY_INT expected,
510
- const UNITY_INT actual,
511
- const char* msg,
512
- const UNITY_LINE_TYPE lineNumber,
513
- const UNITY_DISPLAY_STYLE_T style)
514
- {
515
- RETURN_IF_FAIL_OR_IGNORE;
516
-
517
- if (expected != actual)
518
- {
519
- UnityTestResultsFailBegin(lineNumber);
520
- UnityPrint(UnityStrExpected);
521
- UnityPrintNumberByStyle(expected, style);
522
- UnityPrint(UnityStrWas);
523
- UnityPrintNumberByStyle(actual, style);
524
- UnityAddMsgIfSpecified(msg);
525
- UNITY_FAIL_AND_BAIL;
526
- }
527
- }
528
-
529
- #define UnityPrintPointlessAndBail() \
530
- { \
531
- UnityTestResultsFailBegin(lineNumber); \
532
- UnityPrint(UnityStrPointless); \
533
- UnityAddMsgIfSpecified(msg); \
534
- UNITY_FAIL_AND_BAIL; }
535
-
536
- /*-----------------------------------------------*/
537
- void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
538
- UNITY_INTERNAL_PTR actual,
539
- const UNITY_UINT32 num_elements,
540
- const char* msg,
541
- const UNITY_LINE_TYPE lineNumber,
542
- const UNITY_DISPLAY_STYLE_T style,
543
- const UNITY_FLAGS_T flags)
544
- {
545
- UNITY_UINT32 elements = num_elements;
546
- unsigned int length = style & 0xF;
547
-
548
- RETURN_IF_FAIL_OR_IGNORE;
549
-
550
- if (num_elements == 0)
551
- {
552
- UnityPrintPointlessAndBail();
553
- }
554
-
555
- if (expected == actual) return; /* Both are NULL or same pointer */
556
- if (UnityIsOneArrayNull(expected, actual, lineNumber, msg))
557
- UNITY_FAIL_AND_BAIL;
558
-
559
- while (elements--)
560
- {
561
- UNITY_INT expect_val;
562
- UNITY_INT actual_val;
563
- switch (length)
564
- {
565
- case 1:
566
- expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)expected;
567
- actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)actual;
568
- break;
569
- case 2:
570
- expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)expected;
571
- actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)actual;
572
- break;
573
- #ifdef UNITY_SUPPORT_64
574
- case 8:
575
- expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)expected;
576
- actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)actual;
577
- break;
578
- #endif
579
- default: /* length 4 bytes */
580
- expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)expected;
581
- actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)actual;
582
- length = 4;
583
- break;
584
- }
585
-
586
- if (expect_val != actual_val)
587
- {
588
- if (style & UNITY_DISPLAY_RANGE_UINT && length < sizeof(expect_val))
589
- { /* For UINT, remove sign extension (padding 1's) from signed type casts above */
590
- UNITY_INT mask = 1;
591
- mask = (mask << 8 * length) - 1;
592
- expect_val &= mask;
593
- actual_val &= mask;
594
- }
595
- UnityTestResultsFailBegin(lineNumber);
596
- UnityPrint(UnityStrElement);
597
- UnityPrintNumberUnsigned(num_elements - elements - 1);
598
- UnityPrint(UnityStrExpected);
599
- UnityPrintNumberByStyle(expect_val, style);
600
- UnityPrint(UnityStrWas);
601
- UnityPrintNumberByStyle(actual_val, style);
602
- UnityAddMsgIfSpecified(msg);
603
- UNITY_FAIL_AND_BAIL;
604
- }
605
- if (flags == UNITY_ARRAY_TO_ARRAY)
606
- {
607
- expected = (UNITY_INTERNAL_PTR)(length + (const char*)expected);
608
- }
609
- actual = (UNITY_INTERNAL_PTR)(length + (const char*)actual);
610
- }
611
- }
612
-
613
- /*-----------------------------------------------*/
614
- #ifndef UNITY_EXCLUDE_FLOAT
615
- /* Wrap this define in a function with variable types as float or double */
616
- #define UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff) \
617
- if (isinf(expected) && isinf(actual) && ((expected < 0) == (actual < 0))) return 1; \
618
- if (UNITY_NAN_CHECK) return 1; \
619
- diff = actual - expected; \
620
- if (diff < 0) diff = -diff; \
621
- if (delta < 0) delta = -delta; \
622
- return !(isnan(diff) || isinf(diff) || (diff > delta))
623
- /* This first part of this condition will catch any NaN or Infinite values */
624
- #ifndef UNITY_NAN_NOT_EQUAL_NAN
625
- #define UNITY_NAN_CHECK isnan(expected) && isnan(actual)
626
- #else
627
- #define UNITY_NAN_CHECK 0
628
- #endif
629
-
630
- #ifndef UNITY_EXCLUDE_FLOAT_PRINT
631
- #define UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual) \
632
- { \
633
- UnityPrint(UnityStrExpected); \
634
- UnityPrintFloat(expected); \
635
- UnityPrint(UnityStrWas); \
636
- UnityPrintFloat(actual); }
637
- #else
638
- #define UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual) \
639
- UnityPrint(UnityStrDelta)
640
- #endif /* UNITY_EXCLUDE_FLOAT_PRINT */
641
-
642
- static int UnityFloatsWithin(UNITY_FLOAT delta, UNITY_FLOAT expected, UNITY_FLOAT actual)
643
- {
644
- UNITY_FLOAT diff;
645
- UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff);
646
- }
647
-
648
- void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* expected,
649
- UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* actual,
650
- const UNITY_UINT32 num_elements,
651
- const char* msg,
652
- const UNITY_LINE_TYPE lineNumber,
653
- const UNITY_FLAGS_T flags)
654
- {
655
- UNITY_UINT32 elements = num_elements;
656
- UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* ptr_expected = expected;
657
- UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* ptr_actual = actual;
658
-
659
- RETURN_IF_FAIL_OR_IGNORE;
660
-
661
- if (elements == 0)
662
- {
663
- UnityPrintPointlessAndBail();
664
- }
665
-
666
- if (expected == actual) return; /* Both are NULL or same pointer */
667
- if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg))
668
- UNITY_FAIL_AND_BAIL;
669
-
670
- while (elements--)
671
- {
672
- if (!UnityFloatsWithin(*ptr_expected * UNITY_FLOAT_PRECISION, *ptr_expected, *ptr_actual))
673
- {
674
- UnityTestResultsFailBegin(lineNumber);
675
- UnityPrint(UnityStrElement);
676
- UnityPrintNumberUnsigned(num_elements - elements - 1);
677
- UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT((UNITY_DOUBLE)*ptr_expected, (UNITY_DOUBLE)*ptr_actual);
678
- UnityAddMsgIfSpecified(msg);
679
- UNITY_FAIL_AND_BAIL;
680
- }
681
- if (flags == UNITY_ARRAY_TO_ARRAY)
682
- {
683
- ptr_expected++;
684
- }
685
- ptr_actual++;
686
- }
687
- }
688
-
689
- /*-----------------------------------------------*/
690
- void UnityAssertFloatsWithin(const UNITY_FLOAT delta,
691
- const UNITY_FLOAT expected,
692
- const UNITY_FLOAT actual,
693
- const char* msg,
694
- const UNITY_LINE_TYPE lineNumber)
695
- {
696
- RETURN_IF_FAIL_OR_IGNORE;
697
-
698
-
699
- if (!UnityFloatsWithin(delta, expected, actual))
700
- {
701
- UnityTestResultsFailBegin(lineNumber);
702
- UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT((UNITY_DOUBLE)expected, (UNITY_DOUBLE)actual);
703
- UnityAddMsgIfSpecified(msg);
704
- UNITY_FAIL_AND_BAIL;
705
- }
706
- }
707
-
708
- /*-----------------------------------------------*/
709
- void UnityAssertFloatSpecial(const UNITY_FLOAT actual,
710
- const char* msg,
711
- const UNITY_LINE_TYPE lineNumber,
712
- const UNITY_FLOAT_TRAIT_T style)
713
- {
714
- const char* trait_names[] = {UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet};
715
- UNITY_INT should_be_trait = ((UNITY_INT)style & 1);
716
- UNITY_INT is_trait = !should_be_trait;
717
- UNITY_INT trait_index = (UNITY_INT)(style >> 1);
718
-
719
- RETURN_IF_FAIL_OR_IGNORE;
720
-
721
- switch (style)
722
- {
723
- case UNITY_FLOAT_IS_INF:
724
- case UNITY_FLOAT_IS_NOT_INF:
725
- is_trait = isinf(actual) && (actual > 0);
726
- break;
727
- case UNITY_FLOAT_IS_NEG_INF:
728
- case UNITY_FLOAT_IS_NOT_NEG_INF:
729
- is_trait = isinf(actual) && (actual < 0);
730
- break;
731
-
732
- case UNITY_FLOAT_IS_NAN:
733
- case UNITY_FLOAT_IS_NOT_NAN:
734
- is_trait = isnan(actual) ? 1 : 0;
735
- break;
736
-
737
- case UNITY_FLOAT_IS_DET: /* A determinate number is non infinite and not NaN. */
738
- case UNITY_FLOAT_IS_NOT_DET:
739
- is_trait = !isinf(actual) && !isnan(actual);
740
- break;
741
-
742
- default:
743
- trait_index = 0;
744
- trait_names[0] = UnityStrInvalidFloatTrait;
745
- break;
746
- }
747
-
748
- if (is_trait != should_be_trait)
749
- {
750
- UnityTestResultsFailBegin(lineNumber);
751
- UnityPrint(UnityStrExpected);
752
- if (!should_be_trait)
753
- UnityPrint(UnityStrNot);
754
- UnityPrint(trait_names[trait_index]);
755
- UnityPrint(UnityStrWas);
756
- #ifndef UNITY_EXCLUDE_FLOAT_PRINT
757
- UnityPrintFloat((UNITY_DOUBLE)actual);
758
- #else
759
- if (should_be_trait)
760
- UnityPrint(UnityStrNot);
761
- UnityPrint(trait_names[trait_index]);
762
- #endif
763
- UnityAddMsgIfSpecified(msg);
764
- UNITY_FAIL_AND_BAIL;
765
- }
766
- }
767
-
768
- #endif /* not UNITY_EXCLUDE_FLOAT */
769
-
770
- /*-----------------------------------------------*/
771
- #ifndef UNITY_EXCLUDE_DOUBLE
772
- static int UnityDoublesWithin(UNITY_DOUBLE delta, UNITY_DOUBLE expected, UNITY_DOUBLE actual)
773
- {
774
- UNITY_DOUBLE diff;
775
- UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff);
776
- }
777
-
778
- void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* expected,
779
- UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* actual,
780
- const UNITY_UINT32 num_elements,
781
- const char* msg,
782
- const UNITY_LINE_TYPE lineNumber,
783
- const UNITY_FLAGS_T flags)
784
- {
785
- UNITY_UINT32 elements = num_elements;
786
- UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* ptr_expected = expected;
787
- UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* ptr_actual = actual;
788
-
789
- RETURN_IF_FAIL_OR_IGNORE;
790
-
791
- if (elements == 0)
792
- {
793
- UnityPrintPointlessAndBail();
794
- }
795
-
796
- if (expected == actual) return; /* Both are NULL or same pointer */
797
- if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg))
798
- UNITY_FAIL_AND_BAIL;
799
-
800
- while (elements--)
801
- {
802
- if (!UnityDoublesWithin(*ptr_expected * UNITY_DOUBLE_PRECISION, *ptr_expected, *ptr_actual))
803
- {
804
- UnityTestResultsFailBegin(lineNumber);
805
- UnityPrint(UnityStrElement);
806
- UnityPrintNumberUnsigned(num_elements - elements - 1);
807
- UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(*ptr_expected, *ptr_actual);
808
- UnityAddMsgIfSpecified(msg);
809
- UNITY_FAIL_AND_BAIL;
810
- }
811
- if (flags == UNITY_ARRAY_TO_ARRAY)
812
- {
813
- ptr_expected++;
814
- }
815
- ptr_actual++;
816
- }
817
- }
818
-
819
- /*-----------------------------------------------*/
820
- void UnityAssertDoublesWithin(const UNITY_DOUBLE delta,
821
- const UNITY_DOUBLE expected,
822
- const UNITY_DOUBLE actual,
823
- const char* msg,
824
- const UNITY_LINE_TYPE lineNumber)
825
- {
826
- RETURN_IF_FAIL_OR_IGNORE;
827
-
828
- if (!UnityDoublesWithin(delta, expected, actual))
829
- {
830
- UnityTestResultsFailBegin(lineNumber);
831
- UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual);
832
- UnityAddMsgIfSpecified(msg);
833
- UNITY_FAIL_AND_BAIL;
834
- }
835
- }
836
-
837
- /*-----------------------------------------------*/
838
-
839
- void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual,
840
- const char* msg,
841
- const UNITY_LINE_TYPE lineNumber,
842
- const UNITY_FLOAT_TRAIT_T style)
843
- {
844
- const char* trait_names[] = {UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet};
845
- UNITY_INT should_be_trait = ((UNITY_INT)style & 1);
846
- UNITY_INT is_trait = !should_be_trait;
847
- UNITY_INT trait_index = (UNITY_INT)(style >> 1);
848
-
849
- RETURN_IF_FAIL_OR_IGNORE;
850
-
851
- switch (style)
852
- {
853
- case UNITY_FLOAT_IS_INF:
854
- case UNITY_FLOAT_IS_NOT_INF:
855
- is_trait = isinf(actual) && (actual > 0);
856
- break;
857
- case UNITY_FLOAT_IS_NEG_INF:
858
- case UNITY_FLOAT_IS_NOT_NEG_INF:
859
- is_trait = isinf(actual) && (actual < 0);
860
- break;
861
-
862
- case UNITY_FLOAT_IS_NAN:
863
- case UNITY_FLOAT_IS_NOT_NAN:
864
- is_trait = isnan(actual) ? 1 : 0;
865
- break;
866
-
867
- case UNITY_FLOAT_IS_DET: /* A determinate number is non infinite and not NaN. */
868
- case UNITY_FLOAT_IS_NOT_DET:
869
- is_trait = !isinf(actual) && !isnan(actual);
870
- break;
871
-
872
- default:
873
- trait_index = 0;
874
- trait_names[0] = UnityStrInvalidFloatTrait;
875
- break;
876
- }
877
-
878
- if (is_trait != should_be_trait)
879
- {
880
- UnityTestResultsFailBegin(lineNumber);
881
- UnityPrint(UnityStrExpected);
882
- if (!should_be_trait)
883
- UnityPrint(UnityStrNot);
884
- UnityPrint(trait_names[trait_index]);
885
- UnityPrint(UnityStrWas);
886
- #ifndef UNITY_EXCLUDE_FLOAT_PRINT
887
- UnityPrintFloat(actual);
888
- #else
889
- if (should_be_trait)
890
- UnityPrint(UnityStrNot);
891
- UnityPrint(trait_names[trait_index]);
892
- #endif
893
- UnityAddMsgIfSpecified(msg);
894
- UNITY_FAIL_AND_BAIL;
895
- }
896
- }
897
-
898
- #endif /* not UNITY_EXCLUDE_DOUBLE */
899
-
900
- /*-----------------------------------------------*/
901
- void UnityAssertNumbersWithin(const UNITY_UINT delta,
902
- const UNITY_INT expected,
903
- const UNITY_INT actual,
904
- const char* msg,
905
- const UNITY_LINE_TYPE lineNumber,
906
- const UNITY_DISPLAY_STYLE_T style)
907
- {
908
- RETURN_IF_FAIL_OR_IGNORE;
909
-
910
- if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
911
- {
912
- if (actual > expected)
913
- Unity.CurrentTestFailed = (UNITY_UINT)((UNITY_UINT)(actual - expected) > delta);
914
- else
915
- Unity.CurrentTestFailed = (UNITY_UINT)((UNITY_UINT)(expected - actual) > delta);
916
- }
917
- else
918
- {
919
- if ((UNITY_UINT)actual > (UNITY_UINT)expected)
920
- Unity.CurrentTestFailed = (UNITY_UINT)((UNITY_UINT)(actual - expected) > delta);
921
- else
922
- Unity.CurrentTestFailed = (UNITY_UINT)((UNITY_UINT)(expected - actual) > delta);
923
- }
924
-
925
- if (Unity.CurrentTestFailed)
926
- {
927
- UnityTestResultsFailBegin(lineNumber);
928
- UnityPrint(UnityStrDelta);
929
- UnityPrintNumberByStyle((UNITY_INT)delta, style);
930
- UnityPrint(UnityStrExpected);
931
- UnityPrintNumberByStyle(expected, style);
932
- UnityPrint(UnityStrWas);
933
- UnityPrintNumberByStyle(actual, style);
934
- UnityAddMsgIfSpecified(msg);
935
- UNITY_FAIL_AND_BAIL;
936
- }
937
- }
938
-
939
- /*-----------------------------------------------*/
940
- void UnityAssertEqualString(const char* expected,
941
- const char* actual,
942
- const char* msg,
943
- const UNITY_LINE_TYPE lineNumber)
944
- {
945
- UNITY_UINT32 i;
946
-
947
- RETURN_IF_FAIL_OR_IGNORE;
948
-
949
- /* if both pointers not null compare the strings */
950
- if (expected && actual)
951
- {
952
- for (i = 0; expected[i] || actual[i]; i++)
953
- {
954
- if (expected[i] != actual[i])
955
- {
956
- Unity.CurrentTestFailed = 1;
957
- break;
958
- }
959
- }
960
- }
961
- else
962
- { /* handle case of one pointers being null (if both null, test should pass) */
963
- if (expected != actual)
964
- {
965
- Unity.CurrentTestFailed = 1;
966
- }
967
- }
968
-
969
- if (Unity.CurrentTestFailed)
970
- {
971
- UnityTestResultsFailBegin(lineNumber);
972
- UnityPrintExpectedAndActualStrings(expected, actual);
973
- UnityAddMsgIfSpecified(msg);
974
- UNITY_FAIL_AND_BAIL;
975
- }
976
- }
977
-
978
- /*-----------------------------------------------*/
979
- void UnityAssertEqualStringLen(const char* expected,
980
- const char* actual,
981
- const UNITY_UINT32 length,
982
- const char* msg,
983
- const UNITY_LINE_TYPE lineNumber)
984
- {
985
- UNITY_UINT32 i;
986
-
987
- RETURN_IF_FAIL_OR_IGNORE;
988
-
989
- /* if both pointers not null compare the strings */
990
- if (expected && actual)
991
- {
992
- for (i = 0; (i < length) && (expected[i] || actual[i]); i++)
993
- {
994
- if (expected[i] != actual[i])
995
- {
996
- Unity.CurrentTestFailed = 1;
997
- break;
998
- }
999
- }
1000
- }
1001
- else
1002
- { /* handle case of one pointers being null (if both null, test should pass) */
1003
- if (expected != actual)
1004
- {
1005
- Unity.CurrentTestFailed = 1;
1006
- }
1007
- }
1008
-
1009
- if (Unity.CurrentTestFailed)
1010
- {
1011
- UnityTestResultsFailBegin(lineNumber);
1012
- UnityPrintExpectedAndActualStringsLen(expected, actual, length);
1013
- UnityAddMsgIfSpecified(msg);
1014
- UNITY_FAIL_AND_BAIL;
1015
- }
1016
- }
1017
-
1018
- /*-----------------------------------------------*/
1019
- void UnityAssertEqualStringArray(UNITY_INTERNAL_PTR expected,
1020
- const char** actual,
1021
- const UNITY_UINT32 num_elements,
1022
- const char* msg,
1023
- const UNITY_LINE_TYPE lineNumber,
1024
- const UNITY_FLAGS_T flags)
1025
- {
1026
- UNITY_UINT32 i = 0;
1027
- UNITY_UINT32 j = 0;
1028
- const char* exp = NULL;
1029
- const char* act = NULL;
1030
-
1031
- RETURN_IF_FAIL_OR_IGNORE;
1032
-
1033
- /* if no elements, it's an error */
1034
- if (num_elements == 0)
1035
- {
1036
- UnityPrintPointlessAndBail();
1037
- }
1038
-
1039
- if ((const void*)expected == (const void*)actual)
1040
- {
1041
- return; /* Both are NULL or same pointer */
1042
- }
1043
-
1044
- if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg))
1045
- {
1046
- UNITY_FAIL_AND_BAIL;
1047
- }
1048
-
1049
- if (flags != UNITY_ARRAY_TO_ARRAY)
1050
- {
1051
- exp = (const char*)expected;
1052
- }
1053
-
1054
- do
1055
- {
1056
- act = actual[j];
1057
- if (flags == UNITY_ARRAY_TO_ARRAY)
1058
- {
1059
- exp = ((const char* const*)expected)[j];
1060
- }
1061
-
1062
- /* if both pointers not null compare the strings */
1063
- if (exp && act)
1064
- {
1065
- for (i = 0; exp[i] || act[i]; i++)
1066
- {
1067
- if (exp[i] != act[i])
1068
- {
1069
- Unity.CurrentTestFailed = 1;
1070
- break;
1071
- }
1072
- }
1073
- }
1074
- else
1075
- { /* handle case of one pointers being null (if both null, test should pass) */
1076
- if (exp != act)
1077
- {
1078
- Unity.CurrentTestFailed = 1;
1079
- }
1080
- }
1081
-
1082
- if (Unity.CurrentTestFailed)
1083
- {
1084
- UnityTestResultsFailBegin(lineNumber);
1085
- if (num_elements > 1)
1086
- {
1087
- UnityPrint(UnityStrElement);
1088
- UnityPrintNumberUnsigned(j);
1089
- }
1090
- UnityPrintExpectedAndActualStrings(exp, act);
1091
- UnityAddMsgIfSpecified(msg);
1092
- UNITY_FAIL_AND_BAIL;
1093
- }
1094
- } while (++j < num_elements);
1095
- }
1096
-
1097
- /*-----------------------------------------------*/
1098
- void UnityAssertEqualMemory(UNITY_INTERNAL_PTR expected,
1099
- UNITY_INTERNAL_PTR actual,
1100
- const UNITY_UINT32 length,
1101
- const UNITY_UINT32 num_elements,
1102
- const char* msg,
1103
- const UNITY_LINE_TYPE lineNumber,
1104
- const UNITY_FLAGS_T flags)
1105
- {
1106
- UNITY_PTR_ATTRIBUTE const unsigned char* ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected;
1107
- UNITY_PTR_ATTRIBUTE const unsigned char* ptr_act = (UNITY_PTR_ATTRIBUTE const unsigned char*)actual;
1108
- UNITY_UINT32 elements = num_elements;
1109
- UNITY_UINT32 bytes;
1110
-
1111
- RETURN_IF_FAIL_OR_IGNORE;
1112
-
1113
- if ((elements == 0) || (length == 0))
1114
- {
1115
- UnityPrintPointlessAndBail();
1116
- }
1117
-
1118
- if (expected == actual) return; /* Both are NULL or same pointer */
1119
- if (UnityIsOneArrayNull(expected, actual, lineNumber, msg))
1120
- UNITY_FAIL_AND_BAIL;
1121
-
1122
- while (elements--)
1123
- {
1124
- bytes = length;
1125
- while (bytes--)
1126
- {
1127
- if (*ptr_exp != *ptr_act)
1128
- {
1129
- UnityTestResultsFailBegin(lineNumber);
1130
- UnityPrint(UnityStrMemory);
1131
- if (num_elements > 1)
1132
- {
1133
- UnityPrint(UnityStrElement);
1134
- UnityPrintNumberUnsigned(num_elements - elements - 1);
1135
- }
1136
- UnityPrint(UnityStrByte);
1137
- UnityPrintNumberUnsigned(length - bytes - 1);
1138
- UnityPrint(UnityStrExpected);
1139
- UnityPrintNumberByStyle(*ptr_exp, UNITY_DISPLAY_STYLE_HEX8);
1140
- UnityPrint(UnityStrWas);
1141
- UnityPrintNumberByStyle(*ptr_act, UNITY_DISPLAY_STYLE_HEX8);
1142
- UnityAddMsgIfSpecified(msg);
1143
- UNITY_FAIL_AND_BAIL;
1144
- }
1145
- ptr_exp++;
1146
- ptr_act++;
1147
- }
1148
- if (flags == UNITY_ARRAY_TO_VAL)
1149
- {
1150
- ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected;
1151
- }
1152
- }
1153
- }
1154
-
1155
- /*-----------------------------------------------*/
1156
-
1157
- static union
1158
- {
1159
- UNITY_INT8 i8;
1160
- UNITY_INT16 i16;
1161
- UNITY_INT32 i32;
1162
- #ifdef UNITY_SUPPORT_64
1163
- UNITY_INT64 i64;
1164
- #endif
1165
- #ifndef UNITY_EXCLUDE_FLOAT
1166
- float f;
1167
- #endif
1168
- #ifndef UNITY_EXCLUDE_DOUBLE
1169
- double d;
1170
- #endif
1171
- } UnityQuickCompare;
1172
-
1173
- UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 size)
1174
- {
1175
- switch(size)
1176
- {
1177
- case 1:
1178
- UnityQuickCompare.i8 = (UNITY_INT8)num;
1179
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i8);
1180
-
1181
- case 2:
1182
- UnityQuickCompare.i16 = (UNITY_INT16)num;
1183
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i16);
1184
-
1185
- #ifdef UNITY_SUPPORT_64
1186
- case 8:
1187
- UnityQuickCompare.i64 = (UNITY_INT64)num;
1188
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i64);
1189
- #endif
1190
- default: /* 4 bytes */
1191
- UnityQuickCompare.i32 = (UNITY_INT32)num;
1192
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i32);
1193
- }
1194
- }
1195
-
1196
- #ifndef UNITY_EXCLUDE_FLOAT
1197
- UNITY_INTERNAL_PTR UnityFloatToPtr(const float num)
1198
- {
1199
- UnityQuickCompare.f = num;
1200
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.f);
1201
- }
1202
- #endif
1203
-
1204
- #ifndef UNITY_EXCLUDE_DOUBLE
1205
- UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num)
1206
- {
1207
- UnityQuickCompare.d = num;
1208
- return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.d);
1209
- }
1210
- #endif
1211
-
1212
- /*-----------------------------------------------
1213
- * Control Functions
1214
- *-----------------------------------------------*/
1215
-
1216
- void UnityFail(const char* msg, const UNITY_LINE_TYPE line)
1217
- {
1218
- RETURN_IF_FAIL_OR_IGNORE;
1219
-
1220
- UnityTestResultsBegin(Unity.TestFile, line);
1221
- UnityPrint(UnityStrFail);
1222
- if (msg != NULL)
1223
- {
1224
- UNITY_OUTPUT_CHAR(':');
1225
-
1226
- #ifndef UNITY_EXCLUDE_DETAILS
1227
- if (Unity.CurrentDetail1)
1228
- {
1229
- UnityPrint(UnityStrDetail1Name);
1230
- UnityPrint(Unity.CurrentDetail1);
1231
- if (Unity.CurrentDetail2)
1232
- {
1233
- UnityPrint(UnityStrDetail2Name);
1234
- UnityPrint(Unity.CurrentDetail2);
1235
- }
1236
- UnityPrint(UnityStrSpacer);
1237
- }
1238
- #endif
1239
- if (msg[0] != ' ')
1240
- {
1241
- UNITY_OUTPUT_CHAR(' ');
1242
- }
1243
- UnityPrint(msg);
1244
- }
1245
-
1246
- UNITY_FAIL_AND_BAIL;
1247
- }
1248
-
1249
- /*-----------------------------------------------*/
1250
- void UnityIgnore(const char* msg, const UNITY_LINE_TYPE line)
1251
- {
1252
- RETURN_IF_FAIL_OR_IGNORE;
1253
-
1254
- UnityTestResultsBegin(Unity.TestFile, line);
1255
- UnityPrint(UnityStrIgnore);
1256
- if (msg != NULL)
1257
- {
1258
- UNITY_OUTPUT_CHAR(':');
1259
- UNITY_OUTPUT_CHAR(' ');
1260
- UnityPrint(msg);
1261
- }
1262
- UNITY_IGNORE_AND_BAIL;
1263
- }
1264
-
1265
- /*-----------------------------------------------*/
1266
- #if defined(UNITY_WEAK_ATTRIBUTE)
1267
- UNITY_WEAK_ATTRIBUTE void setUp(void) { }
1268
- UNITY_WEAK_ATTRIBUTE void tearDown(void) { }
1269
- #elif defined(UNITY_WEAK_PRAGMA)
1270
- #pragma weak setUp
1271
- void setUp(void) { }
1272
- #pragma weak tearDown
1273
- void tearDown(void) { }
1274
- #endif
1275
-
1276
- /*-----------------------------------------------*/
1277
- void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum)
1278
- {
1279
- Unity.CurrentTestName = FuncName;
1280
- Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)FuncLineNum;
1281
- Unity.NumberOfTests++;
1282
- UNITY_CLR_DETAILS();
1283
- if (TEST_PROTECT())
1284
- {
1285
- setUp();
1286
- Func();
1287
- }
1288
- if (TEST_PROTECT())
1289
- {
1290
- tearDown();
1291
- }
1292
- UnityConcludeTest();
1293
- }
1294
-
1295
- /*-----------------------------------------------*/
1296
- void UnityBegin(const char* filename)
1297
- {
1298
- Unity.TestFile = filename;
1299
- Unity.CurrentTestName = NULL;
1300
- Unity.CurrentTestLineNumber = 0;
1301
- Unity.NumberOfTests = 0;
1302
- Unity.TestFailures = 0;
1303
- Unity.TestIgnores = 0;
1304
- Unity.CurrentTestFailed = 0;
1305
- Unity.CurrentTestIgnored = 0;
1306
-
1307
- UNITY_CLR_DETAILS();
1308
- UNITY_OUTPUT_START();
1309
- }
1310
-
1311
- /*-----------------------------------------------*/
1312
- int UnityEnd(void)
1313
- {
1314
- UNITY_PRINT_EOL();
1315
- UnityPrint(UnityStrBreaker);
1316
- UNITY_PRINT_EOL();
1317
- UnityPrintNumber((UNITY_INT)(Unity.NumberOfTests));
1318
- UnityPrint(UnityStrResultsTests);
1319
- UnityPrintNumber((UNITY_INT)(Unity.TestFailures));
1320
- UnityPrint(UnityStrResultsFailures);
1321
- UnityPrintNumber((UNITY_INT)(Unity.TestIgnores));
1322
- UnityPrint(UnityStrResultsIgnored);
1323
- UNITY_PRINT_EOL();
1324
- if (Unity.TestFailures == 0U)
1325
- {
1326
- UnityPrint(UnityStrOk);
1327
- }
1328
- else
1329
- {
1330
- UnityPrint(UnityStrFail);
1331
- #ifdef UNITY_DIFFERENTIATE_FINAL_FAIL
1332
- UNITY_OUTPUT_CHAR('E'); UNITY_OUTPUT_CHAR('D');
1333
- #endif
1334
- }
1335
- UNITY_PRINT_EOL();
1336
- UNITY_FLUSH_CALL();
1337
- UNITY_OUTPUT_COMPLETE();
1338
- return (int)(Unity.TestFailures);
1339
- }
1340
-
1341
- /*-----------------------------------------------
1342
- * Command Line Argument Support
1343
- *-----------------------------------------------*/
1344
- #ifdef UNITY_USE_COMMAND_LINE_ARGS
1345
-
1346
- char* UnityOptionIncludeNamed = NULL;
1347
- char* UnityOptionExcludeNamed = NULL;
1348
- int UnityVerbosity = 1;
1349
-
1350
- int UnityParseOptions(int argc, char** argv)
1351
- {
1352
- UnityOptionIncludeNamed = NULL;
1353
- UnityOptionExcludeNamed = NULL;
1354
-
1355
- for (int i = 1; i < argc; i++)
1356
- {
1357
- if (argv[i][0] == '-')
1358
- {
1359
- switch (argv[i][1])
1360
- {
1361
- case 'l': /* list tests */
1362
- return -1;
1363
- case 'n': /* include tests with name including this string */
1364
- case 'f': /* an alias for -n */
1365
- if (argv[i][2] == '=')
1366
- UnityOptionIncludeNamed = &argv[i][3];
1367
- else if (++i < argc)
1368
- UnityOptionIncludeNamed = argv[i];
1369
- else
1370
- {
1371
- UnityPrint("ERROR: No Test String to Include Matches For");
1372
- UNITY_PRINT_EOL();
1373
- return 1;
1374
- }
1375
- break;
1376
- case 'q': /* quiet */
1377
- UnityVerbosity = 0;
1378
- break;
1379
- case 'v': /* verbose */
1380
- UnityVerbosity = 2;
1381
- break;
1382
- case 'x': /* exclude tests with name including this string */
1383
- if (argv[i][2] == '=')
1384
- UnityOptionExcludeNamed = &argv[i][3];
1385
- else if (++i < argc)
1386
- UnityOptionExcludeNamed = argv[i];
1387
- else
1388
- {
1389
- UnityPrint("ERROR: No Test String to Exclude Matches For");
1390
- UNITY_PRINT_EOL();
1391
- return 1;
1392
- }
1393
- break;
1394
- default:
1395
- UnityPrint("ERROR: Unknown Option ");
1396
- UNITY_OUTPUT_CHAR(argv[i][1]);
1397
- UNITY_PRINT_EOL();
1398
- return 1;
1399
- }
1400
- }
1401
- }
1402
-
1403
- return 0;
1404
- }
1405
-
1406
- int IsStringInBiggerString(const char* longstring, const char* shortstring)
1407
- {
1408
- const char* lptr = longstring;
1409
- const char* sptr = shortstring;
1410
- const char* lnext = lptr;
1411
-
1412
- if (*sptr == '*')
1413
- return 1;
1414
-
1415
- while (*lptr)
1416
- {
1417
- lnext = lptr + 1;
1418
-
1419
- /* If they current bytes match, go on to the next bytes */
1420
- while (*lptr && *sptr && (*lptr == *sptr))
1421
- {
1422
- lptr++;
1423
- sptr++;
1424
-
1425
- /* We're done if we match the entire string or up to a wildcard */
1426
- if (*sptr == '*')
1427
- return 1;
1428
- if (*sptr == ',')
1429
- return 1;
1430
- if (*sptr == '"')
1431
- return 1;
1432
- if (*sptr == '\'')
1433
- return 1;
1434
- if (*sptr == ':')
1435
- return 2;
1436
- if (*sptr == 0)
1437
- return 1;
1438
- }
1439
-
1440
- /* Otherwise we start in the long pointer 1 character further and try again */
1441
- lptr = lnext;
1442
- sptr = shortstring;
1443
- }
1444
- return 0;
1445
- }
1446
-
1447
- int UnityStringArgumentMatches(const char* str)
1448
- {
1449
- int retval;
1450
- const char* ptr1;
1451
- const char* ptr2;
1452
- const char* ptrf;
1453
-
1454
- /* Go through the options and get the substrings for matching one at a time */
1455
- ptr1 = str;
1456
- while (ptr1[0] != 0)
1457
- {
1458
- if ((ptr1[0] == '"') || (ptr1[0] == '\''))
1459
- ptr1++;
1460
-
1461
- /* look for the start of the next partial */
1462
- ptr2 = ptr1;
1463
- ptrf = 0;
1464
- do
1465
- {
1466
- ptr2++;
1467
- if ((ptr2[0] == ':') && (ptr2[1] != 0) && (ptr2[0] != '\'') && (ptr2[0] != '"') && (ptr2[0] != ','))
1468
- ptrf = &ptr2[1];
1469
- } while ((ptr2[0] != 0) && (ptr2[0] != '\'') && (ptr2[0] != '"') && (ptr2[0] != ','));
1470
- while ((ptr2[0] != 0) && ((ptr2[0] == ':') || (ptr2[0] == '\'') || (ptr2[0] == '"') || (ptr2[0] == ',')))
1471
- ptr2++;
1472
-
1473
- /* done if complete filename match */
1474
- retval = IsStringInBiggerString(Unity.TestFile, ptr1);
1475
- if (retval == 1)
1476
- return retval;
1477
-
1478
- /* done if testname match after filename partial match */
1479
- if ((retval == 2) && (ptrf != 0))
1480
- {
1481
- if (IsStringInBiggerString(Unity.CurrentTestName, ptrf))
1482
- return 1;
1483
- }
1484
-
1485
- /* done if complete testname match */
1486
- if (IsStringInBiggerString(Unity.CurrentTestName, ptr1) == 1)
1487
- return 1;
1488
-
1489
- ptr1 = ptr2;
1490
- }
1491
-
1492
- /* we couldn't find a match for any substrings */
1493
- return 0;
1494
- }
1495
-
1496
- int UnityTestMatches(void)
1497
- {
1498
- /* Check if this test name matches the included test pattern */
1499
- int retval;
1500
- if (UnityOptionIncludeNamed)
1501
- {
1502
- retval = UnityStringArgumentMatches(UnityOptionIncludeNamed);
1503
- }
1504
- else
1505
- retval = 1;
1506
-
1507
- /* Check if this test name matches the excluded test pattern */
1508
- if (UnityOptionExcludeNamed)
1509
- {
1510
- if (UnityStringArgumentMatches(UnityOptionExcludeNamed))
1511
- retval = 0;
1512
- }
1513
- return retval;
1514
- }
1515
-
1516
- #endif /* UNITY_USE_COMMAND_LINE_ARGS */
1517
- /*-----------------------------------------------*/