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
data/vendor/cmock/src/cmock.h
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemNew(CMOCK_MEM_INDEX_TYPE size);
|
|
21
21
|
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemChain(CMOCK_MEM_INDEX_TYPE root_index, CMOCK_MEM_INDEX_TYPE obj_index);
|
|
22
22
|
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemNext(CMOCK_MEM_INDEX_TYPE previous_item_index);
|
|
23
|
+
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemEndOfChain(CMOCK_MEM_INDEX_TYPE root_index);
|
|
23
24
|
|
|
24
25
|
void* CMock_Guts_GetAddressFor(CMOCK_MEM_INDEX_TYPE index);
|
|
25
26
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* ==========================================
|
|
2
|
+
CMock Project - Automatic Mock Generation 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
|
+
#ifndef CMOCK_FRAMEWORK_INTERNALS_H
|
|
8
|
+
#define CMOCK_FRAMEWORK_INTERNALS_H
|
|
9
|
+
|
|
10
|
+
#include "cmock.h"
|
|
11
|
+
|
|
12
|
+
//define CMOCK_MEM_DYNAMIC to grab memory as needed with malloc
|
|
13
|
+
//when you do that, CMOCK_MEM_SIZE is used for incremental size instead of total
|
|
14
|
+
#ifdef CMOCK_MEM_STATIC
|
|
15
|
+
#undef CMOCK_MEM_DYNAMIC
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
#ifdef CMOCK_MEM_DYNAMIC
|
|
19
|
+
#include <stdlib.h>
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
//this is used internally during pointer arithmetic. make sure this type is the same size as the target's pointer type
|
|
23
|
+
#ifndef CMOCK_MEM_PTR_AS_INT
|
|
24
|
+
#define CMOCK_MEM_PTR_AS_INT unsigned long
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
//0 for no alignment, 1 for 16-bit, 2 for 32-bit, 3 for 64-bit
|
|
28
|
+
#ifndef CMOCK_MEM_ALIGN
|
|
29
|
+
#define CMOCK_MEM_ALIGN (2)
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
//amount of memory to allow cmock to use in its internal heap
|
|
33
|
+
#ifndef CMOCK_MEM_SIZE
|
|
34
|
+
#define CMOCK_MEM_SIZE (32768)
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
//automatically calculated defs for easier reading
|
|
38
|
+
#define CMOCK_MEM_ALIGN_SIZE (1u << CMOCK_MEM_ALIGN)
|
|
39
|
+
#define CMOCK_MEM_ALIGN_MASK (CMOCK_MEM_ALIGN_SIZE - 1)
|
|
40
|
+
#define CMOCK_MEM_INDEX_SIZE (CMOCK_MEM_PTR_AS_INT)((sizeof(CMOCK_MEM_INDEX_TYPE) > CMOCK_MEM_ALIGN_SIZE) ? sizeof(CMOCK_MEM_INDEX_TYPE) : CMOCK_MEM_ALIGN_SIZE)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
#endif //CMOCK_FRAMEWORK_INTERNALS
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
========================================== */
|
|
6
6
|
|
|
7
7
|
#include "unity.h"
|
|
8
|
-
#include "
|
|
8
|
+
#include "cmock_internals.h"
|
|
9
9
|
|
|
10
10
|
#define TEST_MEM_INDEX_SIZE (sizeof(CMOCK_MEM_INDEX_TYPE))
|
|
11
11
|
|
|
@@ -21,7 +21,7 @@ void tearDown(void)
|
|
|
21
21
|
void test_MemNewWillReturnNullIfGivenIllegalSizes(void)
|
|
22
22
|
{
|
|
23
23
|
TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNew(0) );
|
|
24
|
-
TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNew(CMOCK_MEM_SIZE - TEST_MEM_INDEX_SIZE + 1) );
|
|
24
|
+
TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNew(CMOCK_MEM_SIZE - TEST_MEM_INDEX_SIZE + 1) );
|
|
25
25
|
TEST_ASSERT_NULL( CMock_Guts_GetAddressFor(CMOCK_GUTS_NONE) );
|
|
26
26
|
|
|
27
27
|
//verify we're cleared still
|
|
@@ -30,7 +30,7 @@ void test_MemNewWillReturnNullIfGivenIllegalSizes(void)
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
void test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation(void)
|
|
33
|
-
{
|
|
33
|
+
{
|
|
34
34
|
CMOCK_MEM_INDEX_TYPE next = CMock_Guts_MemNew(4);
|
|
35
35
|
TEST_ASSERT_EQUAL(4 + TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesUsed());
|
|
36
36
|
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 - TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesFree());
|
|
@@ -57,7 +57,7 @@ void test_MemNextWillReturnNullIfGivenABadRoot(void)
|
|
|
57
57
|
void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
|
|
58
58
|
{
|
|
59
59
|
unsigned int i;
|
|
60
|
-
CMOCK_MEM_INDEX_TYPE next;
|
|
60
|
+
CMOCK_MEM_INDEX_TYPE next;
|
|
61
61
|
CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
|
|
62
62
|
CMOCK_MEM_INDEX_TYPE element[4];
|
|
63
63
|
|
|
@@ -73,8 +73,8 @@ void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
|
|
|
73
73
|
*((unsigned int*)CMock_Guts_GetAddressFor(element[0])) = 0;
|
|
74
74
|
|
|
75
75
|
//verify we're using the right amount of memory
|
|
76
|
-
TEST_ASSERT_EQUAL(1 * (TEST_MEM_INDEX_SIZE +
|
|
77
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 1 * (TEST_MEM_INDEX_SIZE +
|
|
76
|
+
TEST_ASSERT_EQUAL(1 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
|
|
77
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 1 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
|
|
78
78
|
|
|
79
79
|
//second element
|
|
80
80
|
element[1] = CMock_Guts_MemNew(sizeof(unsigned int));
|
|
@@ -84,8 +84,8 @@ void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
|
|
|
84
84
|
*((unsigned int*)CMock_Guts_GetAddressFor(element[1])) = 1;
|
|
85
85
|
|
|
86
86
|
//verify we're using the right amount of memory
|
|
87
|
-
TEST_ASSERT_EQUAL(2 * (TEST_MEM_INDEX_SIZE +
|
|
88
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 2 * (TEST_MEM_INDEX_SIZE +
|
|
87
|
+
TEST_ASSERT_EQUAL(2 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
|
|
88
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 2 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
|
|
89
89
|
|
|
90
90
|
//third element
|
|
91
91
|
element[2] = CMock_Guts_MemNew(sizeof(unsigned int));
|
|
@@ -96,8 +96,8 @@ void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
|
|
|
96
96
|
*((unsigned int*)CMock_Guts_GetAddressFor(element[2])) = 2;
|
|
97
97
|
|
|
98
98
|
//verify we're using the right amount of memory
|
|
99
|
-
TEST_ASSERT_EQUAL(3 * (TEST_MEM_INDEX_SIZE +
|
|
100
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 3 * (TEST_MEM_INDEX_SIZE +
|
|
99
|
+
TEST_ASSERT_EQUAL(3 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
|
|
100
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 3 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
|
|
101
101
|
|
|
102
102
|
//fourth element
|
|
103
103
|
element[3] = CMock_Guts_MemNew(sizeof(unsigned int));
|
|
@@ -109,8 +109,8 @@ void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
|
|
|
109
109
|
*((unsigned int*)CMock_Guts_GetAddressFor(element[3])) = 3;
|
|
110
110
|
|
|
111
111
|
//verify we're using the right amount of memory
|
|
112
|
-
TEST_ASSERT_EQUAL(4 * (TEST_MEM_INDEX_SIZE +
|
|
113
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 * (TEST_MEM_INDEX_SIZE +
|
|
112
|
+
TEST_ASSERT_EQUAL(4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
|
|
113
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
|
|
114
114
|
|
|
115
115
|
//traverse list
|
|
116
116
|
next = first;
|
|
@@ -125,8 +125,8 @@ void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
|
|
|
125
125
|
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
|
|
126
126
|
|
|
127
127
|
//verify we're using the right amount of memory
|
|
128
|
-
TEST_ASSERT_EQUAL(4 * (TEST_MEM_INDEX_SIZE +
|
|
129
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 * (TEST_MEM_INDEX_SIZE +
|
|
128
|
+
TEST_ASSERT_EQUAL(4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
|
|
129
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
|
|
130
130
|
|
|
131
131
|
//Free it all
|
|
132
132
|
CMock_Guts_MemFreeAll();
|
|
@@ -138,17 +138,17 @@ void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
|
|
|
138
138
|
|
|
139
139
|
void test_ThatCMockStopsReturningMoreDataWhenItRunsOutOfMemory(void)
|
|
140
140
|
{
|
|
141
|
-
unsigned int i;
|
|
141
|
+
unsigned int i;
|
|
142
142
|
CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
|
|
143
143
|
CMOCK_MEM_INDEX_TYPE next;
|
|
144
144
|
|
|
145
|
-
//even though we are asking for one byte, we've told it to align to closest
|
|
146
|
-
//so each call will use
|
|
147
|
-
//therefore we can safely allocated total/
|
|
148
|
-
for (i = 0; i < (CMOCK_MEM_SIZE /
|
|
145
|
+
//even though we are asking for one byte, we've told it to align to closest CMOCK_MEM_ALIGN_SIZE bytes, therefore it will waste a byte each time
|
|
146
|
+
//so each call will use (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE) bytes (CMOCK_MEM_INDEX_SIZE for the index, 1 for the data, and (CMOCK_MEM_ALIGN_SIZE - 1) wasted).
|
|
147
|
+
//therefore we can safely allocated total/(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE) times.
|
|
148
|
+
for (i = 0; i < (CMOCK_MEM_SIZE / (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE)); i++)
|
|
149
149
|
{
|
|
150
|
-
TEST_ASSERT_EQUAL(i*
|
|
151
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - i*
|
|
150
|
+
TEST_ASSERT_EQUAL(i*(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE), CMock_Guts_MemBytesUsed());
|
|
151
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - i*(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE), CMock_Guts_MemBytesFree());
|
|
152
152
|
|
|
153
153
|
next = CMock_Guts_MemNew(1);
|
|
154
154
|
TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
|
|
@@ -172,28 +172,29 @@ void test_ThatCMockStopsReturningMoreDataWhenItRunsOutOfMemory(void)
|
|
|
172
172
|
|
|
173
173
|
//verify we can still walk through the elements allocated
|
|
174
174
|
next = first;
|
|
175
|
-
for (i = 0; i < (CMOCK_MEM_SIZE /
|
|
175
|
+
for (i = 0; i < (CMOCK_MEM_SIZE / (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE)); i++)
|
|
176
176
|
{
|
|
177
177
|
TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
|
|
178
178
|
next = CMock_Guts_MemNext(next);
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
//there aren't any after that
|
|
182
|
-
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
|
|
182
|
+
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, (_UU32)next);
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
void test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtExactEnd(void)
|
|
186
186
|
{
|
|
187
|
-
unsigned int i;
|
|
187
|
+
unsigned int i;
|
|
188
188
|
CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
|
|
189
189
|
CMOCK_MEM_INDEX_TYPE next;
|
|
190
190
|
|
|
191
|
-
//we're asking for
|
|
192
|
-
//
|
|
193
|
-
for
|
|
191
|
+
//we're asking for (CMOCK_MEM_INDEX_SIZE + 8) bytes each time now (CMOCK_MEM_INDEX_SIZE for index, 8 for data).
|
|
192
|
+
//CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8) requests will request as much data as possible, while ensuring that there isn't enough
|
|
193
|
+
//memory for the next request
|
|
194
|
+
for (i = 0; i < CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8); i++)
|
|
194
195
|
{
|
|
195
|
-
TEST_ASSERT_EQUAL(i*
|
|
196
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - i*
|
|
196
|
+
TEST_ASSERT_EQUAL(i*(CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
|
|
197
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - i*(CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
|
|
197
198
|
|
|
198
199
|
next = CMock_Guts_MemNew(8);
|
|
199
200
|
TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
|
|
@@ -206,22 +207,22 @@ void test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtE
|
|
|
206
207
|
}
|
|
207
208
|
|
|
208
209
|
//verify we're at top of memory
|
|
209
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 8, CMock_Guts_MemBytesUsed());
|
|
210
|
-
TEST_ASSERT_EQUAL(8, CMock_Guts_MemBytesFree());
|
|
210
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
|
|
211
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
|
|
211
212
|
|
|
212
213
|
//The very next call will return a NONE, and any after that
|
|
213
214
|
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(8));
|
|
214
215
|
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(5));
|
|
215
216
|
|
|
216
217
|
//verify nothing has changed
|
|
217
|
-
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 8, CMock_Guts_MemBytesUsed());
|
|
218
|
-
TEST_ASSERT_EQUAL(8, CMock_Guts_MemBytesFree());
|
|
218
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
|
|
219
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
|
|
219
220
|
|
|
220
221
|
//verify we can still walk through the elements allocated
|
|
221
222
|
next = first;
|
|
222
|
-
for (i = 0; i <
|
|
223
|
+
for (i = 0; i < CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8); i++)
|
|
223
224
|
{
|
|
224
|
-
TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
|
|
225
|
+
TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
|
|
225
226
|
TEST_ASSERT_EQUAL(i, *((unsigned int*)CMock_Guts_GetAddressFor(next)));
|
|
226
227
|
next = CMock_Guts_MemNext(next);
|
|
227
228
|
}
|
|
@@ -232,7 +233,11 @@ void test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtE
|
|
|
232
233
|
|
|
233
234
|
void test_ThatWeCanAskForAllSortsOfSizes(void)
|
|
234
235
|
{
|
|
235
|
-
|
|
236
|
+
#if CMOCK_MEM_ALIGN != 2
|
|
237
|
+
TEST_IGNORE_MESSAGE("Test relies on a particular environmental setup, which is not present");
|
|
238
|
+
#else
|
|
239
|
+
|
|
240
|
+
unsigned int i;
|
|
236
241
|
CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
|
|
237
242
|
CMOCK_MEM_INDEX_TYPE next;
|
|
238
243
|
unsigned int sizes[5] = {3, 1, 80, 5, 4};
|
|
@@ -277,4 +282,42 @@ void test_ThatWeCanAskForAllSortsOfSizes(void)
|
|
|
277
282
|
|
|
278
283
|
//there aren't any after that
|
|
279
284
|
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
|
|
285
|
+
#endif
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
void test_MemEndOfChain(void)
|
|
289
|
+
{
|
|
290
|
+
CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
|
|
291
|
+
CMOCK_MEM_INDEX_TYPE element[4];
|
|
292
|
+
|
|
293
|
+
//verify we're cleared first
|
|
294
|
+
TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
|
|
295
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
|
|
296
|
+
|
|
297
|
+
//first element
|
|
298
|
+
element[0] = CMock_Guts_MemNew(sizeof(unsigned int));
|
|
299
|
+
first = CMock_Guts_MemChain(first, element[0]);
|
|
300
|
+
TEST_ASSERT_MESSAGE(element[0] == CMock_Guts_MemEndOfChain(first), "Should have returned element[0]");
|
|
301
|
+
|
|
302
|
+
//second element
|
|
303
|
+
element[1] = CMock_Guts_MemNew(sizeof(unsigned int));
|
|
304
|
+
CMock_Guts_MemChain(first, element[1]);
|
|
305
|
+
TEST_ASSERT_MESSAGE(element[1] == CMock_Guts_MemEndOfChain(first), "Should have returned element[1]");
|
|
306
|
+
|
|
307
|
+
//third element
|
|
308
|
+
element[2] = CMock_Guts_MemNew(sizeof(unsigned int));
|
|
309
|
+
CMock_Guts_MemChain(first, element[2]);
|
|
310
|
+
TEST_ASSERT_MESSAGE(element[2] == CMock_Guts_MemEndOfChain(first), "Should have returned element[2]");
|
|
311
|
+
|
|
312
|
+
//fourth element
|
|
313
|
+
element[3] = CMock_Guts_MemNew(sizeof(unsigned int));
|
|
314
|
+
CMock_Guts_MemChain(first, element[3]);
|
|
315
|
+
TEST_ASSERT_MESSAGE(element[3] == CMock_Guts_MemEndOfChain(first), "Should have returned element[3]");
|
|
316
|
+
|
|
317
|
+
//Free it all
|
|
318
|
+
CMock_Guts_MemFreeAll();
|
|
319
|
+
|
|
320
|
+
//verify we're cleared
|
|
321
|
+
TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
|
|
322
|
+
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
|
|
280
323
|
}
|
|
@@ -15,6 +15,7 @@ extern void test_MemNewWillReturnNullIfGivenIllegalSizes(void);
|
|
|
15
15
|
extern void test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation(void);
|
|
16
16
|
extern void test_MemNextWillReturnNullIfGivenABadRoot(void);
|
|
17
17
|
extern void test_ThatWeCanClaimAndChainAFewElementsTogether(void);
|
|
18
|
+
extern void test_MemEndOfChain(void);
|
|
18
19
|
extern void test_ThatCMockStopsReturningMoreDataWhenItRunsOutOfMemory(void);
|
|
19
20
|
extern void test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtExactEnd(void);
|
|
20
21
|
extern void test_ThatWeCanAskForAllSortsOfSizes(void);
|
|
@@ -28,6 +29,7 @@ int main(void)
|
|
|
28
29
|
RUN_TEST(test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation, 32);
|
|
29
30
|
RUN_TEST(test_MemNextWillReturnNullIfGivenABadRoot, 46);
|
|
30
31
|
RUN_TEST(test_ThatWeCanClaimAndChainAFewElementsTogether, 57);
|
|
32
|
+
RUN_TEST(test_MemEndOfChain, 282);
|
|
31
33
|
RUN_TEST(test_ThatCMockStopsReturningMoreDataWhenItRunsOutOfMemory, 139);
|
|
32
34
|
RUN_TEST(test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtExactEnd, 185);
|
|
33
35
|
RUN_TEST(test_ThatWeCanAskForAllSortsOfSizes, 233);
|
|
@@ -5,6 +5,7 @@ require 'cmock_file_writer'
|
|
|
5
5
|
describe CMockFileWriter do
|
|
6
6
|
before do
|
|
7
7
|
@cmConfig = Object.new
|
|
8
|
+
|
|
8
9
|
#create instance of class under test
|
|
9
10
|
@subject = CMockFileWriter.new(@cmConfig)
|
|
10
11
|
end
|
|
@@ -17,9 +18,28 @@ describe CMockFileWriter do
|
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
describe 'create_file' do
|
|
20
|
-
|
|
21
|
+
|
|
22
|
+
it "should complain if a block was not specified when calling create" do
|
|
21
23
|
expect {@subject.create_file("text.txt")}.should raise_error
|
|
22
24
|
# should.be_false
|
|
23
25
|
end
|
|
26
|
+
|
|
27
|
+
it "should perform block on new file" do
|
|
28
|
+
# mock(@cmConfig).enforce_strict_ordering {false}
|
|
29
|
+
mock(@cmConfig).mock_path {"testPath"}
|
|
30
|
+
mock(@cmConfig).mock_path {"testPath"}
|
|
31
|
+
|
|
32
|
+
FakeFile = Object.new
|
|
33
|
+
mock(File).open("testPath/test.txt.new", "w").yields(FakeFile, "test.txt")
|
|
34
|
+
mock(FakeFile).write("hello world"){nil}
|
|
35
|
+
|
|
36
|
+
mock(File).exist?("testPath/test.txt") {true}
|
|
37
|
+
mock(FileUtils).rm("testPath/test.txt")
|
|
38
|
+
mock(FileUtils).cp("testPath/test.txt.new", "testPath/test.txt")
|
|
39
|
+
mock(FileUtils).rm("testPath/test.txt.new")
|
|
40
|
+
# Call function under test
|
|
41
|
+
@subject.create_file("test.txt") {|f| f.write("hello world")}
|
|
42
|
+
end
|
|
43
|
+
|
|
24
44
|
end
|
|
25
45
|
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
here = File.expand_path(File.dirname(__FILE__))
|
|
2
|
+
require "#{here}/spec_helper" #add this to execute tests from the spec directory
|
|
3
|
+
require 'cmock_generator_plugin_array'
|
|
4
|
+
|
|
5
|
+
describe :CMockGeneratorPluginArray do
|
|
6
|
+
before do
|
|
7
|
+
@cmConfig = Object.new
|
|
8
|
+
@cmUtils = Object.new
|
|
9
|
+
mock(@cmConfig).when_ptr {:compare_data}
|
|
10
|
+
mock(@cmConfig).enforce_strict_ordering {false}
|
|
11
|
+
mock(@cmUtils).helpers { {} }
|
|
12
|
+
#create instance of class under test
|
|
13
|
+
@subject = CMockGeneratorPluginArray.new(@cmConfig, @cmUtils)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should not respond to include_files" do
|
|
17
|
+
# @subject.should_not respond_to(:include_files)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# it "should not add to typedef structure for functions of " +
|
|
21
|
+
# "style 'int* func(void)'" do
|
|
22
|
+
# function = {:name => "Oak", :args => [], :return => :int_ptr}
|
|
23
|
+
# returned = @subject.instance_typedefs(function)
|
|
24
|
+
# returned.should == ""
|
|
25
|
+
# end
|
|
26
|
+
|
|
27
|
+
# it "should add to typedef structure mock needs of functions of style "+
|
|
28
|
+
# "'void func(int chicken, int* pork)'" do
|
|
29
|
+
# arg1 = { :name => "chicken", :type => "int", :ptr? => false}
|
|
30
|
+
# arg2 = { :name => "pork", :type => "int*", :ptr? => true}
|
|
31
|
+
# function = {:name => "Cedar",
|
|
32
|
+
# :args => [arg1, arg2],
|
|
33
|
+
# :return => :void}
|
|
34
|
+
# expected = " int Expected_pork_Depth;\n"
|
|
35
|
+
# returned = @subject.instance_typedefs(function)
|
|
36
|
+
# returned.should == expected
|
|
37
|
+
# end
|
|
38
|
+
|
|
39
|
+
# it "should not add an additional mock interface for functions not containing pointers" do
|
|
40
|
+
# function = {:name => "Maple", :args_string => "int blah", :return => :string,
|
|
41
|
+
# :contains_ptr? => false}
|
|
42
|
+
# returned = @subject.mock_function_declarations(function)
|
|
43
|
+
# returned.should_be nil
|
|
44
|
+
# end
|
|
45
|
+
|
|
46
|
+
# describe 'create_file' do
|
|
47
|
+
# it "complain if a block was not specified when calling create" do
|
|
48
|
+
# expect {@subject.create_file("text.txt")}.should raise_error
|
|
49
|
+
# # should.be_false
|
|
50
|
+
# end
|
|
51
|
+
# end
|
|
52
|
+
end
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
---
|
|
2
|
+
:cmock:
|
|
3
|
+
:mock_path: test/mocks
|
|
4
|
+
:mock_prefix: mock_
|
|
5
|
+
:treat_as:
|
|
6
|
+
abs_struct: PTR
|
|
7
|
+
intptr: INT*
|
|
8
|
+
:when_ptr: :smart
|
|
9
|
+
:plugins:
|
|
10
|
+
- :array
|
|
11
|
+
- :ignore_arg
|
|
12
|
+
- :return_thru_ptr
|
|
13
|
+
|
|
14
|
+
:systest:
|
|
15
|
+
:types: |
|
|
16
|
+
typedef int *intptr;
|
|
17
|
+
|
|
18
|
+
struct a_struct
|
|
19
|
+
{
|
|
20
|
+
int i1;
|
|
21
|
+
int i2;
|
|
22
|
+
int i3;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
struct _abs_struct
|
|
26
|
+
{
|
|
27
|
+
int abs_i1;
|
|
28
|
+
int abs_i2;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
typedef struct _abs_struct abs_struct;
|
|
32
|
+
|
|
33
|
+
:mockable: |
|
|
34
|
+
void ptr_ret_int(int *r);
|
|
35
|
+
void ptr_ret_ints(int *r, int *s);
|
|
36
|
+
void ptr_ret_array(char r[], int len);
|
|
37
|
+
void ptr_ret_typedef(intptr r);
|
|
38
|
+
void ptr_ret_struct(struct a_struct *r);
|
|
39
|
+
void ptr_ret_abstract(abs_struct *r);
|
|
40
|
+
void ptr_ret_abstract_array(abs_struct *r, int len);
|
|
41
|
+
void ptr_ret_const_int(int *r, const int *s);
|
|
42
|
+
void ptr_ret_string(char *s);
|
|
43
|
+
|
|
44
|
+
:source:
|
|
45
|
+
:header: |
|
|
46
|
+
#include <string.h>
|
|
47
|
+
#define lengthof(x) (sizeof(x)/sizeof((x)[0]))
|
|
48
|
+
|
|
49
|
+
:code: |
|
|
50
|
+
|
|
51
|
+
:tests:
|
|
52
|
+
:common: |
|
|
53
|
+
void setUp(void) {}
|
|
54
|
+
void tearDown(void) {}
|
|
55
|
+
|
|
56
|
+
:units:
|
|
57
|
+
- :pass: TRUE
|
|
58
|
+
:should: "handle a single int* argument"
|
|
59
|
+
:code: |
|
|
60
|
+
test()
|
|
61
|
+
{
|
|
62
|
+
int r = 1;
|
|
63
|
+
int res = 4;
|
|
64
|
+
|
|
65
|
+
ptr_ret_int_Expect(&r);
|
|
66
|
+
ptr_ret_int_ReturnThruPtr_r(&res);
|
|
67
|
+
ptr_ret_int(&r);
|
|
68
|
+
TEST_ASSERT_EQUAL(4, r);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
- :pass: TRUE
|
|
72
|
+
:should: "handle multiple calls"
|
|
73
|
+
:code: |
|
|
74
|
+
test()
|
|
75
|
+
{
|
|
76
|
+
int r = 1;
|
|
77
|
+
int res1 = 4;
|
|
78
|
+
int res2 = 8;
|
|
79
|
+
int res3 = 16;
|
|
80
|
+
|
|
81
|
+
ptr_ret_int_Expect(&r);
|
|
82
|
+
ptr_ret_int_ReturnThruPtr_r(&res1);
|
|
83
|
+
ptr_ret_int_Expect(&r);
|
|
84
|
+
ptr_ret_int_ReturnThruPtr_r(&res2);
|
|
85
|
+
ptr_ret_int_Expect(&r);
|
|
86
|
+
ptr_ret_int_ReturnThruPtr_r(&res3);
|
|
87
|
+
|
|
88
|
+
ptr_ret_int(&r);
|
|
89
|
+
TEST_ASSERT_EQUAL(4, r);
|
|
90
|
+
ptr_ret_int(&r);
|
|
91
|
+
TEST_ASSERT_EQUAL(8, r);
|
|
92
|
+
ptr_ret_int(&r);
|
|
93
|
+
TEST_ASSERT_EQUAL(16, r);
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
- :pass: TRUE
|
|
98
|
+
:should: "ignore an argument"
|
|
99
|
+
:code: |
|
|
100
|
+
test()
|
|
101
|
+
{
|
|
102
|
+
int r = 1, s = 2;
|
|
103
|
+
int res = 4;
|
|
104
|
+
|
|
105
|
+
ptr_ret_int_Expect(&r);
|
|
106
|
+
ptr_ret_int_IgnoreArg_r();
|
|
107
|
+
ptr_ret_int_ReturnThruPtr_r(&res);
|
|
108
|
+
ptr_ret_int(&s);
|
|
109
|
+
TEST_ASSERT_EQUAL(4, s);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
- :pass: TRUE
|
|
113
|
+
:should: "ignore a null pointer argument"
|
|
114
|
+
:code: |
|
|
115
|
+
test()
|
|
116
|
+
{
|
|
117
|
+
int r = 1;
|
|
118
|
+
int res = 4;
|
|
119
|
+
|
|
120
|
+
ptr_ret_int_Expect(NULL);
|
|
121
|
+
ptr_ret_int_IgnoreArg_r();
|
|
122
|
+
ptr_ret_int_ReturnThruPtr_r(&res);
|
|
123
|
+
ptr_ret_int(&r);
|
|
124
|
+
TEST_ASSERT_EQUAL(4, r);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
- :pass: TRUE
|
|
128
|
+
:should: "handle multiple int* arguments"
|
|
129
|
+
:code: |
|
|
130
|
+
test()
|
|
131
|
+
{
|
|
132
|
+
int r, s = 0x0880AA55;
|
|
133
|
+
int r_res = 4;
|
|
134
|
+
int s_res = 6;
|
|
135
|
+
|
|
136
|
+
ptr_ret_ints_Expect(&r, &s);
|
|
137
|
+
ptr_ret_ints_ReturnThruPtr_r(&r_res);
|
|
138
|
+
ptr_ret_ints_ReturnThruPtr_s(&s_res);
|
|
139
|
+
ptr_ret_ints(&r, &s);
|
|
140
|
+
TEST_ASSERT_EQUAL(4, r);
|
|
141
|
+
TEST_ASSERT_EQUAL(6, s);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
- :pass: TRUE
|
|
145
|
+
:should: "only return through pointer when asked to"
|
|
146
|
+
:code: |
|
|
147
|
+
test()
|
|
148
|
+
{
|
|
149
|
+
int r = 0x0880AA55;
|
|
150
|
+
int s = 0xAA55;
|
|
151
|
+
int r_res = 4;
|
|
152
|
+
|
|
153
|
+
ptr_ret_ints_Expect(&r, &s);
|
|
154
|
+
ptr_ret_ints_ReturnThruPtr_r(&r_res);
|
|
155
|
+
ptr_ret_ints(&r, &s);
|
|
156
|
+
TEST_ASSERT_EQUAL(4, r);
|
|
157
|
+
TEST_ASSERT_EQUAL(0xAA55, s);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
- :pass: TRUE
|
|
161
|
+
:should: "return an array through a pointer correctly"
|
|
162
|
+
:code: |
|
|
163
|
+
test()
|
|
164
|
+
{
|
|
165
|
+
char r_a[] = "booboorooboo";
|
|
166
|
+
char r_a_ret[] = "FEEFI";
|
|
167
|
+
|
|
168
|
+
ptr_ret_array_Expect(r_a, lengthof(r_a));
|
|
169
|
+
ptr_ret_array_ReturnArrayThruPtr_r(r_a_ret, strlen(r_a_ret));
|
|
170
|
+
ptr_ret_array(r_a, lengthof(r_a));
|
|
171
|
+
TEST_ASSERT_EQUAL_STRING("FEEFIorooboo", r_a);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
- :pass: TRUE
|
|
175
|
+
:should: "handle structs"
|
|
176
|
+
:code: |
|
|
177
|
+
test()
|
|
178
|
+
{
|
|
179
|
+
struct a_struct r_s = { .i1 = 2, .i2 = 3, .i3 = 4, };
|
|
180
|
+
struct a_struct r_s_ret = { .i1 = 8, .i2 = 16, .i3 = 32, };
|
|
181
|
+
|
|
182
|
+
ptr_ret_struct_Expect(&r_s);
|
|
183
|
+
ptr_ret_struct_ReturnThruPtr_r(&r_s_ret);
|
|
184
|
+
ptr_ret_struct(&r_s);
|
|
185
|
+
TEST_ASSERT_EQUAL_MEMORY(&r_s_ret, &r_s, sizeof(struct a_struct));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
- :pass: TRUE
|
|
189
|
+
:should: "handle typedefs"
|
|
190
|
+
:code: |
|
|
191
|
+
test()
|
|
192
|
+
{
|
|
193
|
+
abs_struct r_as = {.abs_i1 = 0x1234, .abs_i2 = 0x4567};
|
|
194
|
+
abs_struct r_as_ret = {.abs_i1 = 0xFFAA55, .abs_i2 = 0xAAFFAA};
|
|
195
|
+
ptr_ret_abstract_Expect(&r_as);
|
|
196
|
+
ptr_ret_abstract_ReturnMemThruPtr_r(&r_as_ret, sizeof(abs_struct));
|
|
197
|
+
ptr_ret_abstract(&r_as);
|
|
198
|
+
TEST_ASSERT_EQUAL_MEMORY(&r_as_ret, &r_as, sizeof(abs_struct));
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
- :pass: TRUE
|
|
202
|
+
:should: "only generate ReturnThruPtr definitions for non-const arguments"
|
|
203
|
+
:code: |
|
|
204
|
+
test()
|
|
205
|
+
{
|
|
206
|
+
#if !defined(ptr_ret_const_int_ReturnThruPtr_r)
|
|
207
|
+
TEST_FAIL_MESSAGE("ReturnThruPtr not defined for a pointer argument.");
|
|
208
|
+
#endif
|
|
209
|
+
|
|
210
|
+
#if defined(ptr_ret_const_int_ReturnThruPtr_s)
|
|
211
|
+
TEST_FAIL_MESSAGE("ReturnThruPtr defined for a const pointer argument.");
|
|
212
|
+
#endif
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
- :pass: TRUE
|
|
216
|
+
:should: "generate ReturnThruPtr definitions for string arguments"
|
|
217
|
+
:code: |
|
|
218
|
+
test()
|
|
219
|
+
{
|
|
220
|
+
#if !defined(ptr_ret_string_ReturnThruPtr_s)
|
|
221
|
+
TEST_FAIL_MESSAGE("ReturnThruPtr not defined for a string argument.");
|
|
222
|
+
#endif
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
- :pass: TRUE
|
|
226
|
+
:should: "generate IgnoreArg definitions"
|
|
227
|
+
:code: |
|
|
228
|
+
test()
|
|
229
|
+
{
|
|
230
|
+
#if !defined(ptr_ret_array_IgnoreArg_r) \
|
|
231
|
+
|| !defined(ptr_ret_array_IgnoreArg_len) \
|
|
232
|
+
|| !defined(ptr_ret_const_int_IgnoreArg_s)
|
|
233
|
+
TEST_FAIL_MESSAGE("IgnoreArg not defined for an argument.");
|
|
234
|
+
#endif
|
|
235
|
+
}
|