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
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
require 'rubygems'
|
|
2
|
-
require 'rake'
|
|
3
|
-
require 'set'
|
|
4
|
-
require 'fileutils'
|
|
5
|
-
require 'file_path_utils
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class FileSystemUtils
|
|
9
|
-
|
|
10
|
-
constructor :file_wrapper
|
|
11
|
-
|
|
12
|
-
# build up path list from input of one or more strings or arrays of (+/-) paths & globs
|
|
13
|
-
def collect_paths(*paths)
|
|
14
|
-
raw = [] # all paths and globs
|
|
15
|
-
plus = Set.new # all paths to expand and add
|
|
16
|
-
minus = Set.new # all paths to remove from plus set
|
|
17
|
-
|
|
18
|
-
# assemble all globs and simple paths, reforming our glob notation to ruby globs
|
|
19
|
-
paths.each do |paths_container|
|
|
20
|
-
case (paths_container)
|
|
21
|
-
when String then raw << (FilePathUtils::reform_glob(paths_container))
|
|
22
|
-
when Array then paths_container.each {|path| raw << (FilePathUtils::reform_glob(path))}
|
|
23
|
-
else raise "Don't know how to handle #{paths_container.class}"
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# iterate through each path and glob
|
|
28
|
-
raw.each do |path|
|
|
29
|
-
|
|
30
|
-
dirs = [] # container for only (expanded) paths
|
|
31
|
-
|
|
32
|
-
# if a glob, expand it and slurp up all non-file paths
|
|
33
|
-
if path.include?('*')
|
|
34
|
-
# grab base directory only if globs are snug up to final path separator
|
|
35
|
-
if (path =~ /\/\*+$/)
|
|
36
|
-
dirs << FilePathUtils.extract_path(path)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# grab expanded sub-directory globs
|
|
40
|
-
expanded = @file_wrapper.directory_listing( FilePathUtils.extract_path_no_aggregation_operators(path) )
|
|
41
|
-
expanded.each do |entry|
|
|
42
|
-
dirs << entry if @file_wrapper.directory?(entry)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# else just grab simple path
|
|
46
|
-
# note: we could just run this through glob expansion but such an
|
|
47
|
-
# approach doesn't handle a path not yet on disk)
|
|
48
|
-
else
|
|
49
|
-
dirs << FilePathUtils.extract_path_no_aggregation_operators(path)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# add dirs to the appropriate set based on path aggregation modifier if present
|
|
53
|
-
FilePathUtils.add_path?(path) ? plus.merge(dirs) : minus.merge(dirs)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
return (plus - minus).to_a.uniq
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
# given a file list, add to it or remove from it
|
|
61
|
-
def revise_file_list(list, revisions)
|
|
62
|
-
revisions.each do |revision|
|
|
63
|
-
# include or exclude file or glob to file list
|
|
64
|
-
file = FilePathUtils.extract_path_no_aggregation_operators( revision )
|
|
65
|
-
FilePathUtils.add_path?(revision) ? list.include(file) : list.exclude(file)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
end
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'rake'
|
|
3
|
+
require 'set'
|
|
4
|
+
require 'fileutils'
|
|
5
|
+
require 'ceedling/file_path_utils'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class FileSystemUtils
|
|
9
|
+
|
|
10
|
+
constructor :file_wrapper
|
|
11
|
+
|
|
12
|
+
# build up path list from input of one or more strings or arrays of (+/-) paths & globs
|
|
13
|
+
def collect_paths(*paths)
|
|
14
|
+
raw = [] # all paths and globs
|
|
15
|
+
plus = Set.new # all paths to expand and add
|
|
16
|
+
minus = Set.new # all paths to remove from plus set
|
|
17
|
+
|
|
18
|
+
# assemble all globs and simple paths, reforming our glob notation to ruby globs
|
|
19
|
+
paths.each do |paths_container|
|
|
20
|
+
case (paths_container)
|
|
21
|
+
when String then raw << (FilePathUtils::reform_glob(paths_container))
|
|
22
|
+
when Array then paths_container.each {|path| raw << (FilePathUtils::reform_glob(path))}
|
|
23
|
+
else raise "Don't know how to handle #{paths_container.class}"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# iterate through each path and glob
|
|
28
|
+
raw.each do |path|
|
|
29
|
+
|
|
30
|
+
dirs = [] # container for only (expanded) paths
|
|
31
|
+
|
|
32
|
+
# if a glob, expand it and slurp up all non-file paths
|
|
33
|
+
if path.include?('*')
|
|
34
|
+
# grab base directory only if globs are snug up to final path separator
|
|
35
|
+
if (path =~ /\/\*+$/)
|
|
36
|
+
dirs << FilePathUtils.extract_path(path)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# grab expanded sub-directory globs
|
|
40
|
+
expanded = @file_wrapper.directory_listing( FilePathUtils.extract_path_no_aggregation_operators(path) )
|
|
41
|
+
expanded.each do |entry|
|
|
42
|
+
dirs << entry if @file_wrapper.directory?(entry)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# else just grab simple path
|
|
46
|
+
# note: we could just run this through glob expansion but such an
|
|
47
|
+
# approach doesn't handle a path not yet on disk)
|
|
48
|
+
else
|
|
49
|
+
dirs << FilePathUtils.extract_path_no_aggregation_operators(path)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# add dirs to the appropriate set based on path aggregation modifier if present
|
|
53
|
+
FilePathUtils.add_path?(path) ? plus.merge(dirs) : minus.merge(dirs)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
return (plus - minus).to_a.uniq
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
# given a file list, add to it or remove from it
|
|
61
|
+
def revise_file_list(list, revisions)
|
|
62
|
+
revisions.each do |revision|
|
|
63
|
+
# include or exclude file or glob to file list
|
|
64
|
+
file = FilePathUtils.extract_path_no_aggregation_operators( revision )
|
|
65
|
+
FilePathUtils.add_path?(revision) ? list.include(file) : list.exclude(file)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
class FileSystemWrapper
|
|
3
|
-
|
|
4
|
-
def cd(path)
|
|
5
|
-
FileUtils.cd path do
|
|
6
|
-
yield
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
|
|
1
|
+
|
|
2
|
+
class FileSystemWrapper
|
|
3
|
+
|
|
4
|
+
def cd(path)
|
|
5
|
+
FileUtils.cd path do
|
|
6
|
+
yield
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
10
|
end
|
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
require 'rubygems'
|
|
2
|
-
require 'rake' # for FileList
|
|
3
|
-
require '
|
|
4
|
-
require '
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class FileWrapper
|
|
8
|
-
|
|
9
|
-
def get_expanded_path(path)
|
|
10
|
-
return File.expand_path(path)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def basename(path, extension=nil)
|
|
14
|
-
return File.basename(path, extension) if extension
|
|
15
|
-
return File.basename(path)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def exist?(filepath)
|
|
19
|
-
return true if (filepath == NULL_FILE_PATH)
|
|
20
|
-
return File.exist?(filepath)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def directory?(path)
|
|
24
|
-
return File.directory?(path)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def dirname(path)
|
|
28
|
-
return File.dirname(path)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def directory_listing(glob)
|
|
32
|
-
return Dir.glob(glob)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def rm_f(filepath, options={})
|
|
36
|
-
FileUtils.rm_f(filepath, options)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def rm_r(filepath, options={})
|
|
40
|
-
FileUtils.rm_r(filepath, options={})
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def cp(source, destination, options={})
|
|
44
|
-
FileUtils.cp(source, destination, options)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def compare(from, to)
|
|
48
|
-
return FileUtils.compare_file(from, to)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def open(filepath, flags)
|
|
52
|
-
File.open(filepath, flags) do |file|
|
|
53
|
-
yield(file)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def read(filepath)
|
|
58
|
-
return File.read(filepath)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def touch(filepath, options={})
|
|
62
|
-
FileUtils.touch(filepath, options)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def write(filepath, contents, flags='w')
|
|
66
|
-
File.open(filepath, flags) do |file|
|
|
67
|
-
file.write(contents)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def readlines(filepath)
|
|
72
|
-
return File.readlines(filepath)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def instantiate_file_list(files=[])
|
|
76
|
-
return FileList.new(files)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
end
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'rake' # for FileList
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
require 'ceedling/constants'
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class FileWrapper
|
|
8
|
+
|
|
9
|
+
def get_expanded_path(path)
|
|
10
|
+
return File.expand_path(path)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def basename(path, extension=nil)
|
|
14
|
+
return File.basename(path, extension) if extension
|
|
15
|
+
return File.basename(path)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def exist?(filepath)
|
|
19
|
+
return true if (filepath == NULL_FILE_PATH)
|
|
20
|
+
return File.exist?(filepath)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def directory?(path)
|
|
24
|
+
return File.directory?(path)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def dirname(path)
|
|
28
|
+
return File.dirname(path)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def directory_listing(glob)
|
|
32
|
+
return Dir.glob(glob)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def rm_f(filepath, options={})
|
|
36
|
+
FileUtils.rm_f(filepath, options)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def rm_r(filepath, options={})
|
|
40
|
+
FileUtils.rm_r(filepath, options={})
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def cp(source, destination, options={})
|
|
44
|
+
FileUtils.cp(source, destination, options)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def compare(from, to)
|
|
48
|
+
return FileUtils.compare_file(from, to)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def open(filepath, flags)
|
|
52
|
+
File.open(filepath, flags) do |file|
|
|
53
|
+
yield(file)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def read(filepath)
|
|
58
|
+
return File.read(filepath)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def touch(filepath, options={})
|
|
62
|
+
FileUtils.touch(filepath, options)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def write(filepath, contents, flags='w')
|
|
66
|
+
File.open(filepath, flags) do |file|
|
|
67
|
+
file.write(contents)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def readlines(filepath)
|
|
72
|
+
return File.readlines(filepath)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def instantiate_file_list(files=[])
|
|
76
|
+
return FileList.new(files)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
require 'rubygems'
|
|
2
|
-
require 'rake' # for ext()
|
|
3
|
-
require 'fileutils'
|
|
4
|
-
require 'constants'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# :flags:
|
|
8
|
-
# :release:
|
|
9
|
-
# :compile:
|
|
10
|
-
# :*: # add '-foo' to compilation of all files not main.c
|
|
11
|
-
# - -foo
|
|
12
|
-
# :main: # add '-Wall' to compilation of main.c
|
|
13
|
-
# - -Wall
|
|
14
|
-
# :test:
|
|
15
|
-
# :link:
|
|
16
|
-
# :test_main: # add '--bar --baz' to linking of test_main.exe
|
|
17
|
-
# - --bar
|
|
18
|
-
# - --baz
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class Flaginator
|
|
22
|
-
|
|
23
|
-
constructor :configurator
|
|
24
|
-
|
|
25
|
-
def flag_down( operation, context, file )
|
|
26
|
-
# create configurator accessor method
|
|
27
|
-
accessor = ('flags_' + context.to_s).to_sym
|
|
28
|
-
|
|
29
|
-
# create simple filename key from whatever filename provided
|
|
30
|
-
file_key = File.basename( file ).ext('').to_sym
|
|
31
|
-
|
|
32
|
-
# if no entry in configuration for flags for this context, bail out
|
|
33
|
-
return [] if not @configurator.respond_to?( accessor )
|
|
34
|
-
|
|
35
|
-
# get flags sub hash associated with this context
|
|
36
|
-
flags = @configurator.send( accessor )
|
|
37
|
-
|
|
38
|
-
# if operation not represented in flags hash, bail out
|
|
39
|
-
return [] if not flags.include?( operation )
|
|
40
|
-
|
|
41
|
-
# redefine flags to sub hash associated with the operation
|
|
42
|
-
flags = flags[operation]
|
|
43
|
-
|
|
44
|
-
# if our file is in the flags hash, extract the array of flags
|
|
45
|
-
if (flags.include?( file_key )) then return flags[file_key]
|
|
46
|
-
# if our file isn't in the flags hash, but there is default for all other files, extract array of flags
|
|
47
|
-
elsif (flags.include?( :* )) then return flags[:*]
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# fall through: flags were specified but none applying to present file
|
|
51
|
-
return []
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
end
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'rake' # for ext()
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
require 'ceedling/constants'
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# :flags:
|
|
8
|
+
# :release:
|
|
9
|
+
# :compile:
|
|
10
|
+
# :*: # add '-foo' to compilation of all files not main.c
|
|
11
|
+
# - -foo
|
|
12
|
+
# :main: # add '-Wall' to compilation of main.c
|
|
13
|
+
# - -Wall
|
|
14
|
+
# :test:
|
|
15
|
+
# :link:
|
|
16
|
+
# :test_main: # add '--bar --baz' to linking of test_main.exe
|
|
17
|
+
# - --bar
|
|
18
|
+
# - --baz
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Flaginator
|
|
22
|
+
|
|
23
|
+
constructor :configurator
|
|
24
|
+
|
|
25
|
+
def flag_down( operation, context, file )
|
|
26
|
+
# create configurator accessor method
|
|
27
|
+
accessor = ('flags_' + context.to_s).to_sym
|
|
28
|
+
|
|
29
|
+
# create simple filename key from whatever filename provided
|
|
30
|
+
file_key = File.basename( file ).ext('').to_sym
|
|
31
|
+
|
|
32
|
+
# if no entry in configuration for flags for this context, bail out
|
|
33
|
+
return [] if not @configurator.respond_to?( accessor )
|
|
34
|
+
|
|
35
|
+
# get flags sub hash associated with this context
|
|
36
|
+
flags = @configurator.send( accessor )
|
|
37
|
+
|
|
38
|
+
# if operation not represented in flags hash, bail out
|
|
39
|
+
return [] if not flags.include?( operation )
|
|
40
|
+
|
|
41
|
+
# redefine flags to sub hash associated with the operation
|
|
42
|
+
flags = flags[operation]
|
|
43
|
+
|
|
44
|
+
# if our file is in the flags hash, extract the array of flags
|
|
45
|
+
if (flags.include?( file_key )) then return flags[file_key]
|
|
46
|
+
# if our file isn't in the flags hash, but there is default for all other files, extract array of flags
|
|
47
|
+
elsif (flags.include?( :* )) then return flags[:*]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# fall through: flags were specified but none applying to present file
|
|
51
|
+
return []
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
require 'constants'
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class Generator
|
|
5
|
-
|
|
6
|
-
constructor :configurator,
|
|
7
|
-
:generator_helper,
|
|
8
|
-
:preprocessinator,
|
|
9
|
-
:cmock_builder,
|
|
10
|
-
:generator_test_runner,
|
|
11
|
-
:generator_test_results,
|
|
12
|
-
:flaginator,
|
|
13
|
-
:test_includes_extractor,
|
|
14
|
-
:tool_executor,
|
|
15
|
-
:file_finder,
|
|
16
|
-
:file_path_utils,
|
|
17
|
-
:streaminator,
|
|
18
|
-
:plugin_manager,
|
|
19
|
-
:file_wrapper
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def generate_shallow_includes_list(context, file)
|
|
23
|
-
@preprocessinator.preprocess_shallow_includes(file)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def generate_preprocessed_file(context, file)
|
|
27
|
-
@streaminator.stdout_puts("Preprocessing #{File.basename(file)}...", Verbosity::NORMAL)
|
|
28
|
-
@preprocessinator.preprocess_file(file)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def generate_dependencies_file(tool, context, source, object, dependencies)
|
|
32
|
-
@streaminator.stdout_puts("Generating dependencies for #{File.basename(source)}...", Verbosity::NORMAL)
|
|
33
|
-
|
|
34
|
-
command =
|
|
35
|
-
@tool_executor.build_command_line(
|
|
36
|
-
tool,
|
|
37
|
-
source,
|
|
38
|
-
dependencies,
|
|
39
|
-
object)
|
|
40
|
-
|
|
41
|
-
@tool_executor.exec( command[:line], command[:options] )
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def generate_mock(context, header_filepath)
|
|
45
|
-
arg_hash = {:header_file => header_filepath, :context => context}
|
|
46
|
-
@plugin_manager.pre_mock_generate( arg_hash )
|
|
47
|
-
|
|
48
|
-
begin
|
|
49
|
-
@cmock_builder.cmock.setup_mocks( arg_hash[:header_file] )
|
|
50
|
-
rescue
|
|
51
|
-
raise
|
|
52
|
-
ensure
|
|
53
|
-
@plugin_manager.post_mock_generate( arg_hash )
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# test_filepath may be either preprocessed test file or original test file
|
|
58
|
-
def generate_test_runner(context, test_filepath, runner_filepath)
|
|
59
|
-
arg_hash = {:context => context, :test_file => test_filepath, :runner_file => runner_filepath}
|
|
60
|
-
@plugin_manager.pre_runner_generate(arg_hash)
|
|
61
|
-
|
|
62
|
-
# collect info we need
|
|
63
|
-
module_name = File.basename(arg_hash[:test_file])
|
|
64
|
-
test_cases = @generator_test_runner.find_test_cases( @file_finder.find_test_from_runner_path(runner_filepath) )
|
|
65
|
-
mock_list = @test_includes_extractor.lookup_raw_mock_list(arg_hash[:test_file])
|
|
66
|
-
|
|
67
|
-
@streaminator.stdout_puts("Generating runner for #{module_name}...", Verbosity::NORMAL)
|
|
68
|
-
|
|
69
|
-
# build runner file
|
|
70
|
-
begin
|
|
71
|
-
@generator_test_runner.generate(module_name, runner_filepath, test_cases, mock_list)
|
|
72
|
-
rescue
|
|
73
|
-
raise
|
|
74
|
-
ensure
|
|
75
|
-
@plugin_manager.post_runner_generate(arg_hash)
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def generate_object_file(tool, context, source, object, list='')
|
|
80
|
-
shell_result = {}
|
|
81
|
-
arg_hash = {:tool => tool, :context => context, :source => source, :object => object, :list => list}
|
|
82
|
-
@plugin_manager.pre_compile_execute(arg_hash)
|
|
83
|
-
|
|
84
|
-
@streaminator.stdout_puts("Compiling #{File.basename(arg_hash[:source])}...", Verbosity::NORMAL)
|
|
85
|
-
command =
|
|
86
|
-
@tool_executor.build_command_line( arg_hash[:tool],
|
|
87
|
-
arg_hash[:source],
|
|
88
|
-
arg_hash[:object],
|
|
89
|
-
arg_hash[:list],
|
|
90
|
-
@flaginator.flag_down( OPERATION_COMPILE_SYM, context, source ) )
|
|
91
|
-
|
|
92
|
-
begin
|
|
93
|
-
shell_result = @tool_executor.exec( command[:line], command[:options] )
|
|
94
|
-
rescue ShellExecutionException => ex
|
|
95
|
-
shell_result = ex.shell_result
|
|
96
|
-
raise ''
|
|
97
|
-
ensure
|
|
98
|
-
arg_hash[:shell_result] = shell_result
|
|
99
|
-
@plugin_manager.post_compile_execute(arg_hash)
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
def generate_executable_file(tool, context, objects, executable, map='')
|
|
104
|
-
shell_result = {}
|
|
105
|
-
arg_hash = {:tool => tool, :context => context, :objects => objects, :executable => executable, :map => map}
|
|
106
|
-
@plugin_manager.pre_link_execute(arg_hash)
|
|
107
|
-
|
|
108
|
-
@streaminator.stdout_puts("Linking #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
|
|
109
|
-
command =
|
|
110
|
-
@tool_executor.build_command_line( arg_hash[:tool],
|
|
111
|
-
arg_hash[:objects],
|
|
112
|
-
arg_hash[:executable],
|
|
113
|
-
arg_hash[:map],
|
|
114
|
-
@flaginator.flag_down( OPERATION_LINK_SYM, context, executable ) )
|
|
115
|
-
|
|
116
|
-
begin
|
|
117
|
-
shell_result = @tool_executor.exec( command[:line], command[:options] )
|
|
118
|
-
rescue ShellExecutionException => ex
|
|
119
|
-
notice = "\n" +
|
|
120
|
-
"NOTICE: If the linker reports missing symbols, the following may be to blame:\n" +
|
|
121
|
-
" 1. Test lacks #include statements corresponding to needed source files.\n" +
|
|
122
|
-
" 2. Project search paths do not contain source files corresponding to #include statements in the test.\n"
|
|
123
|
-
|
|
124
|
-
if (@configurator.project_use_mocks)
|
|
125
|
-
notice += " 3. Test does not #include needed mocks.\n\n"
|
|
126
|
-
else
|
|
127
|
-
notice += "\n"
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
@streaminator.stderr_puts(notice, Verbosity::COMPLAIN)
|
|
131
|
-
shell_result = ex.shell_result
|
|
132
|
-
raise ''
|
|
133
|
-
ensure
|
|
134
|
-
arg_hash[:shell_result] = shell_result
|
|
135
|
-
@plugin_manager.post_link_execute(arg_hash)
|
|
136
|
-
end
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def generate_test_results(tool, context, executable, result)
|
|
140
|
-
arg_hash = {:tool => tool, :context => context, :executable => executable, :result_file => result}
|
|
141
|
-
@plugin_manager.pre_test_fixture_execute(arg_hash)
|
|
142
|
-
|
|
143
|
-
@streaminator.stdout_puts("Running #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
|
|
144
|
-
|
|
145
|
-
# Unity's exit code is equivalent to the number of failed tests, so we tell @tool_executor not to fail out if there are failures
|
|
146
|
-
# so that we can run all tests and collect all results
|
|
147
|
-
command = @tool_executor.build_command_line(arg_hash[:tool], arg_hash[:executable])
|
|
148
|
-
command[:options][:boom] = false
|
|
149
|
-
shell_result = @tool_executor.exec( command[:line], command[:options] )
|
|
150
|
-
|
|
151
|
-
@generator_helper.test_results_error_handler(executable, shell_result)
|
|
152
|
-
|
|
153
|
-
processed = @generator_test_results.process_and_write_results( shell_result,
|
|
154
|
-
arg_hash[:result_file],
|
|
155
|
-
@file_finder.find_test_from_file_path(arg_hash[:executable]) )
|
|
156
|
-
|
|
157
|
-
arg_hash[:result_file] = processed[:result_file]
|
|
158
|
-
arg_hash[:results] = processed[:results]
|
|
159
|
-
arg_hash[:shell_result] = shell_result # for raw output display if no plugins for formatted display
|
|
160
|
-
|
|
161
|
-
@plugin_manager.post_test_fixture_execute(arg_hash)
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
end
|
|
1
|
+
require 'ceedling/constants'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Generator
|
|
5
|
+
|
|
6
|
+
constructor :configurator,
|
|
7
|
+
:generator_helper,
|
|
8
|
+
:preprocessinator,
|
|
9
|
+
:cmock_builder,
|
|
10
|
+
:generator_test_runner,
|
|
11
|
+
:generator_test_results,
|
|
12
|
+
:flaginator,
|
|
13
|
+
:test_includes_extractor,
|
|
14
|
+
:tool_executor,
|
|
15
|
+
:file_finder,
|
|
16
|
+
:file_path_utils,
|
|
17
|
+
:streaminator,
|
|
18
|
+
:plugin_manager,
|
|
19
|
+
:file_wrapper
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def generate_shallow_includes_list(context, file)
|
|
23
|
+
@preprocessinator.preprocess_shallow_includes(file)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def generate_preprocessed_file(context, file)
|
|
27
|
+
@streaminator.stdout_puts("Preprocessing #{File.basename(file)}...", Verbosity::NORMAL)
|
|
28
|
+
@preprocessinator.preprocess_file(file)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def generate_dependencies_file(tool, context, source, object, dependencies)
|
|
32
|
+
@streaminator.stdout_puts("Generating dependencies for #{File.basename(source)}...", Verbosity::NORMAL)
|
|
33
|
+
|
|
34
|
+
command =
|
|
35
|
+
@tool_executor.build_command_line(
|
|
36
|
+
tool,
|
|
37
|
+
source,
|
|
38
|
+
dependencies,
|
|
39
|
+
object)
|
|
40
|
+
|
|
41
|
+
@tool_executor.exec( command[:line], command[:options] )
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def generate_mock(context, header_filepath)
|
|
45
|
+
arg_hash = {:header_file => header_filepath, :context => context}
|
|
46
|
+
@plugin_manager.pre_mock_generate( arg_hash )
|
|
47
|
+
|
|
48
|
+
begin
|
|
49
|
+
@cmock_builder.cmock.setup_mocks( arg_hash[:header_file] )
|
|
50
|
+
rescue
|
|
51
|
+
raise
|
|
52
|
+
ensure
|
|
53
|
+
@plugin_manager.post_mock_generate( arg_hash )
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# test_filepath may be either preprocessed test file or original test file
|
|
58
|
+
def generate_test_runner(context, test_filepath, runner_filepath)
|
|
59
|
+
arg_hash = {:context => context, :test_file => test_filepath, :runner_file => runner_filepath}
|
|
60
|
+
@plugin_manager.pre_runner_generate(arg_hash)
|
|
61
|
+
|
|
62
|
+
# collect info we need
|
|
63
|
+
module_name = File.basename(arg_hash[:test_file])
|
|
64
|
+
test_cases = @generator_test_runner.find_test_cases( @file_finder.find_test_from_runner_path(runner_filepath) )
|
|
65
|
+
mock_list = @test_includes_extractor.lookup_raw_mock_list(arg_hash[:test_file])
|
|
66
|
+
|
|
67
|
+
@streaminator.stdout_puts("Generating runner for #{module_name}...", Verbosity::NORMAL)
|
|
68
|
+
|
|
69
|
+
# build runner file
|
|
70
|
+
begin
|
|
71
|
+
@generator_test_runner.generate(module_name, runner_filepath, test_cases, mock_list)
|
|
72
|
+
rescue
|
|
73
|
+
raise
|
|
74
|
+
ensure
|
|
75
|
+
@plugin_manager.post_runner_generate(arg_hash)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def generate_object_file(tool, context, source, object, list='')
|
|
80
|
+
shell_result = {}
|
|
81
|
+
arg_hash = {:tool => tool, :context => context, :source => source, :object => object, :list => list}
|
|
82
|
+
@plugin_manager.pre_compile_execute(arg_hash)
|
|
83
|
+
|
|
84
|
+
@streaminator.stdout_puts("Compiling #{File.basename(arg_hash[:source])}...", Verbosity::NORMAL)
|
|
85
|
+
command =
|
|
86
|
+
@tool_executor.build_command_line( arg_hash[:tool],
|
|
87
|
+
arg_hash[:source],
|
|
88
|
+
arg_hash[:object],
|
|
89
|
+
arg_hash[:list],
|
|
90
|
+
@flaginator.flag_down( OPERATION_COMPILE_SYM, context, source ) )
|
|
91
|
+
|
|
92
|
+
begin
|
|
93
|
+
shell_result = @tool_executor.exec( command[:line], command[:options] )
|
|
94
|
+
rescue ShellExecutionException => ex
|
|
95
|
+
shell_result = ex.shell_result
|
|
96
|
+
raise ''
|
|
97
|
+
ensure
|
|
98
|
+
arg_hash[:shell_result] = shell_result
|
|
99
|
+
@plugin_manager.post_compile_execute(arg_hash)
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def generate_executable_file(tool, context, objects, executable, map='')
|
|
104
|
+
shell_result = {}
|
|
105
|
+
arg_hash = {:tool => tool, :context => context, :objects => objects, :executable => executable, :map => map}
|
|
106
|
+
@plugin_manager.pre_link_execute(arg_hash)
|
|
107
|
+
|
|
108
|
+
@streaminator.stdout_puts("Linking #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
|
|
109
|
+
command =
|
|
110
|
+
@tool_executor.build_command_line( arg_hash[:tool],
|
|
111
|
+
arg_hash[:objects],
|
|
112
|
+
arg_hash[:executable],
|
|
113
|
+
arg_hash[:map],
|
|
114
|
+
@flaginator.flag_down( OPERATION_LINK_SYM, context, executable ) )
|
|
115
|
+
|
|
116
|
+
begin
|
|
117
|
+
shell_result = @tool_executor.exec( command[:line], command[:options] )
|
|
118
|
+
rescue ShellExecutionException => ex
|
|
119
|
+
notice = "\n" +
|
|
120
|
+
"NOTICE: If the linker reports missing symbols, the following may be to blame:\n" +
|
|
121
|
+
" 1. Test lacks #include statements corresponding to needed source files.\n" +
|
|
122
|
+
" 2. Project search paths do not contain source files corresponding to #include statements in the test.\n"
|
|
123
|
+
|
|
124
|
+
if (@configurator.project_use_mocks)
|
|
125
|
+
notice += " 3. Test does not #include needed mocks.\n\n"
|
|
126
|
+
else
|
|
127
|
+
notice += "\n"
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
@streaminator.stderr_puts(notice, Verbosity::COMPLAIN)
|
|
131
|
+
shell_result = ex.shell_result
|
|
132
|
+
raise ''
|
|
133
|
+
ensure
|
|
134
|
+
arg_hash[:shell_result] = shell_result
|
|
135
|
+
@plugin_manager.post_link_execute(arg_hash)
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def generate_test_results(tool, context, executable, result)
|
|
140
|
+
arg_hash = {:tool => tool, :context => context, :executable => executable, :result_file => result}
|
|
141
|
+
@plugin_manager.pre_test_fixture_execute(arg_hash)
|
|
142
|
+
|
|
143
|
+
@streaminator.stdout_puts("Running #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
|
|
144
|
+
|
|
145
|
+
# Unity's exit code is equivalent to the number of failed tests, so we tell @tool_executor not to fail out if there are failures
|
|
146
|
+
# so that we can run all tests and collect all results
|
|
147
|
+
command = @tool_executor.build_command_line(arg_hash[:tool], arg_hash[:executable])
|
|
148
|
+
command[:options][:boom] = false
|
|
149
|
+
shell_result = @tool_executor.exec( command[:line], command[:options] )
|
|
150
|
+
|
|
151
|
+
@generator_helper.test_results_error_handler(executable, shell_result)
|
|
152
|
+
|
|
153
|
+
processed = @generator_test_results.process_and_write_results( shell_result,
|
|
154
|
+
arg_hash[:result_file],
|
|
155
|
+
@file_finder.find_test_from_file_path(arg_hash[:executable]) )
|
|
156
|
+
|
|
157
|
+
arg_hash[:result_file] = processed[:result_file]
|
|
158
|
+
arg_hash[:results] = processed[:results]
|
|
159
|
+
arg_hash[:shell_result] = shell_result # for raw output display if no plugins for formatted display
|
|
160
|
+
|
|
161
|
+
@plugin_manager.post_test_fixture_execute(arg_hash)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
end
|