ceedling 0.12.2 → 0.13.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -14
- data/.gitmodules +9 -0
- data/.rspec +1 -0
- data/Gemfile +10 -2
- data/README.md +97 -67
- data/{new_project_template → assets}/project.yml +0 -0
- data/{new_project_template → assets}/rakefile.rb +0 -0
- data/bin/ceedling +77 -44
- data/ceedling.gemspec +18 -5
- data/config/test_environment.rb +12 -0
- data/docs/CeedlingLogo.png +0 -0
- data/docs/CeedlingPacket.md +1934 -0
- data/docs/CeedlingPacket.odt +0 -0
- data/docs/CeedlingPacket.pdf +0 -0
- data/examples/temp_sensor/project.yml +71 -74
- data/examples/temp_sensor/rakefile.rb +3 -5
- data/examples/temp_sensor/src/AdcConductor.h +2 -0
- data/examples/temp_sensor/src/TemperatureCalculator.h +2 -0
- data/examples/temp_sensor/src/Types.h +0 -13
- data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +2 -0
- data/examples/temp_sensor/src/UsartHardware.c +0 -12
- data/examples/temp_sensor/src/UsartHardware.h +0 -1
- data/examples/temp_sensor/test/{test_AdcConductor.c → TestAdcConductor.c} +0 -0
- data/examples/temp_sensor/test/{test_AdcHardware.c → TestAdcHardware.c} +0 -0
- data/examples/temp_sensor/test/{test_AdcModel.c → TestAdcModel.c} +0 -0
- data/examples/temp_sensor/test/{test_Executor.c → TestExecutor.c} +0 -0
- data/examples/temp_sensor/test/{test_Main.c → TestMain.c} +0 -0
- data/examples/temp_sensor/test/{test_Model.c → TestModel.c} +0 -0
- data/examples/temp_sensor/test/{test_TaskScheduler.c → TestTaskScheduler.c} +0 -0
- data/examples/temp_sensor/test/{test_TemperatureCalculator.c → TestTemperatureCalculator.c} +0 -0
- data/examples/temp_sensor/test/{test_TemperatureFilter.c → TestTemperatureFilter.c} +0 -2
- data/examples/temp_sensor/test/{test_TimerConductor.c → TestTimerConductor.c} +0 -0
- data/examples/temp_sensor/test/{test_TimerHardware.c → TestTimerHardware.c} +0 -0
- data/examples/temp_sensor/test/{test_TimerModel.c → TestTimerModel.c} +0 -0
- data/examples/temp_sensor/test/{test_UsartBaudRateRegisterCalculator.c → TestUsartBaudRateRegisterCalculator.c} +0 -0
- data/examples/temp_sensor/test/{test_UsartConductor.c → TestUsartConductor.c} +0 -0
- data/examples/temp_sensor/test/{test_UsartHardware.c → TestUsartHardware.c} +0 -20
- data/examples/temp_sensor/test/{test_UsartModel.c → TestUsartModel.c} +0 -0
- data/examples/temp_sensor/test/support/UnityHelper.c +7 -5
- data/examples/temp_sensor/test/support/UnityHelper.h +5 -5
- data/{new_project_template/vendor/ceedling/lib → lib}/build_invoker_utils.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/cacheinator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/cacheinator_helper.rb +0 -0
- data/lib/ceedling.rb +16 -4
- data/lib/ceedling/version.rb +4 -4
- data/lib/ceedling/version.rb.erb +1 -1
- data/{new_project_template/vendor/ceedling/lib → lib}/cmock_builder.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/configurator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/configurator_builder.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/configurator_plugins.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/configurator_setup.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/configurator_validator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/constants.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/defaults.rb +2 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/dependinator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/erb_wrapper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/file_finder.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/file_finder_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/file_path_utils.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/file_system_utils.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/file_system_wrapper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/file_wrapper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/flaginator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/generator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/generator_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/generator_test_results.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/generator_test_results_sanity_checker.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/generator_test_runner.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/loginator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/makefile.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/objects.yml +0 -2
- data/lib/par_map.rb +19 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/plugin.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/plugin_builder.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/plugin_manager.rb +20 -8
- data/{new_project_template/vendor/ceedling/lib → lib}/plugin_manager_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/plugin_reportinator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/plugin_reportinator_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/preprocessinator.rb +0 -0
- data/lib/preprocessinator_extractor.rb +30 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/preprocessinator_file_handler.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/preprocessinator_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/preprocessinator_includes_handler.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/project_config_manager.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/project_file_loader.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rake_utils.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rake_wrapper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rakefile.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/release_invoker.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/release_invoker_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/reportinator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rules_cmock.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rules_preprocess.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rules_release.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rules_release_deep_dependencies.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rules_tests.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/rules_tests_deep_dependencies.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/setupinator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/stream_wrapper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/streaminator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/streaminator_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/system_utils.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/system_wrapper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/task_invoker.rb +7 -3
- data/{new_project_template/vendor/ceedling/lib → lib}/tasks_base.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/tasks_filesystem.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/tasks_release.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/tasks_release_deep_dependencies.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/tasks_tests.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/tasks_tests_deep_dependencies.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/tasks_vendor.rake +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/test_includes_extractor.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/test_invoker.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/test_invoker_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/tool_executor.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/tool_executor_helper.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/verbosinator.rb +0 -0
- data/{new_project_template/vendor/ceedling/lib → lib}/yaml_wrapper.rb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/bullseye/bullseye.rake +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/bullseye/bullseye.rb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/bullseye/defaults.yml +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/bullseye/readme.txt +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/bullseye/template.erb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/gcov/defaults.yml +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/gcov/gcov.rake +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/gcov/gcov.rb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/gcov/readme.txt +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/gcov/template.erb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/module_generator/config/module_generator.yml +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/module_generator/lib/module_generator.rb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/module_generator/module_generator.rake +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/stdout_ide_tests_report/config/stdout_ide_tests_report.yml +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/stdout_ide_tests_report/lib/stdout_ide_tests_report.rb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/stdout_pretty_tests_report/assets/template.erb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/stdout_pretty_tests_report/config/stdout_pretty_tests_report.yml +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/stdout_pretty_tests_report/lib/stdout_pretty_tests_report.rb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/warnings_report/warnings_report.rb +0 -0
- data/{new_project_template/vendor/ceedling/plugins → plugins}/xml_tests_report/xml_tests_report.rb +0 -0
- data/rakefile.rb +14 -0
- data/release/build.info +2 -0
- data/{new_project_template/vendor/ceedling/release → release}/version.info +0 -0
- data/spec/configurator_builder_spec.rb +7 -0
- data/spec/configurator_helper_spec.rb +5 -0
- data/spec/configurator_spec.rb +10 -0
- data/spec/par_map_spec.rb +57 -0
- data/spec/preprocessinator_extractor_spec.rb +46 -0
- data/spec/spec_helper.rb +46 -0
- data/spec/uncatagorized_specs_spec.rb +8 -0
- data/test_graveyard/integration/paths.yml +17 -0
- data/test_graveyard/integration/paths_test.rb +80 -0
- data/test_graveyard/integration/rake_rules_aux_dependencies_test.rb +75 -0
- data/test_graveyard/integration/rake_rules_cmock_test.rb +74 -0
- data/test_graveyard/integration/rake_rules_preprocess_test.rb +178 -0
- data/test_graveyard/integration/rake_rules_test.rb +268 -0
- data/test_graveyard/integration/rake_tasks_test.rb +103 -0
- data/test_graveyard/integration_test_helper.rb +34 -0
- data/test_graveyard/rakefile_rules.rb +10 -0
- data/test_graveyard/rakefile_rules_aux_dependencies.rb +10 -0
- data/test_graveyard/rakefile_rules_cmock.rb +10 -0
- data/test_graveyard/rakefile_rules_preprocess.rb +10 -0
- data/test_graveyard/rakefile_tasks.rb +10 -0
- data/test_graveyard/system/file_system_dependencies.yml +20 -0
- data/test_graveyard/system/file_system_kitchen_sink.yml +20 -0
- data/test_graveyard/system/file_system_mocks.yml +20 -0
- data/test_graveyard/system/file_system_preprocess.yml +20 -0
- data/test_graveyard/system/file_system_simple.yml +20 -0
- data/test_graveyard/system/file_system_test.rb +78 -0
- data/test_graveyard/system/mocks/include/a_file.h +2 -0
- data/test_graveyard/system/mocks/include/other_stuff.h +2 -0
- data/test_graveyard/system/mocks/include/stuff.h +3 -0
- data/test_graveyard/system/mocks/source/a_file.c +9 -0
- data/test_graveyard/system/mocks/test/test_a_file.c +41 -0
- data/test_graveyard/system/mocks/test/test_no_file.c +14 -0
- data/test_graveyard/system/project_mocks.yml +43 -0
- data/test_graveyard/system/project_mocks_test.rb +38 -0
- data/test_graveyard/system/project_simple.yml +36 -0
- data/test_graveyard/system/project_simple_test.rb +39 -0
- data/test_graveyard/system/rule_mocks_test.rb +44 -0
- data/test_graveyard/system/rule_runners_test.rb +44 -0
- data/test_graveyard/system/simple/include/other_stuff.h +2 -0
- data/test_graveyard/system/simple/include/stuff.h +3 -0
- data/test_graveyard/system/simple/source/other_stuff.c +6 -0
- data/test_graveyard/system/simple/source/stuff.c +7 -0
- data/test_graveyard/system/simple/test/test_other_stuff.c +30 -0
- data/test_graveyard/system/simple/test/test_stuff.c +51 -0
- data/test_graveyard/system_test_helper.rb +73 -0
- data/test_graveyard/test_helper.rb +93 -0
- data/test_graveyard/unit/busted/configurator_builder_test.rb +571 -0
- data/test_graveyard/unit/busted/configurator_helper_test.rb +234 -0
- data/test_graveyard/unit/busted/configurator_test.rb +232 -0
- data/test_graveyard/unit/busted/configurator_validator_test.rb +169 -0
- data/test_graveyard/unit/busted/deep_merge_fix_test.rb +55 -0
- data/test_graveyard/unit/busted/dependinator_test.rb +129 -0
- data/test_graveyard/unit/busted/file_finder_helper_test.rb +45 -0
- data/test_graveyard/unit/busted/file_finder_test.rb +114 -0
- data/test_graveyard/unit/busted/file_path_utils_test.rb +97 -0
- data/test_graveyard/unit/busted/file_system_utils_test.rb +21 -0
- data/test_graveyard/unit/busted/generator_test.rb +187 -0
- data/test_graveyard/unit/busted/generator_test_results_test.rb +129 -0
- data/test_graveyard/unit/busted/generator_test_runner_test.rb +478 -0
- data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +38 -0
- data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +156 -0
- data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +93 -0
- data/test_graveyard/unit/busted/preprocessinator_test.rb +57 -0
- data/test_graveyard/unit/busted/project_file_loader_test.rb +142 -0
- data/test_graveyard/unit/busted/setupinator_test.rb +45 -0
- data/test_graveyard/unit/busted/streaminator_test.rb +49 -0
- data/test_graveyard/unit/busted/task_invoker_test.rb +69 -0
- data/test_graveyard/unit/busted/test_includes_extractor_test.rb +111 -0
- data/test_graveyard/unit/busted/test_invoker_helper_test.rb +62 -0
- data/test_graveyard/unit/busted/test_invoker_test.rb +47 -0
- data/test_graveyard/unit/busted/tool_executor_helper_test.rb +100 -0
- data/test_graveyard/unit/busted/tool_executor_test.rb +351 -0
- data/test_graveyard/unit/busted/verbosinator_test.rb +65 -0
- data/test_graveyard/unit/preprocessinator_extractor_test.rb +731 -0
- data/test_graveyard/unit_test_helper.rb +16 -0
- data/vendor/behaviors/Manifest.txt +9 -0
- data/vendor/behaviors/Rakefile +19 -0
- data/vendor/behaviors/lib/behaviors.rb +76 -0
- data/vendor/behaviors/lib/behaviors/reporttask.rb +158 -0
- data/vendor/behaviors/test/behaviors_tasks_test.rb +73 -0
- data/vendor/behaviors/test/behaviors_test.rb +50 -0
- data/vendor/behaviors/test/tasks_test/Rakefile +19 -0
- data/vendor/behaviors/test/tasks_test/lib/user.rb +2 -0
- data/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/c_exception/lib/CException.c +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/c_exception/lib/CException.h +1 -1
- data/vendor/c_exception/release/build.info +2 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/c_exception/release/version.info +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/config/production_environment.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/config/test_environment.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_config.rb +3 -3
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_file_writer.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_generator.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_generator_plugin_array.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_generator_plugin_callback.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_generator_plugin_cexception.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_generator_plugin_expect.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_generator_plugin_ignore.rb +14 -4
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_generator_utils.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_header_parser.rb +9 -5
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_plugin_manager.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/lib/cmock_unityhelper_parser.rb +75 -74
- data/vendor/cmock/release/build.info +2 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/release/version.info +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/src/cmock.c +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/cmock/src/cmock.h +0 -0
- data/vendor/constructor/History.rdoc +19 -0
- data/vendor/constructor/README.rdoc +72 -0
- data/vendor/constructor/Rakefile +33 -0
- data/vendor/constructor/homepage/Notes.txt +27 -0
- data/vendor/constructor/homepage/Rakefile +15 -0
- data/vendor/constructor/homepage/index.erb +27 -0
- data/vendor/constructor/homepage/index.html +36 -0
- data/vendor/constructor/homepage/page_header.graffle +0 -0
- data/vendor/constructor/homepage/page_header.html +9 -0
- data/vendor/constructor/homepage/page_header.png +0 -0
- data/vendor/constructor/homepage/sample_code.png +0 -0
- data/vendor/constructor/homepage/sample_code.rb +12 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/constructor/lib/constructor.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/constructor/lib/constructor_struct.rb +0 -0
- data/vendor/constructor/specs/constructor_spec.rb +407 -0
- data/vendor/constructor/specs/constructor_struct_spec.rb +84 -0
- data/vendor/deep_merge/MIT-LICENSE +20 -0
- data/vendor/deep_merge/README +94 -0
- data/vendor/deep_merge/Rakefile +28 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/deep_merge/lib/deep_merge.rb +0 -0
- data/vendor/deep_merge/pkg/deep_merge-0.1.0.gem +0 -0
- data/vendor/deep_merge/test/test_deep_merge.rb +553 -0
- data/vendor/diy/History.txt +28 -0
- data/vendor/diy/README.rdoc +233 -0
- data/vendor/diy/Rakefile +33 -0
- data/vendor/diy/TODO.txt +9 -0
- data/vendor/diy/diy.gemspec +131 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/diy/lib/diy.rb +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/diy/lib/diy/factory.rb +0 -0
- data/vendor/diy/sample_code/car.rb +7 -0
- data/vendor/diy/sample_code/chassis.rb +5 -0
- data/vendor/diy/sample_code/diy_example.rb +26 -0
- data/vendor/diy/sample_code/engine.rb +5 -0
- data/vendor/diy/sample_code/objects.yml +10 -0
- data/vendor/diy/test/constructor.rb +119 -0
- data/vendor/diy/test/diy_test.rb +608 -0
- data/vendor/diy/test/factory_test.rb +79 -0
- data/vendor/diy/test/files/broken_construction.yml +7 -0
- data/vendor/diy/test/files/cat/cat.rb +3 -0
- data/vendor/diy/test/files/cat/extra_conflict.yml +5 -0
- data/vendor/diy/test/files/cat/heritage.rb +2 -0
- data/vendor/diy/test/files/cat/needs_input.yml +3 -0
- data/vendor/diy/test/files/cat/the_cat_lineage.rb +1 -0
- data/vendor/diy/test/files/dog/dog_model.rb +3 -0
- data/vendor/diy/test/files/dog/dog_presenter.rb +3 -0
- data/vendor/diy/test/files/dog/dog_view.rb +2 -0
- data/vendor/diy/test/files/dog/file_resolver.rb +2 -0
- data/vendor/diy/test/files/dog/other_thing.rb +2 -0
- data/vendor/diy/test/files/dog/simple.yml +11 -0
- data/vendor/diy/test/files/donkey/foo.rb +8 -0
- data/vendor/diy/test/files/donkey/foo/bar/qux.rb +7 -0
- data/vendor/diy/test/files/factory/beef.rb +5 -0
- data/vendor/diy/test/files/factory/dog.rb +6 -0
- data/vendor/diy/test/files/factory/factory.yml +19 -0
- data/vendor/diy/test/files/factory/farm/llama.rb +7 -0
- data/vendor/diy/test/files/factory/farm/pork.rb +7 -0
- data/vendor/diy/test/files/factory/kitten.rb +13 -0
- data/vendor/diy/test/files/fud/objects.yml +13 -0
- data/vendor/diy/test/files/fud/toy.rb +14 -0
- data/vendor/diy/test/files/functions/attached_things_builder.rb +2 -0
- data/vendor/diy/test/files/functions/invalid_method.yml +5 -0
- data/vendor/diy/test/files/functions/method_extractor.rb +3 -0
- data/vendor/diy/test/files/functions/nonsingleton_objects.yml +6 -0
- data/vendor/diy/test/files/functions/objects.yml +22 -0
- data/vendor/diy/test/files/functions/thing.rb +3 -0
- data/vendor/diy/test/files/functions/thing_builder.rb +25 -0
- data/vendor/diy/test/files/functions/things_builder.rb +3 -0
- data/vendor/diy/test/files/gnu/objects.yml +14 -0
- data/vendor/diy/test/files/gnu/thinger.rb +7 -0
- data/vendor/diy/test/files/goat/base.rb +8 -0
- data/vendor/diy/test/files/goat/can.rb +6 -0
- data/vendor/diy/test/files/goat/goat.rb +6 -0
- data/vendor/diy/test/files/goat/objects.yml +12 -0
- data/vendor/diy/test/files/goat/paper.rb +6 -0
- data/vendor/diy/test/files/goat/plane.rb +7 -0
- data/vendor/diy/test/files/goat/shirt.rb +6 -0
- data/vendor/diy/test/files/goat/wings.rb +8 -0
- data/vendor/diy/test/files/horse/holder_thing.rb +3 -0
- data/vendor/diy/test/files/horse/objects.yml +7 -0
- data/vendor/diy/test/files/namespace/animal/bird.rb +5 -0
- data/vendor/diy/test/files/namespace/animal/cat.rb +5 -0
- data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +8 -0
- data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +7 -0
- data/vendor/diy/test/files/namespace/bad_module_specified.yml +8 -0
- data/vendor/diy/test/files/namespace/class_name_combine.yml +8 -0
- data/vendor/diy/test/files/namespace/hello.txt +1 -0
- data/vendor/diy/test/files/namespace/no_module_specified.yml +8 -0
- data/vendor/diy/test/files/namespace/objects.yml +21 -0
- data/vendor/diy/test/files/namespace/road.rb +2 -0
- data/vendor/diy/test/files/namespace/sky.rb +2 -0
- data/vendor/diy/test/files/namespace/subcontext.yml +22 -0
- data/vendor/diy/test/files/non_singleton/air.rb +2 -0
- data/vendor/diy/test/files/non_singleton/fat_cat.rb +3 -0
- data/vendor/diy/test/files/non_singleton/objects.yml +19 -0
- data/vendor/diy/test/files/non_singleton/pig.rb +3 -0
- data/vendor/diy/test/files/non_singleton/thread_spinner.rb +3 -0
- data/vendor/diy/test/files/non_singleton/tick.rb +3 -0
- data/vendor/diy/test/files/non_singleton/yard.rb +2 -0
- data/vendor/diy/test/files/yak/core_model.rb +3 -0
- data/vendor/diy/test/files/yak/core_presenter.rb +3 -0
- data/vendor/diy/test/files/yak/core_view.rb +1 -0
- data/vendor/diy/test/files/yak/data_source.rb +1 -0
- data/vendor/diy/test/files/yak/fringe_model.rb +3 -0
- data/vendor/diy/test/files/yak/fringe_presenter.rb +3 -0
- data/vendor/diy/test/files/yak/fringe_view.rb +1 -0
- data/vendor/diy/test/files/yak/giant_squid.rb +3 -0
- data/vendor/diy/test/files/yak/krill.rb +2 -0
- data/vendor/diy/test/files/yak/my_objects.yml +21 -0
- data/vendor/diy/test/files/yak/sub_sub_context_test.yml +27 -0
- data/vendor/diy/test/test_helper.rb +55 -0
- data/vendor/hardmock/CHANGES +78 -0
- data/vendor/hardmock/LICENSE +7 -0
- data/vendor/hardmock/README +70 -0
- data/vendor/hardmock/Rakefile +8 -0
- data/vendor/hardmock/config/environment.rb +12 -0
- data/vendor/hardmock/lib/assert_error.rb +23 -0
- data/vendor/hardmock/lib/extend_test_unit.rb +14 -0
- data/vendor/hardmock/lib/hardmock.rb +86 -0
- data/vendor/hardmock/lib/hardmock/errors.rb +22 -0
- data/vendor/hardmock/lib/hardmock/expectation.rb +229 -0
- data/vendor/hardmock/lib/hardmock/expectation_builder.rb +9 -0
- data/vendor/hardmock/lib/hardmock/expector.rb +26 -0
- data/vendor/hardmock/lib/hardmock/method_cleanout.rb +33 -0
- data/vendor/hardmock/lib/hardmock/mock.rb +180 -0
- data/vendor/hardmock/lib/hardmock/mock_control.rb +53 -0
- data/vendor/hardmock/lib/hardmock/stubbing.rb +210 -0
- data/vendor/hardmock/lib/hardmock/trapper.rb +31 -0
- data/vendor/hardmock/lib/hardmock/utils.rb +9 -0
- data/vendor/hardmock/lib/test_unit_before_after.rb +169 -0
- data/vendor/hardmock/rake_tasks/rdoc.rake +19 -0
- data/vendor/hardmock/rake_tasks/rdoc_options.rb +4 -0
- data/vendor/hardmock/rake_tasks/test.rake +22 -0
- data/vendor/hardmock/test/functional/assert_error_test.rb +52 -0
- data/vendor/hardmock/test/functional/auto_verify_test.rb +178 -0
- data/vendor/hardmock/test/functional/direct_mock_usage_test.rb +396 -0
- data/vendor/hardmock/test/functional/hardmock_test.rb +434 -0
- data/vendor/hardmock/test/functional/stubbing_test.rb +479 -0
- data/vendor/hardmock/test/test_helper.rb +43 -0
- data/vendor/hardmock/test/unit/expectation_builder_test.rb +19 -0
- data/vendor/hardmock/test/unit/expectation_test.rb +372 -0
- data/vendor/hardmock/test/unit/expector_test.rb +57 -0
- data/vendor/hardmock/test/unit/method_cleanout_test.rb +36 -0
- data/vendor/hardmock/test/unit/mock_control_test.rb +175 -0
- data/vendor/hardmock/test/unit/mock_test.rb +279 -0
- data/vendor/hardmock/test/unit/test_unit_before_after_test.rb +452 -0
- data/vendor/hardmock/test/unit/trapper_test.rb +62 -0
- data/vendor/hardmock/test/unit/verify_error_test.rb +40 -0
- data/vendor/unity/auto/colour_prompt.rb +94 -0
- data/vendor/unity/auto/colour_reporter.rb +39 -0
- data/vendor/unity/auto/generate_module.rb +202 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/unity/auto/generate_test_runner.rb +0 -0
- data/vendor/unity/auto/test_file_filter.rb +23 -0
- data/vendor/unity/auto/unity_test_summary.rb +139 -0
- data/vendor/unity/release/build.info +2 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/unity/release/version.info +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/unity/src/unity.c +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/unity/src/unity.h +0 -0
- data/{new_project_template/vendor/ceedling/vendor → vendor}/unity/src/unity_internals.h +94 -6
- metadata +443 -237
- data/.vim +0 -1
- data/.yardopts +0 -1
- data/LICENSE +0 -19
- data/Rakefile +0 -118
- data/ceedling-gem.sublime-project +0 -8
- data/examples/blinky/.DS_Store +0 -0
- data/examples/temp_sensor/src/AT91SAM7X256.h +0 -2556
- data/examples/temp_sensor/src/UsartGetChar.c +0 -6
- data/examples/temp_sensor/src/UsartGetChar.h +0 -8
- data/examples/temp_sensor/test/test_AdcHardwareConfigurator.c +0 -43
- data/examples/temp_sensor/test/test_AdcTemperatureSensor.c +0 -47
- data/examples/temp_sensor/test/test_TimerConfigurator.c +0 -112
- data/examples/temp_sensor/test/test_TimerInterruptConfigurator.c +0 -78
- data/examples/temp_sensor/test/test_TimerInterruptHandler.c +0 -66
- data/examples/temp_sensor/test/test_UsartConfigurator.c +0 -77
- data/examples/temp_sensor/test/test_UsartGetChar.c +0 -17
- data/examples/temp_sensor/test/test_UsartPutChar.c +0 -43
- data/examples/temp_sensor/test/test_UsartTransmitBufferStatus.c +0 -22
- data/new_project_template/build/.gitkeep +0 -0
- data/new_project_template/src/.gitkeep +0 -0
- data/new_project_template/test/.gitkeep +0 -0
- data/new_project_template/test/support/.gitkeep +0 -0
- data/new_project_template/vendor/ceedling/docs/CExceptionSummary.pdf +0 -0
- data/new_project_template/vendor/ceedling/docs/CMock Summary.pdf +0 -0
- data/new_project_template/vendor/ceedling/docs/Ceedling Packet.pdf +0 -0
- data/new_project_template/vendor/ceedling/docs/Unity Summary.pdf +0 -0
- data/new_project_template/vendor/ceedling/lib/preprocessinator_extractor.rb +0 -36
- data/new_project_template/vendor/ceedling/release/build.info +0 -1
- data/new_project_template/vendor/ceedling/vendor/c_exception/release/build.info +0 -1
- data/new_project_template/vendor/ceedling/vendor/cmock/release/build.info +0 -1
- data/new_project_template/vendor/ceedling/vendor/unity/release/build.info +0 -1
@@ -0,0 +1,351 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../unit_test_helper'
|
2
|
+
require 'tool_executor'
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
|
6
|
+
NIL_GLOBAL_CONSTANT = nil
|
7
|
+
|
8
|
+
class ToolExecutorTest < Test::Unit::TestCase
|
9
|
+
|
10
|
+
def setup
|
11
|
+
objects = create_mocks(:configurator, :tool_executor_helper, :streaminator, :system_wrapper)
|
12
|
+
@tool_executor = ToolExecutor.new(objects)
|
13
|
+
end
|
14
|
+
|
15
|
+
def teardown
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
######## Build Command Line #########
|
20
|
+
|
21
|
+
should "build a command line that contains only an executable if no arguments or blank arguments provided" do
|
22
|
+
|
23
|
+
yaml1 = %Q[
|
24
|
+
:tool1:
|
25
|
+
:name: test_compiler
|
26
|
+
:executable: tool.exe
|
27
|
+
:arguments:
|
28
|
+
].left_margin(0)
|
29
|
+
config1 = YAML.load(yaml1)
|
30
|
+
|
31
|
+
yaml2 = %Q[
|
32
|
+
:tool2:
|
33
|
+
:name: test_compiler
|
34
|
+
:executable: tool.exe
|
35
|
+
:arguments:
|
36
|
+
-
|
37
|
+
- ' '
|
38
|
+
].left_margin(0)
|
39
|
+
config2 = YAML.load(yaml2)
|
40
|
+
|
41
|
+
assert_equal('tool.exe', @tool_executor.build_command_line(config1[:tool1]))
|
42
|
+
assert_equal('tool.exe', @tool_executor.build_command_line(config2[:tool2]))
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
should "build a command line where the executable is specified by argument parameter input replacement" do
|
47
|
+
|
48
|
+
yaml = %Q[
|
49
|
+
:tool:
|
50
|
+
:name: test_compiler
|
51
|
+
:executable: ${1}
|
52
|
+
:arguments:
|
53
|
+
- '> ${2}'
|
54
|
+
].left_margin(0)
|
55
|
+
config = YAML.load(yaml)
|
56
|
+
|
57
|
+
assert_equal(
|
58
|
+
'a_tool > files/build/tmp/file.out',
|
59
|
+
@tool_executor.build_command_line(config[:tool], 'a_tool', 'files/build/tmp/file.out'))
|
60
|
+
|
61
|
+
assert_equal(
|
62
|
+
'test.exe > results.out',
|
63
|
+
@tool_executor.build_command_line(config[:tool], 'test.exe', 'results.out'))
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
should "build a command line where the executable is specified by argument parameter input replacement and ruby string substitution" do
|
68
|
+
|
69
|
+
# use funky string construction to prevent ruby from performing actual string substitution we're simulating
|
70
|
+
filepath_string = "\#{" + "File.join(A_PATH, '${2}'}"
|
71
|
+
|
72
|
+
yaml = %Q[
|
73
|
+
:tool:
|
74
|
+
:name: test_compiler
|
75
|
+
:executable: ${1}
|
76
|
+
:arguments:
|
77
|
+
- "> #{filepath_string}"
|
78
|
+
].left_margin(0)
|
79
|
+
config = YAML.load(yaml)
|
80
|
+
|
81
|
+
@system_wrapper.expects.eval("> \#{" + "File.join(A_PATH, 'file.out'}").returns('> files/build/tmp/file.out')
|
82
|
+
@system_wrapper.expects.eval("> \#{" + "File.join(A_PATH, 'results.out'}").returns('> files/build/tmp/results.out')
|
83
|
+
|
84
|
+
assert_equal(
|
85
|
+
'a_tool > files/build/tmp/file.out',
|
86
|
+
@tool_executor.build_command_line(config[:tool], 'a_tool', 'file.out'))
|
87
|
+
|
88
|
+
assert_equal(
|
89
|
+
'test.exe > files/build/tmp/results.out',
|
90
|
+
@tool_executor.build_command_line(config[:tool], 'test.exe', 'results.out'))
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
should "complain when building a command line if tool executable is specified with a replacement parameter but referenced input is nil" do
|
95
|
+
|
96
|
+
yaml = %Q[
|
97
|
+
:tool:
|
98
|
+
:name: tool_sample
|
99
|
+
:executable: ${1}
|
100
|
+
:arguments: []
|
101
|
+
].left_margin(0)
|
102
|
+
config = YAML.load(yaml)
|
103
|
+
|
104
|
+
@streaminator.expects.stderr_puts("ERROR: Tool 'tool_sample' expected valid argument data to accompany replacement operator ${1}.", Verbosity::ERRORS)
|
105
|
+
|
106
|
+
assert_raise(RuntimeError) { @tool_executor.build_command_line(config[:tool], nil) }
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
should "build a command line from simple arguments and global constants using generic '$' string replacement indicator" do
|
111
|
+
|
112
|
+
redefine_global_constant('DEFINES_TEST', ['WALDORF', 'STATLER'])
|
113
|
+
redefine_global_constant('COLLECTION_ALL_INCLUDE_PATHS', ['files/include', 'lib/modules/include'])
|
114
|
+
redefine_global_constant('PROJECT_BUILD_ROOT', 'project/files/tests/build')
|
115
|
+
|
116
|
+
yaml = %Q[
|
117
|
+
:tool:
|
118
|
+
:name: test_compiler
|
119
|
+
:executable: hecklers.exe
|
120
|
+
:arguments:
|
121
|
+
- '--dlib_config config.h'
|
122
|
+
- -D$: DEFINES_TEST
|
123
|
+
- --no_cse
|
124
|
+
- -I"$": COLLECTION_ALL_INCLUDE_PATHS
|
125
|
+
- -I"$/mocks": PROJECT_BUILD_ROOT
|
126
|
+
- --no_unroll
|
127
|
+
].left_margin(0)
|
128
|
+
config = YAML.load(yaml)
|
129
|
+
|
130
|
+
command_line = 'hecklers.exe --dlib_config config.h -DWALDORF -DSTATLER --no_cse -I"files/include" -I"lib/modules/include" -I"project/files/tests/build/mocks" --no_unroll'
|
131
|
+
|
132
|
+
assert_equal(command_line, @tool_executor.build_command_line(config[:tool]))
|
133
|
+
end
|
134
|
+
|
135
|
+
|
136
|
+
should "build a command line from simple arguments and inline yaml arrays using '$' string replacement indicator" do
|
137
|
+
|
138
|
+
yaml = %Q[
|
139
|
+
:tool:
|
140
|
+
:name: test_compiler
|
141
|
+
:executable: compiler.exe
|
142
|
+
:arguments:
|
143
|
+
- --no_cse
|
144
|
+
- '--D $':
|
145
|
+
- DIFFERENT_DEFINE
|
146
|
+
- STILL_ANOTHER_DEFINE
|
147
|
+
- $:
|
148
|
+
- A
|
149
|
+
- B
|
150
|
+
- --a_setting
|
151
|
+
].left_margin(0)
|
152
|
+
config = YAML.load(yaml)
|
153
|
+
|
154
|
+
command_line = 'compiler.exe --no_cse --D DIFFERENT_DEFINE --D STILL_ANOTHER_DEFINE A B --a_setting'
|
155
|
+
|
156
|
+
assert_equal(command_line, @tool_executor.build_command_line(config[:tool]))
|
157
|
+
end
|
158
|
+
|
159
|
+
|
160
|
+
should "build a command line with duplicates in argument array" do
|
161
|
+
|
162
|
+
yaml = %Q[
|
163
|
+
:tool:
|
164
|
+
:name: test_compiler
|
165
|
+
:executable: compiler.exe
|
166
|
+
:arguments:
|
167
|
+
- ${1}
|
168
|
+
- --option1
|
169
|
+
- --option1
|
170
|
+
- '-D $':
|
171
|
+
- DEFINE_A
|
172
|
+
- DEFINE_A
|
173
|
+
- $:
|
174
|
+
- Z
|
175
|
+
- Z
|
176
|
+
- ${1}
|
177
|
+
].left_margin(0)
|
178
|
+
config = YAML.load(yaml)
|
179
|
+
|
180
|
+
command_line = 'compiler.exe arg --option1 --option1 -D DEFINE_A -D DEFINE_A Z Z arg'
|
181
|
+
|
182
|
+
assert_equal(command_line, @tool_executor.build_command_line(config[:tool], 'arg'))
|
183
|
+
end
|
184
|
+
|
185
|
+
|
186
|
+
should "build a command line using ruby string substitution for simple arguments and '$' string replacement" do
|
187
|
+
|
188
|
+
# use funky string construction to prevent ruby from performing actual string substitution we're simulating
|
189
|
+
abc_string = "-\#{" + "['a', 'b', 'c'].join}"
|
190
|
+
num_string = "\#{" + "s = String.new; (1..9).to_a.each {|val| s += val.to_s}}"
|
191
|
+
sym_string = "\#{" + "\'*!~\'.reverse}"
|
192
|
+
|
193
|
+
@system_wrapper.expects.eval(abc_string).returns('-abc')
|
194
|
+
@system_wrapper.expects.eval(num_string).returns('123456789')
|
195
|
+
@system_wrapper.expects.eval(sym_string).returns('~!*')
|
196
|
+
|
197
|
+
yaml = %Q[
|
198
|
+
:tool:
|
199
|
+
:name: test_compiler
|
200
|
+
:executable: compiler.exe
|
201
|
+
:arguments:
|
202
|
+
- "#{abc_string}"
|
203
|
+
- '--i $': "#{num_string}"
|
204
|
+
- '--o $':
|
205
|
+
- "#{sym_string}"
|
206
|
+
].left_margin(0)
|
207
|
+
config = YAML.load(yaml)
|
208
|
+
|
209
|
+
command_line = 'compiler.exe -abc --i 123456789 --o ~!*'
|
210
|
+
|
211
|
+
assert_equal(command_line, @tool_executor.build_command_line(config[:tool]))
|
212
|
+
end
|
213
|
+
|
214
|
+
|
215
|
+
should "build a command line from simple arguments (including non-strings), inline yaml arrays, and input/output specifiers using string replacement indicators" do
|
216
|
+
|
217
|
+
yaml = %Q[
|
218
|
+
:tool:
|
219
|
+
:name: test_compiler
|
220
|
+
:executable: compiler.exe
|
221
|
+
:arguments:
|
222
|
+
- --no_cse
|
223
|
+
- '-flag-${3}'
|
224
|
+
- ${1}
|
225
|
+
- '-D$':
|
226
|
+
- ELIGHT
|
227
|
+
- ELICIOUS
|
228
|
+
- '-verbose:${4}'
|
229
|
+
- '-o ${2}'
|
230
|
+
].left_margin(0)
|
231
|
+
config = YAML.load(yaml)
|
232
|
+
|
233
|
+
command_line = 'compiler.exe --no_cse -flag-1 -flag-2 process_me.c me_too.c and_me_also.c -DELIGHT -DELICIOUS -verbose:5 -o processed.o'
|
234
|
+
|
235
|
+
assert_equal(command_line, @tool_executor.build_command_line(config[:tool], ['process_me.c', 'me_too.c', 'and_me_also.c'], 'processed.o', [1, 2], 5))
|
236
|
+
end
|
237
|
+
|
238
|
+
|
239
|
+
should "build a command line without replacing an escaped string replacement indicator" do
|
240
|
+
|
241
|
+
yaml = %Q[
|
242
|
+
:tool:
|
243
|
+
:name: test_compiler
|
244
|
+
:executable: program
|
245
|
+
:arguments:
|
246
|
+
- --cse=\\$abc
|
247
|
+
- '-\\$D$':
|
248
|
+
- ELIGHT
|
249
|
+
- ELICIOUS
|
250
|
+
- '-o ${2}.\\$'
|
251
|
+
].left_margin(0)
|
252
|
+
config = YAML.load(yaml)
|
253
|
+
|
254
|
+
command_line = 'program --cse=$abc -$DELIGHT -$DELICIOUS -o processed1.$ -o processed2.$'
|
255
|
+
|
256
|
+
assert_equal(command_line, @tool_executor.build_command_line(config[:tool], nil, ['processed1', 'processed2']))
|
257
|
+
end
|
258
|
+
|
259
|
+
|
260
|
+
should "complain when building a command line if a referenced constant is nil" do
|
261
|
+
|
262
|
+
yaml = %Q[
|
263
|
+
:tool:
|
264
|
+
:name: test_compiler
|
265
|
+
:executable: tool.exe
|
266
|
+
:arguments:
|
267
|
+
- -x$: NIL_GLOBAL_CONSTANT
|
268
|
+
].left_margin(0)
|
269
|
+
config = YAML.load(yaml)
|
270
|
+
|
271
|
+
@streaminator.expects.stderr_puts("ERROR: Tool 'test_compiler' found constant 'NIL_GLOBAL_CONSTANT' to be nil.", Verbosity::ERRORS)
|
272
|
+
|
273
|
+
assert_raise(RuntimeError) { @tool_executor.build_command_line(config[:tool]) }
|
274
|
+
end
|
275
|
+
|
276
|
+
|
277
|
+
should "complain when building a command line if expansion elements are nil" do
|
278
|
+
|
279
|
+
yaml = %Q[
|
280
|
+
:tool:
|
281
|
+
:name: test_compiler
|
282
|
+
:executable: tool.exe
|
283
|
+
:arguments:
|
284
|
+
- -x$:
|
285
|
+
].left_margin(0)
|
286
|
+
config = YAML.load(yaml)
|
287
|
+
|
288
|
+
@streaminator.expects.stderr_puts("ERROR: Tool 'test_compiler' could not expand nil elements for format string '-x$'.", Verbosity::ERRORS)
|
289
|
+
|
290
|
+
assert_raise(RuntimeError) { @tool_executor.build_command_line(config[:tool]) }
|
291
|
+
end
|
292
|
+
|
293
|
+
|
294
|
+
should "complain when building a command line if argument replacement parameters are specified but referenced input is nil" do
|
295
|
+
|
296
|
+
yaml = %Q[
|
297
|
+
:tool:
|
298
|
+
:name: classic_movie
|
299
|
+
:executable: harry
|
300
|
+
:arguments:
|
301
|
+
- ${1}
|
302
|
+
].left_margin(0)
|
303
|
+
config = YAML.load(yaml)
|
304
|
+
|
305
|
+
@streaminator.expects.stderr_puts("ERROR: Tool 'classic_movie' expected valid argument data to accompany replacement operator ${1}.", Verbosity::ERRORS)
|
306
|
+
|
307
|
+
assert_raise(RuntimeError) { @tool_executor.build_command_line(config[:tool], nil, 'sally') }
|
308
|
+
end
|
309
|
+
|
310
|
+
|
311
|
+
should "complain when building a command line if argument replacement parameters are specified but no optional arguments are given" do
|
312
|
+
|
313
|
+
yaml = %Q[
|
314
|
+
:tools_a_tool:
|
315
|
+
:name: take_a_dip_in_the_tool
|
316
|
+
:executable: harry
|
317
|
+
:arguments:
|
318
|
+
- ${2}
|
319
|
+
].left_margin(0)
|
320
|
+
config = YAML.load(yaml)
|
321
|
+
|
322
|
+
@streaminator.expects.stderr_puts("ERROR: Tool 'take_a_dip_in_the_tool' expected valid argument data to accompany replacement operator ${2}.", Verbosity::ERRORS)
|
323
|
+
|
324
|
+
assert_raise(RuntimeError) { @tool_executor.build_command_line(config[:tools_a_tool]) }
|
325
|
+
end
|
326
|
+
|
327
|
+
######## Shell Out & Execute Command #########
|
328
|
+
|
329
|
+
should "shell out & execute command with additional arguments" do
|
330
|
+
shell_result = {:output => 'stdout string', :exit_code => 0}
|
331
|
+
|
332
|
+
@system_wrapper.expects.shell_execute('shell_command arg1 arg2').returns(shell_result)
|
333
|
+
|
334
|
+
@tool_executor_helper.expects.print_happy_results('shell_command arg1 arg2', shell_result)
|
335
|
+
@tool_executor_helper.expects.print_error_results('shell_command arg1 arg2', shell_result)
|
336
|
+
|
337
|
+
assert_equal('stdout string', @tool_executor.exec(' shell_command', ['arg1', 'arg2']))
|
338
|
+
end
|
339
|
+
|
340
|
+
should "shell out & execute command but raise on non-zero exit code" do
|
341
|
+
shell_result = {:output => '', :exit_code => 1}
|
342
|
+
|
343
|
+
@system_wrapper.expects.shell_execute('shell_fish').returns(shell_result)
|
344
|
+
|
345
|
+
@tool_executor_helper.expects.print_happy_results('shell_fish', shell_result)
|
346
|
+
@tool_executor_helper.expects.print_error_results('shell_fish', shell_result)
|
347
|
+
|
348
|
+
assert_raise(RuntimeError){ @tool_executor.exec('shell_fish') }
|
349
|
+
end
|
350
|
+
|
351
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../unit_test_helper'
|
2
|
+
require 'verbosinator'
|
3
|
+
|
4
|
+
|
5
|
+
class VerbosinatorTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
objects = create_mocks(:configurator)
|
9
|
+
@verbosinator = Verbosinator.new(objects)
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
should "allow output if verbosity level of ERRORS" do
|
17
|
+
@configurator.expects.project_verbosity.returns(Verbosity::ERRORS)
|
18
|
+
@configurator.expects.project_verbosity.returns(Verbosity::ERRORS)
|
19
|
+
@configurator.expects.project_verbosity.returns(Verbosity::ERRORS)
|
20
|
+
@configurator.expects.project_verbosity.returns(Verbosity::ERRORS)
|
21
|
+
|
22
|
+
assert(@verbosinator.should_output?(Verbosity::ERRORS))
|
23
|
+
assert_equal(false, @verbosinator.should_output?(Verbosity::COMPLAIN))
|
24
|
+
assert_equal(false, @verbosinator.should_output?(Verbosity::NORMAL))
|
25
|
+
assert_equal(false, @verbosinator.should_output?(Verbosity::OBNOXIOUS))
|
26
|
+
end
|
27
|
+
|
28
|
+
should "allow output if verbosity level of COMPLAIN" do
|
29
|
+
@configurator.expects.project_verbosity.returns(Verbosity::COMPLAIN)
|
30
|
+
@configurator.expects.project_verbosity.returns(Verbosity::COMPLAIN)
|
31
|
+
@configurator.expects.project_verbosity.returns(Verbosity::COMPLAIN)
|
32
|
+
@configurator.expects.project_verbosity.returns(Verbosity::COMPLAIN)
|
33
|
+
|
34
|
+
assert(@verbosinator.should_output?(Verbosity::ERRORS))
|
35
|
+
assert(@verbosinator.should_output?(Verbosity::COMPLAIN))
|
36
|
+
assert_equal(false, @verbosinator.should_output?(Verbosity::NORMAL))
|
37
|
+
assert_equal(false, @verbosinator.should_output?(Verbosity::OBNOXIOUS))
|
38
|
+
end
|
39
|
+
|
40
|
+
should "allow output if verbosity level of NORMAL" do
|
41
|
+
@configurator.expects.project_verbosity.returns(Verbosity::NORMAL)
|
42
|
+
@configurator.expects.project_verbosity.returns(Verbosity::NORMAL)
|
43
|
+
@configurator.expects.project_verbosity.returns(Verbosity::NORMAL)
|
44
|
+
@configurator.expects.project_verbosity.returns(Verbosity::NORMAL)
|
45
|
+
|
46
|
+
assert(@verbosinator.should_output?(Verbosity::ERRORS))
|
47
|
+
assert(@verbosinator.should_output?(Verbosity::COMPLAIN))
|
48
|
+
assert(@verbosinator.should_output?(Verbosity::NORMAL))
|
49
|
+
assert_equal(false, @verbosinator.should_output?(Verbosity::OBNOXIOUS))
|
50
|
+
end
|
51
|
+
|
52
|
+
should "allow output if verbosity level of OBNOXIOUS" do
|
53
|
+
@configurator.expects.project_verbosity.returns(Verbosity::OBNOXIOUS)
|
54
|
+
@configurator.expects.project_verbosity.returns(Verbosity::OBNOXIOUS)
|
55
|
+
@configurator.expects.project_verbosity.returns(Verbosity::OBNOXIOUS)
|
56
|
+
@configurator.expects.project_verbosity.returns(Verbosity::OBNOXIOUS)
|
57
|
+
|
58
|
+
assert(@verbosinator.should_output?(Verbosity::ERRORS))
|
59
|
+
assert(@verbosinator.should_output?(Verbosity::COMPLAIN))
|
60
|
+
assert(@verbosinator.should_output?(Verbosity::NORMAL))
|
61
|
+
assert(@verbosinator.should_output?(Verbosity::OBNOXIOUS))
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
@@ -0,0 +1,731 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../unit_test_helper'
|
2
|
+
require 'preprocessinator_extractor'
|
3
|
+
|
4
|
+
|
5
|
+
class PreprocessinatorExtractorTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
objects = create_mocks(:file_wrapper)
|
9
|
+
@preprocessinator_extractor = PreprocessinatorExtractor.new(objects)
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
should "extract base file contents from preprocessed file regardless of whitespace and formatting" do
|
17
|
+
|
18
|
+
preprocessed_file_contents = %Q[
|
19
|
+
# 1 blah blah blah
|
20
|
+
#1 "/home/project/TestIcle.c" 1
|
21
|
+
Mary
|
22
|
+
Mary
|
23
|
+
Quite
|
24
|
+
Contrary
|
25
|
+
#37 yackity shmackity
|
26
|
+
|
27
|
+
# TestIcle.c
|
28
|
+
Jack
|
29
|
+
and
|
30
|
+
Jill
|
31
|
+
# 45
|
32
|
+
|
33
|
+
# TestIcle.c
|
34
|
+
#pragma pack()
|
35
|
+
|
36
|
+
Went up the hill
|
37
|
+
].left_margin(0)
|
38
|
+
|
39
|
+
|
40
|
+
expected_extraction_contents = %Q[
|
41
|
+
Mary
|
42
|
+
Mary
|
43
|
+
Quite
|
44
|
+
Contrary
|
45
|
+
Jack
|
46
|
+
and
|
47
|
+
Jill
|
48
|
+
#pragma pack()
|
49
|
+
|
50
|
+
Went up the hill
|
51
|
+
].left_margin(0)
|
52
|
+
|
53
|
+
|
54
|
+
@file_wrapper.expects.readlines('project/build/preprocess/TestIcle.c').returns(preprocessed_file_contents.split("\n"))
|
55
|
+
|
56
|
+
assert_equal(
|
57
|
+
expected_extraction_contents.strip.split("\n"),
|
58
|
+
@preprocessinator_extractor.extract_base_file_from_preprocessed_expansion('project/build/preprocess/TestIcle.c'))
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
should "extract real base file contents from real preprocessed file output" do
|
63
|
+
|
64
|
+
preprocessed_file_contents = %Q[
|
65
|
+
# 1 "test/system/a_project/test/test_a_file.c"
|
66
|
+
# 1 "<built-in>"
|
67
|
+
# 1 "<command-line>"
|
68
|
+
# 1 "test/system/a_project/test/test_a_file.c"
|
69
|
+
# 1 "/home/svn/ceedling/vendor/unity/src/unity.h" 1
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
# 1 "/usr/include/stdio.h" 1 3 4
|
76
|
+
# 64 "/usr/include/stdio.h" 3 4
|
77
|
+
# 1 "/usr/include/_types.h" 1 3 4
|
78
|
+
# 27 "/usr/include/_types.h" 3 4
|
79
|
+
# 1 "/usr/include/sys/_types.h" 1 3 4
|
80
|
+
# 32 "/usr/include/sys/_types.h" 3 4
|
81
|
+
# 1 "/usr/include/sys/cdefs.h" 1 3 4
|
82
|
+
# 33 "/usr/include/sys/_types.h" 2 3 4
|
83
|
+
# 1 "/usr/include/machine/_types.h" 1 3 4
|
84
|
+
# 34 "/usr/include/machine/_types.h" 3 4
|
85
|
+
# 1 "/usr/include/i386/_types.h" 1 3 4
|
86
|
+
# 37 "/usr/include/i386/_types.h" 3 4
|
87
|
+
typedef signed char __int8_t;
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
typedef unsigned char __uint8_t;
|
92
|
+
typedef short __int16_t;
|
93
|
+
typedef unsigned short __uint16_t;
|
94
|
+
typedef int __int32_t;
|
95
|
+
typedef unsigned int __uint32_t;
|
96
|
+
typedef long long __int64_t;
|
97
|
+
typedef unsigned long long __uint64_t;
|
98
|
+
|
99
|
+
typedef long __darwin_intptr_t;
|
100
|
+
typedef unsigned int __darwin_natural_t;
|
101
|
+
# 70 "/usr/include/i386/_types.h" 3 4
|
102
|
+
typedef int __darwin_ct_rune_t;
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
typedef union {
|
109
|
+
char __mbstate8[128];
|
110
|
+
long long _mbstateL;
|
111
|
+
} __mbstate_t;
|
112
|
+
|
113
|
+
typedef __mbstate_t __darwin_mbstate_t;
|
114
|
+
|
115
|
+
|
116
|
+
typedef long int __darwin_ptrdiff_t;
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
typedef long unsigned int __darwin_size_t;
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
typedef __builtin_va_list __darwin_va_list;
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
typedef int __darwin_wchar_t;
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
typedef __darwin_wchar_t __darwin_rune_t;
|
140
|
+
|
141
|
+
|
142
|
+
typedef int __darwin_wint_t;
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
typedef unsigned long __darwin_clock_t;
|
148
|
+
typedef __uint32_t __darwin_socklen_t;
|
149
|
+
typedef long __darwin_ssize_t;
|
150
|
+
typedef long __darwin_time_t;
|
151
|
+
# 35 "/usr/include/machine/_types.h" 2 3 4
|
152
|
+
# 34 "/usr/include/sys/_types.h" 2 3 4
|
153
|
+
# 58 "/usr/include/sys/_types.h" 3 4
|
154
|
+
struct __darwin_pthread_handler_rec
|
155
|
+
{
|
156
|
+
void (*__routine)(void *);
|
157
|
+
void *__arg;
|
158
|
+
struct __darwin_pthread_handler_rec *__next;
|
159
|
+
};
|
160
|
+
struct _opaque_pthread_attr_t { long __sig; char __opaque[56]; };
|
161
|
+
struct _opaque_pthread_cond_t { long __sig; char __opaque[40]; };
|
162
|
+
struct _opaque_pthread_condattr_t { long __sig; char __opaque[8]; };
|
163
|
+
struct _opaque_pthread_mutex_t { long __sig; char __opaque[56]; };
|
164
|
+
struct _opaque_pthread_mutexattr_t { long __sig; char __opaque[8]; };
|
165
|
+
struct _opaque_pthread_once_t { long __sig; char __opaque[8]; };
|
166
|
+
struct _opaque_pthread_rwlock_t { long __sig; char __opaque[192]; };
|
167
|
+
struct _opaque_pthread_rwlockattr_t { long __sig; char __opaque[16]; };
|
168
|
+
struct _opaque_pthread_t { long __sig; struct __darwin_pthread_handler_rec *__cleanup_stack; char __opaque[1168]; };
|
169
|
+
# 94 "/usr/include/sys/_types.h" 3 4
|
170
|
+
typedef __int64_t __darwin_blkcnt_t;
|
171
|
+
typedef __int32_t __darwin_blksize_t;
|
172
|
+
typedef __int32_t __darwin_dev_t;
|
173
|
+
typedef unsigned int __darwin_fsblkcnt_t;
|
174
|
+
typedef unsigned int __darwin_fsfilcnt_t;
|
175
|
+
typedef __uint32_t __darwin_gid_t;
|
176
|
+
typedef __uint32_t __darwin_id_t;
|
177
|
+
typedef __uint64_t __darwin_ino64_t;
|
178
|
+
|
179
|
+
typedef __darwin_ino64_t __darwin_ino_t;
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
typedef __darwin_natural_t __darwin_mach_port_name_t;
|
184
|
+
typedef __darwin_mach_port_name_t __darwin_mach_port_t;
|
185
|
+
typedef __uint16_t __darwin_mode_t;
|
186
|
+
typedef __int64_t __darwin_off_t;
|
187
|
+
typedef __int32_t __darwin_pid_t;
|
188
|
+
typedef struct _opaque_pthread_attr_t
|
189
|
+
__darwin_pthread_attr_t;
|
190
|
+
typedef struct _opaque_pthread_cond_t
|
191
|
+
__darwin_pthread_cond_t;
|
192
|
+
typedef struct _opaque_pthread_condattr_t
|
193
|
+
__darwin_pthread_condattr_t;
|
194
|
+
typedef unsigned long __darwin_pthread_key_t;
|
195
|
+
typedef struct _opaque_pthread_mutex_t
|
196
|
+
__darwin_pthread_mutex_t;
|
197
|
+
typedef struct _opaque_pthread_mutexattr_t
|
198
|
+
__darwin_pthread_mutexattr_t;
|
199
|
+
typedef struct _opaque_pthread_once_t
|
200
|
+
__darwin_pthread_once_t;
|
201
|
+
typedef struct _opaque_pthread_rwlock_t
|
202
|
+
__darwin_pthread_rwlock_t;
|
203
|
+
typedef struct _opaque_pthread_rwlockattr_t
|
204
|
+
__darwin_pthread_rwlockattr_t;
|
205
|
+
typedef struct _opaque_pthread_t
|
206
|
+
*__darwin_pthread_t;
|
207
|
+
typedef __uint32_t __darwin_sigset_t;
|
208
|
+
typedef __int32_t __darwin_suseconds_t;
|
209
|
+
typedef __uint32_t __darwin_uid_t;
|
210
|
+
typedef __uint32_t __darwin_useconds_t;
|
211
|
+
typedef unsigned char __darwin_uuid_t[16];
|
212
|
+
typedef char __darwin_uuid_string_t[37];
|
213
|
+
# 28 "/usr/include/_types.h" 2 3 4
|
214
|
+
# 39 "/usr/include/_types.h" 3 4
|
215
|
+
typedef int __darwin_nl_item;
|
216
|
+
typedef int __darwin_wctrans_t;
|
217
|
+
|
218
|
+
typedef __uint32_t __darwin_wctype_t;
|
219
|
+
# 65 "/usr/include/stdio.h" 2 3 4
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
typedef __darwin_va_list va_list;
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
|
230
|
+
typedef __darwin_off_t off_t;
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
typedef __darwin_size_t size_t;
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
typedef __darwin_off_t fpos_t;
|
243
|
+
# 98 "/usr/include/stdio.h" 3 4
|
244
|
+
struct __sbuf {
|
245
|
+
unsigned char *_base;
|
246
|
+
int _size;
|
247
|
+
};
|
248
|
+
|
249
|
+
|
250
|
+
struct __sFILEX;
|
251
|
+
# 132 "/usr/include/stdio.h" 3 4
|
252
|
+
typedef struct __sFILE {
|
253
|
+
unsigned char *_p;
|
254
|
+
int _r;
|
255
|
+
int _w;
|
256
|
+
short _flags;
|
257
|
+
short _file;
|
258
|
+
struct __sbuf _bf;
|
259
|
+
int _lbfsize;
|
260
|
+
|
261
|
+
|
262
|
+
void *_cookie;
|
263
|
+
int (*_close)(void *);
|
264
|
+
int (*_read) (void *, char *, int);
|
265
|
+
fpos_t (*_seek) (void *, fpos_t, int);
|
266
|
+
int (*_write)(void *, const char *, int);
|
267
|
+
|
268
|
+
|
269
|
+
struct __sbuf _ub;
|
270
|
+
struct __sFILEX *_extra;
|
271
|
+
int _ur;
|
272
|
+
|
273
|
+
|
274
|
+
unsigned char _ubuf[3];
|
275
|
+
unsigned char _nbuf[1];
|
276
|
+
|
277
|
+
|
278
|
+
struct __sbuf _lb;
|
279
|
+
|
280
|
+
|
281
|
+
int _blksize;
|
282
|
+
fpos_t _offset;
|
283
|
+
} FILE;
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
extern FILE *__stdinp;
|
288
|
+
extern FILE *__stdoutp;
|
289
|
+
extern FILE *__stderrp;
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
|
294
|
+
# 248 "/usr/include/stdio.h" 3 4
|
295
|
+
|
296
|
+
void clearerr(FILE *);
|
297
|
+
int fclose(FILE *);
|
298
|
+
int feof(FILE *);
|
299
|
+
int ferror(FILE *);
|
300
|
+
int fflush(FILE *);
|
301
|
+
int fgetc(FILE *);
|
302
|
+
int fgetpos(FILE * , fpos_t *);
|
303
|
+
char *fgets(char * , int, FILE *);
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
FILE *fopen(const char * , const char * ) __asm("_" "fopen" );
|
308
|
+
|
309
|
+
int fprintf(FILE * , const char * , ...) ;
|
310
|
+
int fputc(int, FILE *);
|
311
|
+
int fputs(const char * , FILE * ) __asm("_" "fputs" );
|
312
|
+
size_t fread(void * , size_t, size_t, FILE * );
|
313
|
+
FILE *freopen(const char * , const char * ,
|
314
|
+
FILE * ) __asm("_" "freopen" );
|
315
|
+
int fscanf(FILE * , const char * , ...) ;
|
316
|
+
int fseek(FILE *, long, int);
|
317
|
+
int fsetpos(FILE *, const fpos_t *);
|
318
|
+
long ftell(FILE *);
|
319
|
+
size_t fwrite(const void * , size_t, size_t, FILE * ) __asm("_" "fwrite" );
|
320
|
+
int getc(FILE *);
|
321
|
+
int getchar(void);
|
322
|
+
char *gets(char *);
|
323
|
+
|
324
|
+
extern const int sys_nerr;
|
325
|
+
extern const char *const sys_errlist[];
|
326
|
+
|
327
|
+
void perror(const char *);
|
328
|
+
int printf(const char * , ...) ;
|
329
|
+
int putc(int, FILE *);
|
330
|
+
int putchar(int);
|
331
|
+
int puts(const char *);
|
332
|
+
int remove(const char *);
|
333
|
+
int rename (const char *, const char *);
|
334
|
+
void rewind(FILE *);
|
335
|
+
int scanf(const char * , ...) ;
|
336
|
+
void setbuf(FILE * , char * );
|
337
|
+
int setvbuf(FILE * , char * , int, size_t);
|
338
|
+
int sprintf(char * , const char * , ...) ;
|
339
|
+
int sscanf(const char * , const char * , ...) ;
|
340
|
+
FILE *tmpfile(void);
|
341
|
+
char *tmpnam(char *);
|
342
|
+
int ungetc(int, FILE *);
|
343
|
+
int vfprintf(FILE * , const char * , va_list) ;
|
344
|
+
int vprintf(const char * , va_list) ;
|
345
|
+
int vsprintf(char * , const char * , va_list) ;
|
346
|
+
|
347
|
+
int asprintf(char **, const char *, ...) ;
|
348
|
+
int vasprintf(char **, const char *, va_list) ;
|
349
|
+
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
char *ctermid(char *);
|
360
|
+
|
361
|
+
char *ctermid_r(char *);
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
|
366
|
+
FILE *fdopen(int, const char *) __asm("_" "fdopen" );
|
367
|
+
|
368
|
+
|
369
|
+
char *fgetln(FILE *, size_t *);
|
370
|
+
|
371
|
+
int fileno(FILE *);
|
372
|
+
void flockfile(FILE *);
|
373
|
+
|
374
|
+
const char
|
375
|
+
*fmtcheck(const char *, const char *);
|
376
|
+
int fpurge(FILE *);
|
377
|
+
|
378
|
+
int fseeko(FILE *, off_t, int);
|
379
|
+
off_t ftello(FILE *);
|
380
|
+
int ftrylockfile(FILE *);
|
381
|
+
void funlockfile(FILE *);
|
382
|
+
int getc_unlocked(FILE *);
|
383
|
+
int getchar_unlocked(void);
|
384
|
+
|
385
|
+
int getw(FILE *);
|
386
|
+
|
387
|
+
int pclose(FILE *);
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
FILE *popen(const char *, const char *) __asm("_" "popen" );
|
392
|
+
|
393
|
+
int putc_unlocked(int, FILE *);
|
394
|
+
int putchar_unlocked(int);
|
395
|
+
|
396
|
+
int putw(int, FILE *);
|
397
|
+
void setbuffer(FILE *, char *, int);
|
398
|
+
int setlinebuf(FILE *);
|
399
|
+
|
400
|
+
int snprintf(char * , size_t, const char * , ...) ;
|
401
|
+
char *tempnam(const char *, const char *) __asm("_" "tempnam" );
|
402
|
+
int vfscanf(FILE * , const char * , va_list) ;
|
403
|
+
int vscanf(const char * , va_list) ;
|
404
|
+
int vsnprintf(char * , size_t, const char * , va_list) ;
|
405
|
+
int vsscanf(const char * , const char * , va_list) ;
|
406
|
+
|
407
|
+
FILE *zopen(const char *, const char *, int);
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
|
414
|
+
|
415
|
+
|
416
|
+
FILE *funopen(const void *,
|
417
|
+
int (*)(void *, char *, int),
|
418
|
+
int (*)(void *, const char *, int),
|
419
|
+
fpos_t (*)(void *, fpos_t, int),
|
420
|
+
int (*)(void *));
|
421
|
+
|
422
|
+
# 383 "/usr/include/stdio.h" 3 4
|
423
|
+
|
424
|
+
int __srget(FILE *);
|
425
|
+
int __svfscanf(FILE *, const char *, va_list) ;
|
426
|
+
int __swbuf(int, FILE *);
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
|
434
|
+
|
435
|
+
static __inline int __sputc(int _c, FILE *_p) {
|
436
|
+
if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
|
437
|
+
return (*_p->_p++ = _c);
|
438
|
+
else
|
439
|
+
return (__swbuf(_c, _p));
|
440
|
+
}
|
441
|
+
# 443 "/usr/include/stdio.h" 3 4
|
442
|
+
# 1 "/usr/include/secure/_stdio.h" 1 3 4
|
443
|
+
# 31 "/usr/include/secure/_stdio.h" 3 4
|
444
|
+
# 1 "/usr/include/secure/_common.h" 1 3 4
|
445
|
+
# 32 "/usr/include/secure/_stdio.h" 2 3 4
|
446
|
+
# 42 "/usr/include/secure/_stdio.h" 3 4
|
447
|
+
extern int __sprintf_chk (char * , int, size_t,
|
448
|
+
const char * , ...)
|
449
|
+
;
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
extern int __snprintf_chk (char * , size_t, int, size_t,
|
455
|
+
const char * , ...)
|
456
|
+
;
|
457
|
+
|
458
|
+
|
459
|
+
|
460
|
+
|
461
|
+
extern int __vsprintf_chk (char * , int, size_t,
|
462
|
+
const char * , va_list)
|
463
|
+
;
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
extern int __vsnprintf_chk (char * , size_t, int, size_t,
|
469
|
+
const char * , va_list)
|
470
|
+
;
|
471
|
+
# 444 "/usr/include/stdio.h" 2 3 4
|
472
|
+
# 7 "/home/svn/ceedling/vendor/unity/src/unity.h" 2
|
473
|
+
# 1 "/usr/include/setjmp.h" 1 3 4
|
474
|
+
# 26 "/usr/include/setjmp.h" 3 4
|
475
|
+
# 1 "/usr/include/machine/setjmp.h" 1 3 4
|
476
|
+
# 37 "/usr/include/machine/setjmp.h" 3 4
|
477
|
+
# 1 "/usr/include/i386/setjmp.h" 1 3 4
|
478
|
+
# 47 "/usr/include/i386/setjmp.h" 3 4
|
479
|
+
typedef int jmp_buf[((9 * 2) + 3 + 16)];
|
480
|
+
typedef int sigjmp_buf[((9 * 2) + 3 + 16) + 1];
|
481
|
+
# 65 "/usr/include/i386/setjmp.h" 3 4
|
482
|
+
|
483
|
+
int setjmp(jmp_buf);
|
484
|
+
void longjmp(jmp_buf, int);
|
485
|
+
|
486
|
+
|
487
|
+
int _setjmp(jmp_buf);
|
488
|
+
void _longjmp(jmp_buf, int);
|
489
|
+
int sigsetjmp(sigjmp_buf, int);
|
490
|
+
void siglongjmp(sigjmp_buf, int);
|
491
|
+
|
492
|
+
|
493
|
+
|
494
|
+
void longjmperror(void);
|
495
|
+
|
496
|
+
|
497
|
+
# 38 "/usr/include/machine/setjmp.h" 2 3 4
|
498
|
+
# 27 "/usr/include/setjmp.h" 2 3 4
|
499
|
+
# 8 "/home/svn/ceedling/vendor/unity/src/unity.h" 2
|
500
|
+
# 23 "/home/svn/ceedling/vendor/unity/src/unity.h"
|
501
|
+
typedef float _UF;
|
502
|
+
# 36 "/home/svn/ceedling/vendor/unity/src/unity.h"
|
503
|
+
typedef unsigned char _UU8;
|
504
|
+
typedef unsigned short _UU16;
|
505
|
+
typedef unsigned int _UU32;
|
506
|
+
typedef signed char _US8;
|
507
|
+
typedef signed short _US16;
|
508
|
+
typedef signed int _US32;
|
509
|
+
# 65 "/home/svn/ceedling/vendor/unity/src/unity.h"
|
510
|
+
typedef void (*UnityTestFunction)(void);
|
511
|
+
|
512
|
+
typedef enum
|
513
|
+
{
|
514
|
+
UNITY_DISPLAY_STYLE_INT,
|
515
|
+
UNITY_DISPLAY_STYLE_UINT,
|
516
|
+
UNITY_DISPLAY_STYLE_HEX8,
|
517
|
+
UNITY_DISPLAY_STYLE_HEX16,
|
518
|
+
UNITY_DISPLAY_STYLE_HEX32
|
519
|
+
} UNITY_DISPLAY_STYLE_T;
|
520
|
+
|
521
|
+
struct _Unity
|
522
|
+
{
|
523
|
+
const char* TestFile;
|
524
|
+
const char* CurrentTestName;
|
525
|
+
unsigned char NumberOfTests;
|
526
|
+
unsigned char TestFailures;
|
527
|
+
unsigned char TestIgnores;
|
528
|
+
unsigned char CurrentTestFailed;
|
529
|
+
unsigned char CurrentTestIgnored;
|
530
|
+
jmp_buf AbortFrame;
|
531
|
+
};
|
532
|
+
|
533
|
+
extern struct _Unity Unity;
|
534
|
+
|
535
|
+
|
536
|
+
|
537
|
+
|
538
|
+
|
539
|
+
void UnityBegin(void);
|
540
|
+
void UnityEnd(void);
|
541
|
+
void UnityConcludeTest(void);
|
542
|
+
|
543
|
+
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
void UnityPrint(const char* string);
|
548
|
+
void UnityPrintMask(const unsigned long mask, const unsigned long number);
|
549
|
+
void UnityPrintNumberByStyle(const long number, const UNITY_DISPLAY_STYLE_T style);
|
550
|
+
void UnityPrintNumber(const long number);
|
551
|
+
void UnityPrintNumberUnsigned(const unsigned long number);
|
552
|
+
void UnityPrintNumberHex(const unsigned long number, const char nibbles);
|
553
|
+
# 117 "/home/svn/ceedling/vendor/unity/src/unity.h"
|
554
|
+
void UnityAssertEqualNumber(const long expected,
|
555
|
+
const long actual,
|
556
|
+
const char* msg,
|
557
|
+
const unsigned short lineNumber,
|
558
|
+
const UNITY_DISPLAY_STYLE_T style);
|
559
|
+
|
560
|
+
void UnityAssertEqualNumberUnsigned(const unsigned long expected,
|
561
|
+
const unsigned long actual,
|
562
|
+
const char* msg,
|
563
|
+
const unsigned short lineNumber,
|
564
|
+
const UNITY_DISPLAY_STYLE_T style);
|
565
|
+
|
566
|
+
void UnityAssertEqualIntArray(const int* expected,
|
567
|
+
const int* actual,
|
568
|
+
const unsigned long num_elements,
|
569
|
+
const char* msg,
|
570
|
+
const unsigned short lineNumber,
|
571
|
+
const UNITY_DISPLAY_STYLE_T style);
|
572
|
+
|
573
|
+
void UnityAssertEqualUnsignedIntArray(const unsigned int* expected,
|
574
|
+
const unsigned int* actual,
|
575
|
+
const unsigned long num_elements,
|
576
|
+
const char* msg,
|
577
|
+
const unsigned short lineNumber,
|
578
|
+
const UNITY_DISPLAY_STYLE_T style);
|
579
|
+
|
580
|
+
void UnityAssertBits(const long mask,
|
581
|
+
const long expected,
|
582
|
+
const long actual,
|
583
|
+
const char* msg,
|
584
|
+
const unsigned short lineNumber);
|
585
|
+
|
586
|
+
void UnityAssertEqualString(const char* expected,
|
587
|
+
const char* actual,
|
588
|
+
const char* msg,
|
589
|
+
const unsigned short lineNumber );
|
590
|
+
|
591
|
+
void UnityAssertEqualMemory(const void* expected,
|
592
|
+
const void* actual,
|
593
|
+
unsigned long length,
|
594
|
+
const char* msg,
|
595
|
+
const unsigned short lineNumber );
|
596
|
+
|
597
|
+
void UnityAssertEqualMemoryArray(const void* expected,
|
598
|
+
const void* actual,
|
599
|
+
unsigned long length,
|
600
|
+
unsigned long num_elements,
|
601
|
+
const char* msg,
|
602
|
+
const unsigned short lineNumber );
|
603
|
+
|
604
|
+
void UnityAssertNumbersWithin(const long delta,
|
605
|
+
const long expected,
|
606
|
+
const long actual,
|
607
|
+
const char* msg,
|
608
|
+
const unsigned short lineNumber);
|
609
|
+
|
610
|
+
void UnityAssertNumbersUnsignedWithin(const unsigned long delta,
|
611
|
+
const unsigned long expected,
|
612
|
+
const unsigned long actual,
|
613
|
+
const char* msg,
|
614
|
+
const unsigned short lineNumber);
|
615
|
+
|
616
|
+
void UnityFail(const char* message, const long line);
|
617
|
+
|
618
|
+
void UnityIgnore(const char* message, const long line);
|
619
|
+
|
620
|
+
|
621
|
+
void UnityAssertFloatsWithin(const _UF delta,
|
622
|
+
const _UF expected,
|
623
|
+
const _UF actual,
|
624
|
+
const char* msg,
|
625
|
+
const unsigned short lineNumber);
|
626
|
+
# 2 "test/system/a_project/test/test_a_file.c" 2
|
627
|
+
# 1 "test/system/a_project/include/stuff.h" 1
|
628
|
+
|
629
|
+
int subtract(int a, int b);
|
630
|
+
# 3 "test/system/a_project/test/test_a_file.c" 2
|
631
|
+
# 1 "test/system/a_project/build/mocks/mock_another_file.h" 1
|
632
|
+
|
633
|
+
|
634
|
+
|
635
|
+
|
636
|
+
# 1 "test/system/a_project/include/another_file.h" 1
|
637
|
+
|
638
|
+
unsigned int another_function(unsigned int a);
|
639
|
+
# 6 "test/system/a_project/build/mocks/mock_another_file.h" 2
|
640
|
+
|
641
|
+
void mock_another_file_Init(void);
|
642
|
+
void mock_another_file_Destroy(void);
|
643
|
+
void mock_another_file_Verify(void);
|
644
|
+
|
645
|
+
|
646
|
+
|
647
|
+
|
648
|
+
void another_function_ExpectAndReturn(unsigned int a, unsigned int cmock_to_return);
|
649
|
+
# 4 "test/system/a_project/test/test_a_file.c" 2
|
650
|
+
# 1 "test/system/a_project/include/a_file.h" 1
|
651
|
+
|
652
|
+
void a_function(void);
|
653
|
+
# 5 "test/system/a_project/test/test_a_file.c" 2
|
654
|
+
|
655
|
+
|
656
|
+
void setUp(void) {}
|
657
|
+
void tearDown(void) {}
|
658
|
+
|
659
|
+
|
660
|
+
void test_a_single_thing(void)
|
661
|
+
{
|
662
|
+
{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityIgnore(("pay no attention to the test behind the curtain"), (unsigned short)13); {longjmp(Unity.AbortFrame, 1);}; };
|
663
|
+
}
|
664
|
+
|
665
|
+
void test_another_thing ( void )
|
666
|
+
{
|
667
|
+
{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityIgnore(("pay no attention to the test behind the curtain"), (unsigned short)18); {longjmp(Unity.AbortFrame, 1);}; };
|
668
|
+
}
|
669
|
+
|
670
|
+
void test_some_non_void_param_stuff()
|
671
|
+
{
|
672
|
+
{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityIgnore(("pay no attention to the test behind the curtain"), (unsigned short)23); {longjmp(Unity.AbortFrame, 1);}; };
|
673
|
+
}
|
674
|
+
|
675
|
+
void
|
676
|
+
test_some_multiline_test_case_action
|
677
|
+
(void)
|
678
|
+
{
|
679
|
+
{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityIgnore(("pay no attention to the test behind the curtain"), (unsigned short)30); {longjmp(Unity.AbortFrame, 1);}; };
|
680
|
+
}
|
681
|
+
|
682
|
+
void test_success(void)
|
683
|
+
{
|
684
|
+
if (1) {} else {{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityFail((((void *)0)), (unsigned short)35); {longjmp(Unity.AbortFrame, 1);}; };};
|
685
|
+
}
|
686
|
+
].left_margin(0)
|
687
|
+
|
688
|
+
|
689
|
+
expected_extraction_contents = %Q[
|
690
|
+
|
691
|
+
void setUp(void) {}
|
692
|
+
void tearDown(void) {}
|
693
|
+
|
694
|
+
|
695
|
+
void test_a_single_thing(void)
|
696
|
+
{
|
697
|
+
{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityIgnore(("pay no attention to the test behind the curtain"), (unsigned short)13); {longjmp(Unity.AbortFrame, 1);}; };
|
698
|
+
}
|
699
|
+
|
700
|
+
void test_another_thing ( void )
|
701
|
+
{
|
702
|
+
{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityIgnore(("pay no attention to the test behind the curtain"), (unsigned short)18); {longjmp(Unity.AbortFrame, 1);}; };
|
703
|
+
}
|
704
|
+
|
705
|
+
void test_some_non_void_param_stuff()
|
706
|
+
{
|
707
|
+
{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityIgnore(("pay no attention to the test behind the curtain"), (unsigned short)23); {longjmp(Unity.AbortFrame, 1);}; };
|
708
|
+
}
|
709
|
+
|
710
|
+
void
|
711
|
+
test_some_multiline_test_case_action
|
712
|
+
(void)
|
713
|
+
{
|
714
|
+
{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityIgnore(("pay no attention to the test behind the curtain"), (unsigned short)30); {longjmp(Unity.AbortFrame, 1);}; };
|
715
|
+
}
|
716
|
+
|
717
|
+
void test_success(void)
|
718
|
+
{
|
719
|
+
if (1) {} else {{ Unity.TestFile="test/system/a_project/test/test_a_file.c"; UnityFail((((void *)0)), (unsigned short)35); {longjmp(Unity.AbortFrame, 1);}; };};
|
720
|
+
}
|
721
|
+
].left_margin(0)
|
722
|
+
|
723
|
+
|
724
|
+
@file_wrapper.expects.readlines('project/build/preprocess/test_a_file.c').returns(preprocessed_file_contents.split("\n"))
|
725
|
+
|
726
|
+
assert_equal(
|
727
|
+
expected_extraction_contents.split("\n"),
|
728
|
+
@preprocessinator_extractor.extract_base_file_from_preprocessed_expansion('project/build/preprocess/test_a_file.c'))
|
729
|
+
end
|
730
|
+
|
731
|
+
end
|