ceedling 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +18 -14
- data/README.md +6 -4
- data/assets/project_as_gem.yml +1 -1
- data/assets/rakefile_as_gem.rb +2 -0
- data/assets/rakefile_with_guts.rb +3 -1
- data/ceedling.gemspec +1 -0
- data/examples/blinky/rakefile.rb +2 -2
- data/examples/temp_sensor/rakefile.rb +1 -1
- data/examples/temp_sensor/src/TemperatureFilter.c +1 -2
- data/examples/temp_sensor/test/TestTemperatureCalculator.c +1 -1
- data/examples/temp_sensor/test/TestTemperatureFilter.c +12 -2
- data/lib/ceedling.rb +94 -22
- data/lib/{build_invoker_utils.rb → ceedling/build_invoker_utils.rb} +27 -27
- data/lib/{cacheinator.rb → ceedling/cacheinator.rb} +42 -42
- data/lib/{cacheinator_helper.rb → ceedling/cacheinator_helper.rb} +12 -12
- data/lib/{cmock_builder.rb → ceedling/cmock_builder.rb} +15 -15
- data/lib/{configurator.rb → ceedling/configurator.rb} +333 -329
- data/lib/{configurator_builder.rb → ceedling/configurator_builder.rb} +437 -437
- data/lib/{configurator_plugins.rb → ceedling/configurator_plugins.rb} +124 -124
- data/lib/{configurator_setup.rb → ceedling/configurator_setup.rb} +124 -124
- data/lib/{configurator_validator.rb → ceedling/configurator_validator.rb} +184 -184
- data/lib/{constants.rb → ceedling/constants.rb} +20 -17
- data/lib/{defaults.rb → ceedling/defaults.rb} +19 -18
- data/lib/{dependinator.rb → ceedling/dependinator.rb} +92 -92
- data/lib/{erb_wrapper.rb → ceedling/erb_wrapper.rb} +8 -8
- data/lib/{file_finder.rb → ceedling/file_finder.rb} +132 -132
- data/lib/{file_finder_helper.rb → ceedling/file_finder_helper.rb} +54 -54
- data/lib/{file_path_utils.rb → ceedling/file_path_utils.rb} +189 -189
- data/lib/{file_system_utils.rb → ceedling/file_system_utils.rb} +69 -69
- data/lib/{file_system_wrapper.rb → ceedling/file_system_wrapper.rb} +9 -9
- data/lib/{file_wrapper.rb → ceedling/file_wrapper.rb} +79 -79
- data/lib/{flaginator.rb → ceedling/flaginator.rb} +54 -54
- data/lib/{generator.rb → ceedling/generator.rb} +164 -164
- data/lib/{generator_helper.rb → ceedling/generator_helper.rb} +40 -40
- data/lib/{generator_test_results.rb → ceedling/generator_test_results.rb} +86 -89
- data/lib/{generator_test_results_sanity_checker.rb → ceedling/generator_test_results_sanity_checker.rb} +64 -62
- data/lib/{generator_test_runner.rb → ceedling/generator_test_runner.rb} +63 -63
- data/lib/{loginator.rb → ceedling/loginator.rb} +31 -31
- data/lib/{makefile.rb → ceedling/makefile.rb} +0 -0
- data/lib/{objects.yml → ceedling/objects.yml} +0 -0
- data/lib/{par_map.rb → ceedling/par_map.rb} +0 -0
- data/lib/{plugin.rb → ceedling/plugin.rb} +80 -80
- data/lib/{plugin_builder.rb → ceedling/plugin_builder.rb} +52 -52
- data/lib/{plugin_manager.rb → ceedling/plugin_manager.rb} +107 -107
- data/lib/{plugin_manager_helper.rb → ceedling/plugin_manager_helper.rb} +19 -19
- data/lib/{plugin_reportinator.rb → ceedling/plugin_reportinator.rb} +2 -2
- data/lib/{plugin_reportinator_helper.rb → ceedling/plugin_reportinator_helper.rb} +1 -1
- data/lib/{preprocessinator.rb → ceedling/preprocessinator.rb} +43 -43
- data/lib/{preprocessinator_extractor.rb → ceedling/preprocessinator_extractor.rb} +30 -30
- data/lib/{preprocessinator_file_handler.rb → ceedling/preprocessinator_file_handler.rb} +21 -21
- data/lib/{preprocessinator_helper.rb → ceedling/preprocessinator_helper.rb} +46 -46
- data/lib/ceedling/preprocessinator_includes_handler.rb +82 -0
- data/lib/{project_config_manager.rb → ceedling/project_config_manager.rb} +38 -38
- data/lib/{project_file_loader.rb → ceedling/project_file_loader.rb} +64 -64
- data/lib/{rake_utils.rb → ceedling/rake_utils.rb} +17 -17
- data/lib/{rake_wrapper.rb → ceedling/rake_wrapper.rb} +33 -33
- data/lib/{rakefile.rb → ceedling/rakefile.rb} +78 -74
- data/lib/{release_invoker.rb → ceedling/release_invoker.rb} +58 -58
- data/lib/{release_invoker_helper.rb → ceedling/release_invoker_helper.rb} +16 -16
- data/lib/{reportinator.rb → ceedling/reportinator.rb} +9 -9
- data/lib/{rules_cmock.rake → ceedling/rules_cmock.rake} +9 -9
- data/lib/{rules_preprocess.rake → ceedling/rules_preprocess.rake} +26 -26
- data/lib/{rules_release.rake → ceedling/rules_release.rake} +79 -79
- data/lib/{rules_release_deep_dependencies.rake → ceedling/rules_release_deep_dependencies.rake} +15 -15
- data/lib/{rules_tests.rake → ceedling/rules_tests.rake} +59 -59
- data/lib/{rules_tests_deep_dependencies.rake → ceedling/rules_tests_deep_dependencies.rake} +15 -15
- data/lib/{setupinator.rb → ceedling/setupinator.rb} +51 -51
- data/lib/{stream_wrapper.rb → ceedling/stream_wrapper.rb} +20 -20
- data/lib/{streaminator.rb → ceedling/streaminator.rb} +40 -41
- data/lib/{streaminator_helper.rb → ceedling/streaminator_helper.rb} +15 -15
- data/lib/{system_utils.rb → ceedling/system_utils.rb} +0 -0
- data/lib/{system_wrapper.rb → ceedling/system_wrapper.rb} +76 -76
- data/lib/{target_loader.rb → ceedling/target_loader.rb} +0 -0
- data/lib/{task_invoker.rb → ceedling/task_invoker.rb} +89 -89
- data/lib/{tasks_base.rake → ceedling/tasks_base.rake} +104 -104
- data/lib/{tasks_filesystem.rake → ceedling/tasks_filesystem.rake} +91 -91
- data/lib/{tasks_release.rake → ceedling/tasks_release.rake} +28 -28
- data/lib/{tasks_release_deep_dependencies.rake → ceedling/tasks_release_deep_dependencies.rake} +9 -9
- data/lib/{tasks_tests.rake → ceedling/tasks_tests.rake} +52 -52
- data/lib/{tasks_tests_deep_dependencies.rake → ceedling/tasks_tests_deep_dependencies.rake} +9 -9
- data/lib/{tasks_vendor.rake → ceedling/tasks_vendor.rake} +36 -36
- data/lib/{test_includes_extractor.rb → ceedling/test_includes_extractor.rb} +81 -81
- data/lib/{test_invoker.rb → ceedling/test_invoker.rb} +97 -97
- data/lib/{test_invoker_helper.rb → ceedling/test_invoker_helper.rb} +28 -28
- data/lib/{tool_executor.rb → ceedling/tool_executor.rb} +215 -212
- data/lib/{tool_executor_helper.rb → ceedling/tool_executor_helper.rb} +115 -115
- data/lib/{verbosinator.rb → ceedling/verbosinator.rb} +10 -10
- data/lib/ceedling/version.rb +1 -1
- data/lib/{yaml_wrapper.rb → ceedling/yaml_wrapper.rb} +17 -16
- data/license.txt +31 -0
- data/plugins/bullseye/lib/bullseye.rb +2 -2
- data/plugins/gcov/gcov.rb +2 -2
- data/plugins/module_generator/lib/module_generator.rb +4 -3
- data/plugins/stdout_ide_tests_report/lib/stdout_ide_tests_report.rb +8 -8
- data/plugins/stdout_pretty_tests_report/lib/stdout_pretty_tests_report.rb +3 -3
- data/plugins/teamcity_tests_report/config/teamcity_tests_report.yml +4 -0
- data/plugins/teamcity_tests_report/lib/teamcity_tests_report.rb +57 -0
- data/plugins/xml_tests_report/xml_tests_report.rb +4 -4
- data/release/version.info +1 -1
- data/spec/ceedling_spec.rb +154 -0
- data/spec/par_map_spec.rb +1 -1
- data/spec/preprocessinator_extractor_spec.rb +26 -27
- data/spec/preprocessinator_includes_handler_spec.rb +175 -0
- data/spec/spec_helper.rb +8 -27
- data/test_graveyard/integration/paths_test.rb +2 -2
- data/test_graveyard/unit/busted/configurator_builder_test.rb +2 -2
- data/test_graveyard/unit/busted/configurator_test.rb +1 -1
- data/test_graveyard/unit/busted/configurator_validator_test.rb +1 -1
- data/test_graveyard/unit/busted/dependinator_test.rb +1 -1
- data/test_graveyard/unit/busted/file_finder_helper_test.rb +1 -1
- data/test_graveyard/unit/busted/file_finder_test.rb +1 -1
- data/test_graveyard/unit/busted/file_path_utils_test.rb +1 -1
- data/test_graveyard/unit/busted/file_system_utils_test.rb +1 -1
- data/test_graveyard/unit/busted/generator_test.rb +1 -1
- data/test_graveyard/unit/busted/generator_test_results_test.rb +1 -1
- data/test_graveyard/unit/busted/generator_test_runner_test.rb +1 -1
- data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +1 -1
- data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +1 -1
- data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +1 -1
- data/test_graveyard/unit/busted/preprocessinator_test.rb +1 -1
- data/test_graveyard/unit/busted/project_file_loader_test.rb +1 -1
- data/test_graveyard/unit/busted/setupinator_test.rb +1 -1
- data/test_graveyard/unit/busted/streaminator_test.rb +2 -2
- data/test_graveyard/unit/busted/task_invoker_test.rb +1 -1
- data/test_graveyard/unit/busted/test_includes_extractor_test.rb +1 -1
- data/test_graveyard/unit/busted/test_invoker_helper_test.rb +1 -1
- data/test_graveyard/unit/busted/test_invoker_test.rb +1 -1
- data/test_graveyard/unit/busted/tool_executor_helper_test.rb +1 -1
- data/test_graveyard/unit/busted/tool_executor_test.rb +1 -1
- data/test_graveyard/unit/busted/verbosinator_test.rb +1 -1
- data/test_graveyard/unit/preprocessinator_extractor_test.rb +1 -1
- data/vendor/c_exception/Gemfile +4 -0
- data/vendor/c_exception/lib/CException.h +1 -1
- data/vendor/c_exception/test/TestException.c +25 -14
- data/vendor/c_exception/test/TestException_Runner.c +74 -57
- data/vendor/cmock/Gemfile +11 -0
- data/vendor/cmock/lib/cmock_generator.rb +13 -12
- data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +44 -0
- data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +74 -0
- data/vendor/cmock/lib/cmock_generator_utils.rb +67 -42
- data/vendor/cmock/src/cmock.c +20 -30
- data/vendor/cmock/src/cmock.h +1 -0
- data/vendor/cmock/src/cmock_internals.h +43 -0
- data/vendor/cmock/test/c/TestCMockC.c +79 -36
- data/vendor/cmock/test/c/TestCMockC_Runner.c +2 -0
- data/vendor/cmock/test/spec/cmock_file_writer_spec.rb +21 -1
- data/vendor/cmock/test/spec/cmock_generator_plugin_array_spec.rb +52 -0
- data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +2 -0
- data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +235 -0
- data/vendor/cmock/test/test_helper.rb +10 -5
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +38 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +116 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +134 -0
- data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +58 -33
- data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
- data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/docs/license.txt +30 -0
- data/vendor/cmock/vendor/c_exception/docs/readme.txt +236 -0
- data/vendor/cmock/vendor/c_exception/lib/CException.c +39 -0
- data/vendor/cmock/vendor/c_exception/lib/CException.h +70 -0
- data/vendor/cmock/vendor/c_exception/makefile +24 -0
- data/vendor/cmock/vendor/c_exception/rakefile.rb +41 -0
- data/vendor/cmock/vendor/c_exception/release/build.info +2 -0
- data/vendor/cmock/vendor/c_exception/release/version.info +2 -0
- data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +27 -0
- data/vendor/cmock/vendor/c_exception/test/TestException.c +291 -0
- data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +62 -0
- data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +94 -0
- data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -0
- data/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -0
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +202 -0
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +313 -0
- data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +23 -0
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +139 -0
- data/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/Unity Summary.txt +217 -0
- data/vendor/cmock/vendor/unity/docs/license.txt +31 -0
- data/vendor/cmock/vendor/unity/examples/helper/UnityHelper.c +10 -0
- data/vendor/cmock/vendor/unity/examples/helper/UnityHelper.h +12 -0
- data/vendor/cmock/vendor/unity/examples/makefile +40 -0
- data/vendor/cmock/vendor/unity/examples/rakefile.rb +32 -0
- data/vendor/cmock/vendor/unity/examples/rakefile_helper.rb +256 -0
- data/vendor/cmock/vendor/unity/examples/readme.txt +18 -0
- data/vendor/cmock/vendor/unity/examples/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/unity/examples/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/unity/examples/src/ProductionCode2.c +9 -0
- data/vendor/cmock/vendor/unity/examples/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/unity/examples/test/TestProductionCode.c +62 -0
- data/vendor/cmock/vendor/unity/examples/test/TestProductionCode2.c +31 -0
- data/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode2_Runner.c +46 -0
- data/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode_Runner.c +50 -0
- data/vendor/{unity → cmock/vendor/unity}/extras/fixture/build/MakefileWorker.mk +0 -0
- data/vendor/{unity → cmock/vendor/unity}/extras/fixture/build/filterGcov.sh +0 -0
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +37 -0
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
- data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +9 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +381 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +81 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +321 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +40 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
- data/vendor/cmock/vendor/unity/makefile +35 -0
- data/vendor/cmock/vendor/unity/rakefile.rb +48 -0
- data/vendor/cmock/vendor/unity/rakefile_helper.rb +240 -0
- data/vendor/cmock/vendor/unity/release/build.info +2 -0
- data/vendor/cmock/vendor/unity/release/version.info +2 -0
- data/vendor/cmock/vendor/unity/src/unity.c +979 -0
- data/vendor/cmock/vendor/unity/src/unity.h +232 -0
- data/vendor/cmock/vendor/unity/src/unity_internals.h +424 -0
- data/vendor/cmock/vendor/unity/targets/gcc.yml +43 -0
- data/vendor/cmock/vendor/unity/targets/gcc_64.yml +44 -0
- data/vendor/cmock/vendor/unity/targets/hitech_picc18.yml +101 -0
- data/vendor/cmock/vendor/unity/targets/iar_arm_v4.yml +89 -0
- data/vendor/cmock/vendor/unity/targets/iar_arm_v5.yml +79 -0
- data/vendor/cmock/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
- data/vendor/cmock/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
- data/vendor/cmock/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
- data/vendor/cmock/vendor/unity/targets/iar_msp430.yml +94 -0
- data/vendor/cmock/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +54 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +50 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +76 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +72 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +85 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +85 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +73 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +85 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +85 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +86 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +60 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +63 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +51 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +60 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +63 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +64 -0
- data/vendor/cmock/vendor/unity/test/test_generate_test_runner.rb +94 -0
- data/vendor/cmock/vendor/unity/test/testdata/mocksample.c +51 -0
- data/vendor/cmock/vendor/unity/test/testdata/sample.yml +9 -0
- data/vendor/cmock/vendor/unity/test/testdata/testsample.c +51 -0
- data/vendor/cmock/vendor/unity/test/testparameterized.c +101 -0
- data/vendor/cmock/vendor/unity/test/testunity.c +2024 -0
- data/vendor/unity/Gemfile +4 -0
- data/vendor/unity/auto/generate_test_runner.rb +6 -3
- data/vendor/unity/examples/makefile +2 -2
- data/vendor/unity/examples/rakefile.rb +13 -2
- data/vendor/unity/extras/fixture/rakefile.rb +1 -1
- data/vendor/unity/extras/fixture/rakefile_helper.rb +4 -3
- data/vendor/unity/extras/fixture/src/unity_fixture.c +15 -12
- data/vendor/unity/extras/fixture/src/unity_fixture.h +5 -5
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +1 -1
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +6 -3
- data/vendor/unity/makefile +2 -2
- data/vendor/unity/src/unity.c +183 -16
- data/vendor/unity/src/unity.h +18 -5
- data/vendor/unity/src/unity_internals.h +57 -23
- data/vendor/unity/targets/gcc_64.yml +45 -0
- data/vendor/unity/test/testunity.c +436 -28
- metadata +200 -137
- data/ceedling-0.13.0.rc4.gem +0 -0
- data/ceedling.sublime-project +0 -8
- data/ceedling.sublime-workspace +0 -365
- data/lib/preprocessinator_includes_handler.rb +0 -55
- data/tags +0 -977
- data/vendor/cmock/vendor/hardmock/CHANGES +0 -78
- data/vendor/cmock/vendor/hardmock/LICENSE +0 -7
- data/vendor/cmock/vendor/hardmock/README +0 -70
- data/vendor/cmock/vendor/hardmock/Rakefile +0 -8
- data/vendor/cmock/vendor/hardmock/config/environment.rb +0 -12
- data/vendor/cmock/vendor/hardmock/lib/assert_error.rb +0 -23
- data/vendor/cmock/vendor/hardmock/lib/extend_test_unit.rb +0 -14
- data/vendor/cmock/vendor/hardmock/lib/hardmock.rb +0 -86
- data/vendor/cmock/vendor/hardmock/lib/hardmock/errors.rb +0 -22
- data/vendor/cmock/vendor/hardmock/lib/hardmock/expectation.rb +0 -229
- data/vendor/cmock/vendor/hardmock/lib/hardmock/expectation_builder.rb +0 -9
- data/vendor/cmock/vendor/hardmock/lib/hardmock/expector.rb +0 -26
- data/vendor/cmock/vendor/hardmock/lib/hardmock/method_cleanout.rb +0 -33
- data/vendor/cmock/vendor/hardmock/lib/hardmock/mock.rb +0 -180
- data/vendor/cmock/vendor/hardmock/lib/hardmock/mock_control.rb +0 -53
- data/vendor/cmock/vendor/hardmock/lib/hardmock/stubbing.rb +0 -210
- data/vendor/cmock/vendor/hardmock/lib/hardmock/trapper.rb +0 -31
- data/vendor/cmock/vendor/hardmock/lib/hardmock/utils.rb +0 -9
- data/vendor/cmock/vendor/hardmock/lib/test_unit_before_after.rb +0 -169
- data/vendor/cmock/vendor/hardmock/rake_tasks/rdoc.rake +0 -19
- data/vendor/cmock/vendor/hardmock/rake_tasks/rdoc_options.rb +0 -4
- data/vendor/cmock/vendor/hardmock/rake_tasks/test.rake +0 -22
- data/vendor/cmock/vendor/hardmock/test/functional/assert_error_test.rb +0 -52
- data/vendor/cmock/vendor/hardmock/test/functional/auto_verify_test.rb +0 -178
- data/vendor/cmock/vendor/hardmock/test/functional/direct_mock_usage_test.rb +0 -396
- data/vendor/cmock/vendor/hardmock/test/functional/hardmock_test.rb +0 -434
- data/vendor/cmock/vendor/hardmock/test/functional/stubbing_test.rb +0 -479
- data/vendor/cmock/vendor/hardmock/test/test_helper.rb +0 -43
- data/vendor/cmock/vendor/hardmock/test/unit/expectation_builder_test.rb +0 -19
- data/vendor/cmock/vendor/hardmock/test/unit/expectation_test.rb +0 -372
- data/vendor/cmock/vendor/hardmock/test/unit/expector_test.rb +0 -57
- data/vendor/cmock/vendor/hardmock/test/unit/method_cleanout_test.rb +0 -36
- data/vendor/cmock/vendor/hardmock/test/unit/mock_control_test.rb +0 -175
- data/vendor/cmock/vendor/hardmock/test/unit/mock_test.rb +0 -279
- data/vendor/cmock/vendor/hardmock/test/unit/test_unit_before_after_test.rb +0 -452
- data/vendor/cmock/vendor/hardmock/test/unit/trapper_test.rb +0 -62
- data/vendor/cmock/vendor/hardmock/test/unit/verify_error_test.rb +0 -40
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
|
2
|
+
#include "unity.h"
|
|
3
|
+
#include <setjmp.h>
|
|
4
|
+
#include <stdio.h>
|
|
5
|
+
|
|
6
|
+
char MessageBuffer[50];
|
|
7
|
+
|
|
8
|
+
extern void setUp(void);
|
|
9
|
+
extern void tearDown(void);
|
|
10
|
+
|
|
11
|
+
extern void test_IgnoredTest(void);
|
|
12
|
+
extern void test_AnotherIgnoredTest(void);
|
|
13
|
+
extern void test_ThisFunctionHasNotBeenTested_NeedsToBeImplemented(void);
|
|
14
|
+
|
|
15
|
+
static void runTest(UnityTestFunction test)
|
|
16
|
+
{
|
|
17
|
+
if (TEST_PROTECT())
|
|
18
|
+
{
|
|
19
|
+
setUp();
|
|
20
|
+
test();
|
|
21
|
+
}
|
|
22
|
+
if (TEST_PROTECT() && !TEST_IS_IGNORED)
|
|
23
|
+
{
|
|
24
|
+
tearDown();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
void resetTest()
|
|
28
|
+
{
|
|
29
|
+
tearDown();
|
|
30
|
+
setUp();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
int main(void)
|
|
35
|
+
{
|
|
36
|
+
Unity.TestFile = "test/TestProductionCode2.c";
|
|
37
|
+
UnityBegin();
|
|
38
|
+
|
|
39
|
+
// RUN_TEST calls runTest
|
|
40
|
+
RUN_TEST(test_IgnoredTest, 13);
|
|
41
|
+
RUN_TEST(test_AnotherIgnoredTest, 18);
|
|
42
|
+
RUN_TEST(test_ThisFunctionHasNotBeenTested_NeedsToBeImplemented, 23);
|
|
43
|
+
|
|
44
|
+
UnityEnd();
|
|
45
|
+
return 0;
|
|
46
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
|
2
|
+
#include "unity.h"
|
|
3
|
+
#include <setjmp.h>
|
|
4
|
+
#include <stdio.h>
|
|
5
|
+
|
|
6
|
+
char MessageBuffer[50];
|
|
7
|
+
|
|
8
|
+
extern void setUp(void);
|
|
9
|
+
extern void tearDown(void);
|
|
10
|
+
|
|
11
|
+
extern void test_FindFunction_WhichIsBroken_ShouldReturnZeroIfItemIsNotInList_WhichWorksEvenInOurBrokenCode(void);
|
|
12
|
+
extern void test_FindFunction_WhichIsBroken_ShouldReturnTheIndexForItemsInList_WhichWillFailBecauseOurFunctionUnderTestIsBroken(void);
|
|
13
|
+
extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValue(void);
|
|
14
|
+
extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValueAgain(void);
|
|
15
|
+
extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnCurrentCounter_ButFailsBecauseThisTestIsActuallyFlawed(void);
|
|
16
|
+
|
|
17
|
+
static void runTest(UnityTestFunction test)
|
|
18
|
+
{
|
|
19
|
+
if (TEST_PROTECT())
|
|
20
|
+
{
|
|
21
|
+
setUp();
|
|
22
|
+
test();
|
|
23
|
+
}
|
|
24
|
+
if (TEST_PROTECT() && !TEST_IS_IGNORED)
|
|
25
|
+
{
|
|
26
|
+
tearDown();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
void resetTest()
|
|
30
|
+
{
|
|
31
|
+
tearDown();
|
|
32
|
+
setUp();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
int main(void)
|
|
37
|
+
{
|
|
38
|
+
Unity.TestFile = "test/TestProductionCode.c";
|
|
39
|
+
UnityBegin();
|
|
40
|
+
|
|
41
|
+
// RUN_TEST calls runTest
|
|
42
|
+
RUN_TEST(test_FindFunction_WhichIsBroken_ShouldReturnZeroIfItemIsNotInList_WhichWorksEvenInOurBrokenCode, 20);
|
|
43
|
+
RUN_TEST(test_FindFunction_WhichIsBroken_ShouldReturnTheIndexForItemsInList_WhichWillFailBecauseOurFunctionUnderTestIsBroken, 30);
|
|
44
|
+
RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValue, 41);
|
|
45
|
+
RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValueAgain, 51);
|
|
46
|
+
RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnCurrentCounter_ButFailsBecauseThisTestIsActuallyFlawed, 57);
|
|
47
|
+
|
|
48
|
+
UnityEnd();
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# ==========================================
|
|
2
|
+
# Unity Project - A Test Framework for C
|
|
3
|
+
# Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
|
|
4
|
+
# [Released under MIT License. Please refer to license.txt for details]
|
|
5
|
+
# ==========================================
|
|
6
|
+
|
|
7
|
+
HERE = File.expand_path(File.dirname(__FILE__)) + '/'
|
|
8
|
+
|
|
9
|
+
require 'rake'
|
|
10
|
+
require 'rake/clean'
|
|
11
|
+
require 'rake/testtask'
|
|
12
|
+
require HERE + 'rakefile_helper'
|
|
13
|
+
|
|
14
|
+
include RakefileHelpers
|
|
15
|
+
|
|
16
|
+
# Load default configuration, for now
|
|
17
|
+
DEFAULT_CONFIG_FILE = 'gcc.yml'
|
|
18
|
+
configure_toolchain(DEFAULT_CONFIG_FILE)
|
|
19
|
+
|
|
20
|
+
task :unit do
|
|
21
|
+
run_tests
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
desc "Build and test Unity Framework"
|
|
25
|
+
task :all => [:clean, :unit]
|
|
26
|
+
task :default => [:clobber, :all]
|
|
27
|
+
task :ci => [:no_color, :default]
|
|
28
|
+
task :cruise => [:no_color, :default]
|
|
29
|
+
|
|
30
|
+
desc "Load configuration"
|
|
31
|
+
task :config, :config_file do |t, args|
|
|
32
|
+
configure_toolchain(args[:config_file])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
task :no_color do
|
|
36
|
+
$colour_output = false
|
|
37
|
+
end
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# ==========================================
|
|
2
|
+
# Unity Project - A Test Framework for C
|
|
3
|
+
# Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
|
|
4
|
+
# [Released under MIT License. Please refer to license.txt for details]
|
|
5
|
+
# ==========================================
|
|
6
|
+
|
|
7
|
+
require 'yaml'
|
|
8
|
+
require 'fileutils'
|
|
9
|
+
require HERE+'../../auto/unity_test_summary'
|
|
10
|
+
require HERE+'../../auto/generate_test_runner'
|
|
11
|
+
require HERE+'../../auto/colour_reporter'
|
|
12
|
+
|
|
13
|
+
module RakefileHelpers
|
|
14
|
+
|
|
15
|
+
C_EXTENSION = '.c'
|
|
16
|
+
|
|
17
|
+
def load_configuration(config_file)
|
|
18
|
+
unless ($configured)
|
|
19
|
+
$cfg_file = HERE+"../../targets/#{config_file}" unless (config_file =~ /[\\|\/]/)
|
|
20
|
+
$cfg = YAML.load(File.read($cfg_file))
|
|
21
|
+
$colour_output = false unless $cfg['colour']
|
|
22
|
+
$configured = true if (config_file != DEFAULT_CONFIG_FILE)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def configure_clean
|
|
27
|
+
CLEAN.include($cfg['compiler']['build_path'] + '*.*') unless $cfg['compiler']['build_path'].nil?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def configure_toolchain(config_file=DEFAULT_CONFIG_FILE)
|
|
31
|
+
config_file += '.yml' unless config_file =~ /\.yml$/
|
|
32
|
+
config_file = config_file unless config_file =~ /[\\|\/]/
|
|
33
|
+
load_configuration(config_file)
|
|
34
|
+
configure_clean
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def tackit(strings)
|
|
38
|
+
if strings.is_a?(Array)
|
|
39
|
+
result = "\"#{strings.join}\""
|
|
40
|
+
else
|
|
41
|
+
result = strings
|
|
42
|
+
end
|
|
43
|
+
return result
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def squash(prefix, items)
|
|
47
|
+
result = ''
|
|
48
|
+
items.each { |item| result += " #{prefix}#{tackit(item)}" }
|
|
49
|
+
return result
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def build_compiler_fields
|
|
53
|
+
command = tackit($cfg['compiler']['path'])
|
|
54
|
+
if $cfg['compiler']['defines']['items'].nil?
|
|
55
|
+
defines = ''
|
|
56
|
+
else
|
|
57
|
+
defines = squash($cfg['compiler']['defines']['prefix'], $cfg['compiler']['defines']['items'] + ['UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar'])
|
|
58
|
+
end
|
|
59
|
+
options = squash('', $cfg['compiler']['options'])
|
|
60
|
+
includes = squash($cfg['compiler']['includes']['prefix'], $cfg['compiler']['includes']['items'])
|
|
61
|
+
includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
|
|
62
|
+
return {:command => command, :defines => defines, :options => options, :includes => includes}
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def compile(file, defines=[])
|
|
66
|
+
compiler = build_compiler_fields
|
|
67
|
+
unity_include = $cfg['compiler']['includes']['prefix']+'../../src'
|
|
68
|
+
cmd_str = "#{compiler[:command]}#{compiler[:defines]}#{compiler[:options]}#{compiler[:includes]} #{unity_include} #{file} " +
|
|
69
|
+
"#{$cfg['compiler']['object_files']['prefix']}#{$cfg['compiler']['object_files']['destination']}" +
|
|
70
|
+
"#{File.basename(file, C_EXTENSION)}#{$cfg['compiler']['object_files']['extension']}"
|
|
71
|
+
execute(cmd_str)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def build_linker_fields
|
|
75
|
+
command = tackit($cfg['linker']['path'])
|
|
76
|
+
if $cfg['linker']['options'].nil?
|
|
77
|
+
options = ''
|
|
78
|
+
else
|
|
79
|
+
options = squash('', $cfg['linker']['options'])
|
|
80
|
+
end
|
|
81
|
+
if ($cfg['linker']['includes'].nil? || $cfg['linker']['includes']['items'].nil?)
|
|
82
|
+
includes = ''
|
|
83
|
+
else
|
|
84
|
+
includes = squash($cfg['linker']['includes']['prefix'], $cfg['linker']['includes']['items'])
|
|
85
|
+
end
|
|
86
|
+
includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
|
|
87
|
+
return {:command => command, :options => options, :includes => includes}
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def link(exe_name, obj_list)
|
|
91
|
+
linker = build_linker_fields
|
|
92
|
+
cmd_str = "#{linker[:command]}#{linker[:options]}#{linker[:includes]} " +
|
|
93
|
+
(obj_list.map{|obj|"#{$cfg['linker']['object_files']['path']}#{obj} "}).join +
|
|
94
|
+
$cfg['linker']['bin_files']['prefix'] + ' ' +
|
|
95
|
+
$cfg['linker']['bin_files']['destination'] +
|
|
96
|
+
exe_name + $cfg['linker']['bin_files']['extension']
|
|
97
|
+
execute(cmd_str)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def build_simulator_fields
|
|
101
|
+
return nil if $cfg['simulator'].nil?
|
|
102
|
+
if $cfg['simulator']['path'].nil?
|
|
103
|
+
command = ''
|
|
104
|
+
else
|
|
105
|
+
command = (tackit($cfg['simulator']['path']) + ' ')
|
|
106
|
+
end
|
|
107
|
+
if $cfg['simulator']['pre_support'].nil?
|
|
108
|
+
pre_support = ''
|
|
109
|
+
else
|
|
110
|
+
pre_support = squash('', $cfg['simulator']['pre_support'])
|
|
111
|
+
end
|
|
112
|
+
if $cfg['simulator']['post_support'].nil?
|
|
113
|
+
post_support = ''
|
|
114
|
+
else
|
|
115
|
+
post_support = squash('', $cfg['simulator']['post_support'])
|
|
116
|
+
end
|
|
117
|
+
return {:command => command, :pre_support => pre_support, :post_support => post_support}
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def execute(command_string, verbose=true)
|
|
121
|
+
report command_string
|
|
122
|
+
output = `#{command_string}`.chomp
|
|
123
|
+
report(output) if (verbose && !output.nil? && (output.length > 0))
|
|
124
|
+
if ($?.exitstatus != 0)
|
|
125
|
+
raise "Command failed. (Returned #{$?.exitstatus})"
|
|
126
|
+
end
|
|
127
|
+
return output
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def report_summary
|
|
131
|
+
summary = UnityTestSummary.new
|
|
132
|
+
summary.set_root_path(HERE)
|
|
133
|
+
results_glob = "#{$cfg['compiler']['build_path']}*.test*"
|
|
134
|
+
results_glob.gsub!(/\\/, '/')
|
|
135
|
+
results = Dir[results_glob]
|
|
136
|
+
summary.set_targets(results)
|
|
137
|
+
summary.run
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def run_tests
|
|
141
|
+
report 'Running Unity system tests...'
|
|
142
|
+
|
|
143
|
+
# Tack on TEST define for compiling unit tests
|
|
144
|
+
load_configuration($cfg_file)
|
|
145
|
+
test_defines = ['TEST']
|
|
146
|
+
$cfg['compiler']['defines']['items'] = [] if $cfg['compiler']['defines']['items'].nil?
|
|
147
|
+
|
|
148
|
+
# Get a list of all source files needed
|
|
149
|
+
src_files = Dir[HERE+'src/*.c']
|
|
150
|
+
src_files += Dir[HERE+'test/*.c']
|
|
151
|
+
src_files << '../../src/Unity.c'
|
|
152
|
+
|
|
153
|
+
# Build object files
|
|
154
|
+
src_files.each { |f| compile(f, test_defines) }
|
|
155
|
+
obj_list = src_files.map {|f| File.basename(f.ext($cfg['compiler']['object_files']['extension'])) }
|
|
156
|
+
|
|
157
|
+
# Link the test executable
|
|
158
|
+
test_base = "framework_test"
|
|
159
|
+
link(test_base, obj_list)
|
|
160
|
+
|
|
161
|
+
# Execute unit test and generate results file
|
|
162
|
+
simulator = build_simulator_fields
|
|
163
|
+
executable = $cfg['linker']['bin_files']['destination'] + test_base + $cfg['linker']['bin_files']['extension']
|
|
164
|
+
if simulator.nil?
|
|
165
|
+
cmd_str = executable + " -v -r"
|
|
166
|
+
else
|
|
167
|
+
cmd_str = "#{simulator[:command]} #{simulator[:pre_support]} #{executable} #{simulator[:post_support]}"
|
|
168
|
+
end
|
|
169
|
+
output = execute(cmd_str)
|
|
170
|
+
test_results = $cfg['compiler']['build_path'] + test_base
|
|
171
|
+
if output.match(/OK$/m).nil?
|
|
172
|
+
test_results += '.testfail'
|
|
173
|
+
else
|
|
174
|
+
test_results += '.testpass'
|
|
175
|
+
end
|
|
176
|
+
File.open(test_results, 'w') { |f| f.print output }
|
|
177
|
+
end
|
|
178
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
This Framework is an optional add-on to Unity. By including unity_framework.h in place of unity.h,
|
|
8
|
+
you may now work with Unity in a manner similar to CppUTest. This framework adds the concepts of
|
|
9
|
+
test groups and gives finer control of your tests over the command line.
|
|
@@ -0,0 +1,381 @@
|
|
|
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
|
+
#include "unity_internals.h"
|
|
10
|
+
#include <string.h>
|
|
11
|
+
|
|
12
|
+
UNITY_FIXTURE_T UnityFixture;
|
|
13
|
+
|
|
14
|
+
//If you decide to use the function pointer approach.
|
|
15
|
+
int (*outputChar)(int) = putchar;
|
|
16
|
+
|
|
17
|
+
int verbose = 0;
|
|
18
|
+
|
|
19
|
+
void setUp(void) { /*does nothing*/ }
|
|
20
|
+
void tearDown(void) { /*does nothing*/ }
|
|
21
|
+
|
|
22
|
+
void announceTestRun(unsigned int runNumber)
|
|
23
|
+
{
|
|
24
|
+
UnityPrint("Unity test run ");
|
|
25
|
+
UnityPrintNumber(runNumber+1);
|
|
26
|
+
UnityPrint(" of ");
|
|
27
|
+
UnityPrintNumber(UnityFixture.RepeatCount);
|
|
28
|
+
UNITY_OUTPUT_CHAR('\n');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
int UnityMain(int argc, char* argv[], void (*runAllTests)())
|
|
32
|
+
{
|
|
33
|
+
int result = UnityGetCommandLineOptions(argc, argv);
|
|
34
|
+
unsigned int r;
|
|
35
|
+
if (result != 0)
|
|
36
|
+
return result;
|
|
37
|
+
|
|
38
|
+
for (r = 0; r < UnityFixture.RepeatCount; r++)
|
|
39
|
+
{
|
|
40
|
+
announceTestRun(r);
|
|
41
|
+
UnityBegin();
|
|
42
|
+
runAllTests();
|
|
43
|
+
UNITY_OUTPUT_CHAR('\n');
|
|
44
|
+
UnityEnd();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return UnityFailureCount();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static int selected(const char * filter, const char * name)
|
|
51
|
+
{
|
|
52
|
+
if (filter == 0)
|
|
53
|
+
return 1;
|
|
54
|
+
return strstr(name, filter) ? 1 : 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static int testSelected(const char* test)
|
|
58
|
+
{
|
|
59
|
+
return selected(UnityFixture.NameFilter, test);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static int groupSelected(const char* group)
|
|
63
|
+
{
|
|
64
|
+
return selected(UnityFixture.GroupFilter, group);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static void runTestCase()
|
|
68
|
+
{
|
|
69
|
+
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
void UnityTestRunner(unityfunction* setup,
|
|
73
|
+
unityfunction* testBody,
|
|
74
|
+
unityfunction* teardown,
|
|
75
|
+
const char * printableName,
|
|
76
|
+
const char * group,
|
|
77
|
+
const char * name,
|
|
78
|
+
const char * file, int line)
|
|
79
|
+
{
|
|
80
|
+
if (testSelected(name) && groupSelected(group))
|
|
81
|
+
{
|
|
82
|
+
Unity.CurrentTestFailed = 0;
|
|
83
|
+
Unity.TestFile = file;
|
|
84
|
+
Unity.CurrentTestName = printableName;
|
|
85
|
+
Unity.CurrentTestLineNumber = line;
|
|
86
|
+
if (!UnityFixture.Verbose)
|
|
87
|
+
UNITY_OUTPUT_CHAR('.');
|
|
88
|
+
else
|
|
89
|
+
UnityPrint(printableName);
|
|
90
|
+
|
|
91
|
+
Unity.NumberOfTests++;
|
|
92
|
+
UnityMalloc_StartTest();
|
|
93
|
+
UnityPointer_Init();
|
|
94
|
+
|
|
95
|
+
runTestCase();
|
|
96
|
+
if (TEST_PROTECT())
|
|
97
|
+
{
|
|
98
|
+
setup();
|
|
99
|
+
testBody();
|
|
100
|
+
}
|
|
101
|
+
if (TEST_PROTECT())
|
|
102
|
+
{
|
|
103
|
+
teardown();
|
|
104
|
+
}
|
|
105
|
+
if (TEST_PROTECT())
|
|
106
|
+
{
|
|
107
|
+
UnityPointer_UndoAllSets();
|
|
108
|
+
if (!Unity.CurrentTestFailed)
|
|
109
|
+
UnityMalloc_EndTest();
|
|
110
|
+
UnityConcludeFixtureTest();
|
|
111
|
+
}
|
|
112
|
+
else
|
|
113
|
+
{
|
|
114
|
+
//aborting - jwg - di i need these for the other TEST_PROTECTS?
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
void UnityIgnoreTest()
|
|
120
|
+
{
|
|
121
|
+
Unity.NumberOfTests++;
|
|
122
|
+
Unity.CurrentTestIgnored = 1;
|
|
123
|
+
UNITY_OUTPUT_CHAR('!');
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
//-------------------------------------------------
|
|
128
|
+
//Malloc and free stuff
|
|
129
|
+
//
|
|
130
|
+
#define MALLOC_DONT_FAIL -1
|
|
131
|
+
static int malloc_count;
|
|
132
|
+
static int malloc_fail_countdown = MALLOC_DONT_FAIL;
|
|
133
|
+
|
|
134
|
+
void UnityMalloc_StartTest()
|
|
135
|
+
{
|
|
136
|
+
malloc_count = 0;
|
|
137
|
+
malloc_fail_countdown = MALLOC_DONT_FAIL;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
void UnityMalloc_EndTest()
|
|
141
|
+
{
|
|
142
|
+
malloc_fail_countdown = MALLOC_DONT_FAIL;
|
|
143
|
+
if (malloc_count != 0)
|
|
144
|
+
{
|
|
145
|
+
TEST_FAIL_MESSAGE("This test leaks!");
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
void UnityMalloc_MakeMallocFailAfterCount(int countdown)
|
|
150
|
+
{
|
|
151
|
+
malloc_fail_countdown = countdown;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
#ifdef malloc
|
|
155
|
+
#undef malloc
|
|
156
|
+
#endif
|
|
157
|
+
|
|
158
|
+
#ifdef free
|
|
159
|
+
#undef free
|
|
160
|
+
#endif
|
|
161
|
+
|
|
162
|
+
#include <stdlib.h>
|
|
163
|
+
#include <string.h>
|
|
164
|
+
|
|
165
|
+
typedef struct GuardBytes
|
|
166
|
+
{
|
|
167
|
+
int size;
|
|
168
|
+
char guard[sizeof(int)];
|
|
169
|
+
} Guard;
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
static const char * end = "END";
|
|
173
|
+
|
|
174
|
+
void * unity_malloc(size_t size)
|
|
175
|
+
{
|
|
176
|
+
char* mem;
|
|
177
|
+
Guard* guard;
|
|
178
|
+
|
|
179
|
+
if (malloc_fail_countdown != MALLOC_DONT_FAIL)
|
|
180
|
+
{
|
|
181
|
+
if (malloc_fail_countdown == 0)
|
|
182
|
+
return 0;
|
|
183
|
+
malloc_fail_countdown--;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
malloc_count++;
|
|
187
|
+
|
|
188
|
+
guard = (Guard*)malloc(size + sizeof(Guard) + 4);
|
|
189
|
+
guard->size = size;
|
|
190
|
+
mem = (char*)&(guard[1]);
|
|
191
|
+
memcpy(&mem[size], end, strlen(end) + 1);
|
|
192
|
+
|
|
193
|
+
return (void*)mem;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
static int isOverrun(void * mem)
|
|
197
|
+
{
|
|
198
|
+
Guard* guard = (Guard*)mem;
|
|
199
|
+
char* memAsChar = (char*)mem;
|
|
200
|
+
guard--;
|
|
201
|
+
|
|
202
|
+
return strcmp(&memAsChar[guard->size], end) != 0;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
static void release_memory(void * mem)
|
|
206
|
+
{
|
|
207
|
+
Guard* guard = (Guard*)mem;
|
|
208
|
+
guard--;
|
|
209
|
+
|
|
210
|
+
malloc_count--;
|
|
211
|
+
free(guard);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
void unity_free(void * mem)
|
|
215
|
+
{
|
|
216
|
+
int overrun = isOverrun(mem);//strcmp(&memAsChar[guard->size], end) != 0;
|
|
217
|
+
release_memory(mem);
|
|
218
|
+
if (overrun)
|
|
219
|
+
{
|
|
220
|
+
TEST_FAIL_MESSAGE("Buffer overrun detected during free()");
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
void* unity_calloc(size_t num, size_t size)
|
|
225
|
+
{
|
|
226
|
+
void* mem = unity_malloc(num * size);
|
|
227
|
+
memset(mem, 0, num*size);
|
|
228
|
+
return mem;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
void* unity_realloc(void * oldMem, size_t size)
|
|
232
|
+
{
|
|
233
|
+
Guard* guard = (Guard*)oldMem;
|
|
234
|
+
// char* memAsChar = (char*)oldMem;
|
|
235
|
+
void* newMem;
|
|
236
|
+
|
|
237
|
+
if (oldMem == 0)
|
|
238
|
+
return unity_malloc(size);
|
|
239
|
+
|
|
240
|
+
guard--;
|
|
241
|
+
if (isOverrun(oldMem))
|
|
242
|
+
{
|
|
243
|
+
release_memory(oldMem);
|
|
244
|
+
TEST_FAIL_MESSAGE("Buffer overrun detected during realloc()");
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
if (size == 0)
|
|
248
|
+
{
|
|
249
|
+
release_memory(oldMem);
|
|
250
|
+
return 0;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (guard->size >= size)
|
|
254
|
+
return oldMem;
|
|
255
|
+
|
|
256
|
+
newMem = unity_malloc(size);
|
|
257
|
+
memcpy(newMem, oldMem, size);
|
|
258
|
+
unity_free(oldMem);
|
|
259
|
+
return newMem;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
//--------------------------------------------------------
|
|
264
|
+
//Automatic pointer restoration functions
|
|
265
|
+
typedef struct _PointerPair
|
|
266
|
+
{
|
|
267
|
+
struct _PointerPair * next;
|
|
268
|
+
void ** pointer;
|
|
269
|
+
void * old_value;
|
|
270
|
+
} PointerPair;
|
|
271
|
+
|
|
272
|
+
enum {MAX_POINTERS=50};
|
|
273
|
+
static PointerPair pointer_store[MAX_POINTERS];
|
|
274
|
+
static int pointer_index = 0;
|
|
275
|
+
|
|
276
|
+
void UnityPointer_Init()
|
|
277
|
+
{
|
|
278
|
+
pointer_index = 0;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
void UnityPointer_Set(void ** pointer, void * newValue)
|
|
282
|
+
{
|
|
283
|
+
if (pointer_index >= MAX_POINTERS)
|
|
284
|
+
TEST_FAIL_MESSAGE("Too many pointers set");
|
|
285
|
+
|
|
286
|
+
pointer_store[pointer_index].pointer = pointer;
|
|
287
|
+
pointer_store[pointer_index].old_value = *pointer;
|
|
288
|
+
*pointer = newValue;
|
|
289
|
+
pointer_index++;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
void UnityPointer_UndoAllSets()
|
|
293
|
+
{
|
|
294
|
+
while (pointer_index > 0)
|
|
295
|
+
{
|
|
296
|
+
pointer_index--;
|
|
297
|
+
*(pointer_store[pointer_index].pointer) =
|
|
298
|
+
pointer_store[pointer_index].old_value;
|
|
299
|
+
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
int UnityFailureCount()
|
|
304
|
+
{
|
|
305
|
+
return Unity.TestFailures;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
int UnityGetCommandLineOptions(int argc, char* argv[])
|
|
309
|
+
{
|
|
310
|
+
int i;
|
|
311
|
+
UnityFixture.Verbose = 0;
|
|
312
|
+
UnityFixture.GroupFilter = 0;
|
|
313
|
+
UnityFixture.NameFilter = 0;
|
|
314
|
+
UnityFixture.RepeatCount = 1;
|
|
315
|
+
|
|
316
|
+
if (argc == 1)
|
|
317
|
+
return 0;
|
|
318
|
+
|
|
319
|
+
for (i = 1; i < argc; )
|
|
320
|
+
{
|
|
321
|
+
if (strcmp(argv[i], "-v") == 0)
|
|
322
|
+
{
|
|
323
|
+
UnityFixture.Verbose = 1;
|
|
324
|
+
i++;
|
|
325
|
+
}
|
|
326
|
+
else if (strcmp(argv[i], "-g") == 0)
|
|
327
|
+
{
|
|
328
|
+
i++;
|
|
329
|
+
if (i >= argc)
|
|
330
|
+
return 1;
|
|
331
|
+
UnityFixture.GroupFilter = argv[i];
|
|
332
|
+
i++;
|
|
333
|
+
}
|
|
334
|
+
else if (strcmp(argv[i], "-n") == 0)
|
|
335
|
+
{
|
|
336
|
+
i++;
|
|
337
|
+
if (i >= argc)
|
|
338
|
+
return 1;
|
|
339
|
+
UnityFixture.NameFilter = argv[i];
|
|
340
|
+
i++;
|
|
341
|
+
}
|
|
342
|
+
else if (strcmp(argv[i], "-r") == 0)
|
|
343
|
+
{
|
|
344
|
+
UnityFixture.RepeatCount = 2;
|
|
345
|
+
i++;
|
|
346
|
+
if (i < argc)
|
|
347
|
+
{
|
|
348
|
+
if (*(argv[i]) >= '0' && *(argv[i]) <= '9')
|
|
349
|
+
{
|
|
350
|
+
UnityFixture.RepeatCount = atoi(argv[i]);
|
|
351
|
+
i++;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return 0;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
void UnityConcludeFixtureTest()
|
|
360
|
+
{
|
|
361
|
+
if (Unity.CurrentTestIgnored)
|
|
362
|
+
{
|
|
363
|
+
Unity.TestIgnores++;
|
|
364
|
+
}
|
|
365
|
+
else if (!Unity.CurrentTestFailed)
|
|
366
|
+
{
|
|
367
|
+
if (UnityFixture.Verbose)
|
|
368
|
+
{
|
|
369
|
+
UnityPrint(" PASS");
|
|
370
|
+
UNITY_OUTPUT_CHAR('\n');
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
else if (Unity.CurrentTestFailed)
|
|
374
|
+
{
|
|
375
|
+
Unity.TestFailures++;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
Unity.CurrentTestFailed = 0;
|
|
379
|
+
Unity.CurrentTestIgnored = 0;
|
|
380
|
+
}
|
|
381
|
+
|