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,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
class CacheinatorHelper
|
|
3
|
-
|
|
4
|
-
constructor :file_wrapper, :yaml_wrapper
|
|
5
|
-
|
|
6
|
-
def diff_cached_config?(cached_filepath, hash)
|
|
7
|
-
return true if ( not @file_wrapper.exist?(cached_filepath) )
|
|
8
|
-
return true if ( (@file_wrapper.exist?(cached_filepath)) and (!(@yaml_wrapper.load(cached_filepath) == hash)) )
|
|
9
|
-
return false
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
end
|
|
1
|
+
|
|
2
|
+
class CacheinatorHelper
|
|
3
|
+
|
|
4
|
+
constructor :file_wrapper, :yaml_wrapper
|
|
5
|
+
|
|
6
|
+
def diff_cached_config?(cached_filepath, hash)
|
|
7
|
+
return true if ( not @file_wrapper.exist?(cached_filepath) )
|
|
8
|
+
return true if ( (@file_wrapper.exist?(cached_filepath)) and (!(@yaml_wrapper.load(cached_filepath) == hash)) )
|
|
9
|
+
return false
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
end
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
require 'cmock'
|
|
2
|
-
|
|
3
|
-
class CmockBuilder
|
|
4
|
-
|
|
5
|
-
attr_accessor :cmock
|
|
6
|
-
|
|
7
|
-
def setup
|
|
8
|
-
@cmock = nil
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def manufacture(cmock_config)
|
|
12
|
-
@cmock = CMock.new(cmock_config)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
end
|
|
1
|
+
require 'cmock'
|
|
2
|
+
|
|
3
|
+
class CmockBuilder
|
|
4
|
+
|
|
5
|
+
attr_accessor :cmock
|
|
6
|
+
|
|
7
|
+
def setup
|
|
8
|
+
@cmock = nil
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def manufacture(cmock_config)
|
|
12
|
+
@cmock = CMock.new(cmock_config)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
@@ -1,329 +1,333 @@
|
|
|
1
|
-
require 'defaults'
|
|
2
|
-
require 'constants'
|
|
3
|
-
require 'file_path_utils'
|
|
4
|
-
require 'deep_merge'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Configurator
|
|
9
|
-
|
|
10
|
-
attr_reader :project_config_hash, :script_plugins, :rake_plugins
|
|
11
|
-
attr_accessor :project_logging, :project_debug, :project_verbosity, :sanity_checks
|
|
12
|
-
|
|
13
|
-
constructor(:configurator_setup, :configurator_builder, :configurator_plugins, :cmock_builder, :yaml_wrapper, :system_wrapper) do
|
|
14
|
-
@project_logging = false
|
|
15
|
-
@project_debug = false
|
|
16
|
-
@project_verbosity = Verbosity::NORMAL
|
|
17
|
-
@sanity_checks = TestResultsSanityChecks::NORMAL
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def setup
|
|
21
|
-
# special copy of cmock config to provide to cmock for construction
|
|
22
|
-
@cmock_config_hash = {}
|
|
23
|
-
|
|
24
|
-
# note: project_config_hash is an instance variable so constants and accessors created
|
|
25
|
-
# in eval() statements in build() have something of proper scope and persistence to reference
|
|
26
|
-
@project_config_hash = {}
|
|
27
|
-
@project_config_hash_backup = {}
|
|
28
|
-
|
|
29
|
-
@script_plugins = []
|
|
30
|
-
@rake_plugins = []
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def replace_flattened_config(config)
|
|
35
|
-
@project_config_hash.merge!(config)
|
|
36
|
-
@configurator_setup.build_constants_and_accessors(@project_config_hash, binding())
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
def store_config
|
|
41
|
-
@project_config_hash_backup = @project_config_hash.clone
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def restore_config
|
|
46
|
-
@project_config_hash = @project_config_hash_backup
|
|
47
|
-
@configurator_setup.build_constants_and_accessors(@project_config_hash, binding())
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
def reset_defaults(config)
|
|
52
|
-
[:test_compiler,
|
|
53
|
-
:test_linker,
|
|
54
|
-
:test_fixture,
|
|
55
|
-
:test_includes_preprocessor,
|
|
56
|
-
:test_file_preprocessor,
|
|
57
|
-
:test_dependencies_generator,
|
|
58
|
-
:release_compiler,
|
|
59
|
-
:release_assembler,
|
|
60
|
-
:release_linker,
|
|
61
|
-
:release_dependencies_generator].each do |tool|
|
|
62
|
-
config[:tools].delete(tool) if (not (config[:tools][tool].nil?))
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
def populate_defaults(config)
|
|
68
|
-
new_config = DEFAULT_CEEDLING_CONFIG.deep_clone
|
|
69
|
-
new_config.deep_merge!(config)
|
|
70
|
-
config.replace(new_config)
|
|
71
|
-
|
|
72
|
-
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST )
|
|
73
|
-
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST_PREPROCESSORS ) if (config[:project][:use_test_preprocessor])
|
|
74
|
-
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST_DEPENDENCIES ) if (config[:project][:use_deep_dependencies])
|
|
75
|
-
|
|
76
|
-
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE ) if (config[:project][:release_build])
|
|
77
|
-
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE_ASSEMBLER ) if (config[:project][:release_build] and config[:release_build][:use_assembly])
|
|
78
|
-
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE_DEPENDENCIES ) if (config[:project][:release_build] and config[:project][:use_deep_dependencies])
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
def populate_cmock_defaults(config)
|
|
83
|
-
# cmock has its own internal defaults handling, but we need to set these specific values
|
|
84
|
-
# so they're present for the build environment to access;
|
|
85
|
-
# note: these need to end up in the hash given to initialize cmock for this to be successful
|
|
86
|
-
cmock = config[:cmock] || {}
|
|
87
|
-
|
|
88
|
-
# yes, we're duplicating the default mock_prefix in cmock, but it's because we need CMOCK_MOCK_PREFIX always available in Ceedling's environment
|
|
89
|
-
cmock[:mock_prefix] = 'Mock' if (cmock[:mock_prefix].nil?)
|
|
90
|
-
|
|
91
|
-
# just because strict ordering is the way to go
|
|
92
|
-
cmock[:enforce_strict_ordering] = true if (cmock[:enforce_strict_ordering].nil?)
|
|
93
|
-
|
|
94
|
-
cmock[:mock_path] = File.join(config[:project][:build_root], TESTS_BASE_PATH, 'mocks') if (cmock[:mock_path].nil?)
|
|
95
|
-
cmock[:verbosity] = @project_verbosity if (cmock[:verbosity].nil?)
|
|
96
|
-
|
|
97
|
-
cmock[:plugins] = [] if (cmock[:plugins].nil?)
|
|
98
|
-
cmock[:plugins].map! { |plugin| plugin.to_sym }
|
|
99
|
-
cmock[:plugins] << (:cexception) if (!cmock[:plugins].include?(:cexception) and (config[:project][:use_exceptions]))
|
|
100
|
-
cmock[:plugins].uniq!
|
|
101
|
-
|
|
102
|
-
cmock[:unity_helper] = false if (cmock[:unity_helper].nil?)
|
|
103
|
-
|
|
104
|
-
if (cmock[:unity_helper])
|
|
105
|
-
cmock[:includes] << File.basename(cmock[:unity_helper])
|
|
106
|
-
cmock[:includes].uniq!
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
@runner_config = cmock.merge(config[:test_runner] || {})
|
|
110
|
-
@cmock_builder.manufacture(cmock)
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
def get_runner_config
|
|
115
|
-
@runner_config
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
# grab tool names from yaml and insert into tool structures so available for error messages
|
|
120
|
-
# set up default values
|
|
121
|
-
def tools_setup(config)
|
|
122
|
-
config[:tools].each_key do |name|
|
|
123
|
-
tool = config[:tools][name]
|
|
124
|
-
|
|
125
|
-
# populate name if not given
|
|
126
|
-
tool[:name] = name.to_s if (tool[:name].nil?)
|
|
127
|
-
|
|
128
|
-
#
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
config.each_pair { |
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
paths
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
config.each_pair
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
blotter
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
#
|
|
296
|
-
@
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
paths.flatten
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
end
|
|
1
|
+
require 'ceedling/defaults'
|
|
2
|
+
require 'ceedling/constants'
|
|
3
|
+
require 'ceedling/file_path_utils'
|
|
4
|
+
require 'deep_merge'
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Configurator
|
|
9
|
+
|
|
10
|
+
attr_reader :project_config_hash, :script_plugins, :rake_plugins
|
|
11
|
+
attr_accessor :project_logging, :project_debug, :project_verbosity, :sanity_checks
|
|
12
|
+
|
|
13
|
+
constructor(:configurator_setup, :configurator_builder, :configurator_plugins, :cmock_builder, :yaml_wrapper, :system_wrapper) do
|
|
14
|
+
@project_logging = false
|
|
15
|
+
@project_debug = false
|
|
16
|
+
@project_verbosity = Verbosity::NORMAL
|
|
17
|
+
@sanity_checks = TestResultsSanityChecks::NORMAL
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def setup
|
|
21
|
+
# special copy of cmock config to provide to cmock for construction
|
|
22
|
+
@cmock_config_hash = {}
|
|
23
|
+
|
|
24
|
+
# note: project_config_hash is an instance variable so constants and accessors created
|
|
25
|
+
# in eval() statements in build() have something of proper scope and persistence to reference
|
|
26
|
+
@project_config_hash = {}
|
|
27
|
+
@project_config_hash_backup = {}
|
|
28
|
+
|
|
29
|
+
@script_plugins = []
|
|
30
|
+
@rake_plugins = []
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def replace_flattened_config(config)
|
|
35
|
+
@project_config_hash.merge!(config)
|
|
36
|
+
@configurator_setup.build_constants_and_accessors(@project_config_hash, binding())
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def store_config
|
|
41
|
+
@project_config_hash_backup = @project_config_hash.clone
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def restore_config
|
|
46
|
+
@project_config_hash = @project_config_hash_backup
|
|
47
|
+
@configurator_setup.build_constants_and_accessors(@project_config_hash, binding())
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def reset_defaults(config)
|
|
52
|
+
[:test_compiler,
|
|
53
|
+
:test_linker,
|
|
54
|
+
:test_fixture,
|
|
55
|
+
:test_includes_preprocessor,
|
|
56
|
+
:test_file_preprocessor,
|
|
57
|
+
:test_dependencies_generator,
|
|
58
|
+
:release_compiler,
|
|
59
|
+
:release_assembler,
|
|
60
|
+
:release_linker,
|
|
61
|
+
:release_dependencies_generator].each do |tool|
|
|
62
|
+
config[:tools].delete(tool) if (not (config[:tools][tool].nil?))
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def populate_defaults(config)
|
|
68
|
+
new_config = DEFAULT_CEEDLING_CONFIG.deep_clone
|
|
69
|
+
new_config.deep_merge!(config)
|
|
70
|
+
config.replace(new_config)
|
|
71
|
+
|
|
72
|
+
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST )
|
|
73
|
+
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST_PREPROCESSORS ) if (config[:project][:use_test_preprocessor])
|
|
74
|
+
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST_DEPENDENCIES ) if (config[:project][:use_deep_dependencies])
|
|
75
|
+
|
|
76
|
+
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE ) if (config[:project][:release_build])
|
|
77
|
+
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE_ASSEMBLER ) if (config[:project][:release_build] and config[:release_build][:use_assembly])
|
|
78
|
+
@configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE_DEPENDENCIES ) if (config[:project][:release_build] and config[:project][:use_deep_dependencies])
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def populate_cmock_defaults(config)
|
|
83
|
+
# cmock has its own internal defaults handling, but we need to set these specific values
|
|
84
|
+
# so they're present for the build environment to access;
|
|
85
|
+
# note: these need to end up in the hash given to initialize cmock for this to be successful
|
|
86
|
+
cmock = config[:cmock] || {}
|
|
87
|
+
|
|
88
|
+
# yes, we're duplicating the default mock_prefix in cmock, but it's because we need CMOCK_MOCK_PREFIX always available in Ceedling's environment
|
|
89
|
+
cmock[:mock_prefix] = 'Mock' if (cmock[:mock_prefix].nil?)
|
|
90
|
+
|
|
91
|
+
# just because strict ordering is the way to go
|
|
92
|
+
cmock[:enforce_strict_ordering] = true if (cmock[:enforce_strict_ordering].nil?)
|
|
93
|
+
|
|
94
|
+
cmock[:mock_path] = File.join(config[:project][:build_root], TESTS_BASE_PATH, 'mocks') if (cmock[:mock_path].nil?)
|
|
95
|
+
cmock[:verbosity] = @project_verbosity if (cmock[:verbosity].nil?)
|
|
96
|
+
|
|
97
|
+
cmock[:plugins] = [] if (cmock[:plugins].nil?)
|
|
98
|
+
cmock[:plugins].map! { |plugin| plugin.to_sym }
|
|
99
|
+
cmock[:plugins] << (:cexception) if (!cmock[:plugins].include?(:cexception) and (config[:project][:use_exceptions]))
|
|
100
|
+
cmock[:plugins].uniq!
|
|
101
|
+
|
|
102
|
+
cmock[:unity_helper] = false if (cmock[:unity_helper].nil?)
|
|
103
|
+
|
|
104
|
+
if (cmock[:unity_helper])
|
|
105
|
+
cmock[:includes] << File.basename(cmock[:unity_helper])
|
|
106
|
+
cmock[:includes].uniq!
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
@runner_config = cmock.merge(config[:test_runner] || {})
|
|
110
|
+
@cmock_builder.manufacture(cmock)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def get_runner_config
|
|
115
|
+
@runner_config
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
# grab tool names from yaml and insert into tool structures so available for error messages
|
|
120
|
+
# set up default values
|
|
121
|
+
def tools_setup(config)
|
|
122
|
+
config[:tools].each_key do |name|
|
|
123
|
+
tool = config[:tools][name]
|
|
124
|
+
|
|
125
|
+
# populate name if not given
|
|
126
|
+
tool[:name] = name.to_s if (tool[:name].nil?)
|
|
127
|
+
|
|
128
|
+
# handle inline ruby string substitution in executable
|
|
129
|
+
if (tool[:executable] =~ RUBY_STRING_REPLACEMENT_PATTERN)
|
|
130
|
+
tool[:executable].replace(@system_wrapper.module_eval(tool[:executable]))
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# populate stderr redirect option
|
|
134
|
+
tool[:stderr_redirect] = StdErrRedirect::NONE if (tool[:stderr_redirect].nil?)
|
|
135
|
+
|
|
136
|
+
# populate background execution option
|
|
137
|
+
tool[:background_exec] = BackgroundExec::NONE if (tool[:background_exec].nil?)
|
|
138
|
+
|
|
139
|
+
# populate optional option to control verification of executable in search paths
|
|
140
|
+
tool[:optional] = false if (tool[:optional].nil?)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def tools_supplement_arguments(config)
|
|
146
|
+
tools_name_prefix = 'tools_'
|
|
147
|
+
config[:tools].each_key do |name|
|
|
148
|
+
tool = @project_config_hash[(tools_name_prefix + name.to_s).to_sym]
|
|
149
|
+
|
|
150
|
+
# smoosh in extra arguments if specified at top-level of config (useful for plugins & default gcc tools)
|
|
151
|
+
# arguments are squirted in at _end_ of list
|
|
152
|
+
top_level_tool = (tools_name_prefix + name.to_s).to_sym
|
|
153
|
+
if (not config[top_level_tool].nil?)
|
|
154
|
+
# adding and flattening is not a good idea: might over-flatten if there's array nesting in tool args
|
|
155
|
+
tool[:arguments].concat config[top_level_tool][:arguments]
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
def find_and_merge_plugins(config)
|
|
162
|
+
# plugins must be loaded before generic path evaluation & magic that happen later;
|
|
163
|
+
# perform path magic here as discrete step
|
|
164
|
+
config[:plugins][:load_paths].each do |path|
|
|
165
|
+
path.replace(@system_wrapper.module_eval(path)) if (path =~ RUBY_STRING_REPLACEMENT_PATTERN)
|
|
166
|
+
FilePathUtils::standardize(path)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
paths_hash = @configurator_plugins.add_load_paths(config)
|
|
170
|
+
|
|
171
|
+
@rake_plugins = @configurator_plugins.find_rake_plugins(config)
|
|
172
|
+
@script_plugins = @configurator_plugins.find_script_plugins(config)
|
|
173
|
+
config_plugins = @configurator_plugins.find_config_plugins(config)
|
|
174
|
+
plugin_defaults = @configurator_plugins.find_plugin_defaults(config)
|
|
175
|
+
|
|
176
|
+
config_plugins.each do |plugin|
|
|
177
|
+
config.deep_merge( @yaml_wrapper.load(plugin) )
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
plugin_defaults.each do |defaults|
|
|
181
|
+
@configurator_builder.populate_defaults( config, @yaml_wrapper.load(defaults) )
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
# special plugin setting for results printing
|
|
185
|
+
config[:plugins][:display_raw_test_results] = true if (config[:plugins][:display_raw_test_results].nil?)
|
|
186
|
+
|
|
187
|
+
paths_hash.each_pair { |name, path| config[:plugins][name] = path }
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def eval_environment_variables(config)
|
|
192
|
+
config[:environment].each do |hash|
|
|
193
|
+
key = hash.keys[0]
|
|
194
|
+
value = hash[key]
|
|
195
|
+
items = []
|
|
196
|
+
|
|
197
|
+
interstitial = ((key == :path) ? File::PATH_SEPARATOR : '')
|
|
198
|
+
items = ((value.class == Array) ? hash[key] : [value])
|
|
199
|
+
|
|
200
|
+
items.each { |item| item.replace( @system_wrapper.module_eval( item ) ) if (item =~ RUBY_STRING_REPLACEMENT_PATTERN) }
|
|
201
|
+
hash[key] = items.join( interstitial )
|
|
202
|
+
|
|
203
|
+
@system_wrapper.env_set( key.to_s.upcase, hash[key] )
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
def eval_paths(config)
|
|
209
|
+
# [:plugins]:[load_paths] already handled
|
|
210
|
+
|
|
211
|
+
paths = [ # individual paths that don't follow convention processed below
|
|
212
|
+
config[:project][:build_root],
|
|
213
|
+
config[:release_build][:artifacts]]
|
|
214
|
+
|
|
215
|
+
eval_path_list( paths )
|
|
216
|
+
|
|
217
|
+
config[:paths].each_pair { |collection, paths| eval_path_list( paths ) }
|
|
218
|
+
|
|
219
|
+
config[:files].each_pair { |collection, files| eval_path_list( files ) }
|
|
220
|
+
|
|
221
|
+
# all other paths at secondary hash key level processed by convention:
|
|
222
|
+
# ex. [:toplevel][:foo_path] & [:toplevel][:bar_paths] are evaluated
|
|
223
|
+
config.each_pair { |parent, child| eval_path_list( collect_path_list( child ) ) }
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
def standardize_paths(config)
|
|
228
|
+
# [:plugins]:[load_paths] already handled
|
|
229
|
+
|
|
230
|
+
paths = [ # individual paths that don't follow convention processed below
|
|
231
|
+
config[:project][:build_root],
|
|
232
|
+
config[:release_build][:artifacts]] # cmock path in case it was explicitly set in config
|
|
233
|
+
|
|
234
|
+
paths.flatten.each { |path| FilePathUtils::standardize( path ) }
|
|
235
|
+
|
|
236
|
+
config[:paths].each_pair do |collection, paths|
|
|
237
|
+
# ensure that list is an array (i.e. handle case of list being a single string,
|
|
238
|
+
# or a multidimensional array)
|
|
239
|
+
config[:paths][collection] = [paths].flatten.map{|path| FilePathUtils::standardize( path )}
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
config[:files].each_pair { |collection, files| files.each{ |path| FilePathUtils::standardize( path ) } }
|
|
243
|
+
|
|
244
|
+
config[:tools].each_pair { |tool, config| FilePathUtils::standardize( config[:executable] ) }
|
|
245
|
+
|
|
246
|
+
# all other paths at secondary hash key level processed by convention:
|
|
247
|
+
# ex. [:toplevel][:foo_path] & [:toplevel][:bar_paths] are standardized
|
|
248
|
+
config.each_pair do |parent, child|
|
|
249
|
+
collect_path_list( child ).each { |path| FilePathUtils::standardize( path ) }
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def validate(config)
|
|
255
|
+
# collect felonies and go straight to jail
|
|
256
|
+
raise if (not @configurator_setup.validate_required_sections( config ))
|
|
257
|
+
|
|
258
|
+
# collect all misdemeanors, everybody on probation
|
|
259
|
+
blotter = []
|
|
260
|
+
blotter << @configurator_setup.validate_required_section_values( config )
|
|
261
|
+
blotter << @configurator_setup.validate_paths( config )
|
|
262
|
+
blotter << @configurator_setup.validate_tools( config )
|
|
263
|
+
blotter << @configurator_setup.validate_plugins( config )
|
|
264
|
+
|
|
265
|
+
raise if (blotter.include?( false ))
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
# create constants and accessors (attached to this object) from given hash
|
|
270
|
+
def build(config, *keys)
|
|
271
|
+
# create flattened & expanded configuration hash
|
|
272
|
+
built_config = @configurator_setup.build_project_config( config, @configurator_builder.flattenify( config ) )
|
|
273
|
+
|
|
274
|
+
@project_config_hash = built_config.clone
|
|
275
|
+
store_config()
|
|
276
|
+
|
|
277
|
+
@configurator_setup.build_constants_and_accessors(built_config, binding())
|
|
278
|
+
|
|
279
|
+
# top-level keys disappear when we flatten, so create global constants & accessors to any specified keys
|
|
280
|
+
keys.each do |key|
|
|
281
|
+
hash = { key => config[key] }
|
|
282
|
+
@configurator_setup.build_constants_and_accessors(hash, binding())
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
# add to constants and accessors as post build step
|
|
288
|
+
def build_supplement(config_base, config_more)
|
|
289
|
+
# merge in our post-build additions to base configuration hash
|
|
290
|
+
config_base.deep_merge!( config_more )
|
|
291
|
+
|
|
292
|
+
# flatten our addition hash
|
|
293
|
+
config_more_flattened = @configurator_builder.flattenify( config_more )
|
|
294
|
+
|
|
295
|
+
# merge our flattened hash with built hash from previous build
|
|
296
|
+
@project_config_hash.deep_merge!( config_more_flattened )
|
|
297
|
+
store_config()
|
|
298
|
+
|
|
299
|
+
# create more constants and accessors
|
|
300
|
+
@configurator_setup.build_constants_and_accessors(config_more_flattened, binding())
|
|
301
|
+
|
|
302
|
+
# recreate constants & update accessors with new merged, base values
|
|
303
|
+
config_more.keys.each do |key|
|
|
304
|
+
hash = { key => config_base[key] }
|
|
305
|
+
@configurator_setup.build_constants_and_accessors(hash, binding())
|
|
306
|
+
end
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
def insert_rake_plugins(plugins)
|
|
311
|
+
plugins.each do |plugin|
|
|
312
|
+
@project_config_hash[:project_rakefile_component_files] << plugin
|
|
313
|
+
end
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
### private ###
|
|
317
|
+
|
|
318
|
+
private
|
|
319
|
+
|
|
320
|
+
def collect_path_list( container )
|
|
321
|
+
paths = []
|
|
322
|
+
container.each_key { |key| paths << container[key] if (key.to_s =~ /_path(s)?$/) } if (container.class == Hash)
|
|
323
|
+
return paths.flatten
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
def eval_path_list( paths )
|
|
327
|
+
paths.flatten.each do |path|
|
|
328
|
+
path.replace( @system_wrapper.module_eval( path ) ) if (path =~ RUBY_STRING_REPLACEMENT_PATTERN)
|
|
329
|
+
end
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
end
|