ceedling 0.9.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/GIT_COMMIT_SHA +1 -0
- data/Gemfile +23 -2
- data/Gemfile.lock +50 -0
- data/README.md +728 -42
- data/Rakefile +21 -75
- data/assets/ceedling +9 -0
- data/assets/ceedling.cmd +1 -0
- data/assets/default_gitignore +7 -0
- data/assets/example_file.c +16 -0
- data/assets/example_file.h +15 -0
- data/assets/example_file_call.c +13 -0
- data/assets/example_file_call.h +13 -0
- data/assets/project.yml +402 -0
- data/assets/test_example_file.c +20 -0
- data/assets/test_example_file_boom.c +20 -0
- data/assets/test_example_file_crash.c +25 -0
- data/assets/test_example_file_success.c +21 -0
- data/assets/test_example_file_unity_printf.c +19 -0
- data/assets/test_example_file_verbose.c +19 -0
- data/assets/test_example_file_with_mock.c +20 -0
- data/assets/test_example_with_parameterized_tests.c +28 -0
- data/assets/tests_with_defines/src/adc_hardware.c +18 -0
- data/assets/tests_with_defines/src/adc_hardware.h +13 -0
- data/assets/tests_with_defines/src/adc_hardware_configurator.c +18 -0
- data/assets/tests_with_defines/src/adc_hardware_configurator.h +17 -0
- data/assets/tests_with_defines/test/test_adc_hardware.c +28 -0
- data/assets/tests_with_defines/test/test_adc_hardware_special.c +28 -0
- data/assets/tests_with_preprocessing/src/adc_hardwareA.c +17 -0
- data/assets/tests_with_preprocessing/src/adc_hardwareA.h +13 -0
- data/assets/tests_with_preprocessing/src/adc_hardwareB.c +14 -0
- data/assets/tests_with_preprocessing/src/adc_hardwareB.h +13 -0
- data/assets/tests_with_preprocessing/src/adc_hardwareC.c +14 -0
- data/assets/tests_with_preprocessing/src/adc_hardwareC.h +13 -0
- data/assets/tests_with_preprocessing/src/adc_hardware_configuratorA.h +13 -0
- data/assets/tests_with_preprocessing/src/adc_hardware_configuratorB.h +15 -0
- data/assets/tests_with_preprocessing/src/adc_hardware_configuratorC.h +15 -0
- data/assets/tests_with_preprocessing/test/test_adc_hardwareA.c +41 -0
- data/assets/tests_with_preprocessing/test/test_adc_hardwareB.c +25 -0
- data/assets/tests_with_preprocessing/test/test_adc_hardwareC.c +29 -0
- data/assets/uncovered_example_file.c +12 -0
- data/bin/actions_wrapper.rb +50 -0
- data/bin/app_cfg.rb +134 -0
- data/bin/ceedling +146 -57
- data/bin/cli.rb +542 -0
- data/bin/cli_handler.rb +480 -0
- data/bin/cli_helper.rb +512 -0
- data/bin/configinator.rb +111 -0
- data/bin/mixinator.rb +136 -0
- data/bin/mixins.rb +12 -0
- data/bin/objects.yml +80 -0
- data/bin/path_validator.rb +54 -0
- data/bin/projectinator.rb +244 -0
- data/bin/versionator.rb +81 -0
- data/ceedling.gemspec +54 -14
- data/config/test_environment.rb +14 -0
- data/docs/BreakingChanges.md +260 -0
- data/docs/CODE_OF_CONDUCT.md +138 -0
- data/docs/CONTRIBUTING.md +240 -0
- data/docs/Ceedling Basic Porting.pdf +0 -0
- data/docs/Ceedling Managing Release Code.pdf +0 -0
- data/docs/Ceedling Working with IDEs.pdf +0 -0
- data/docs/CeedlingPacket.md +5651 -0
- data/docs/CeedlingPullRequestChecklist.md +24 -0
- data/docs/CeedlingUpgrade.md +83 -0
- data/docs/Changelog.md +493 -0
- data/docs/PluginDevelopmentGuide.md +764 -0
- data/docs/ReleaseNotes.md +353 -0
- data/docs/SECURITY.md +41 -0
- data/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/examples/temp_sensor/README.md +18 -0
- data/examples/temp_sensor/mixin/add_gcov.yml +51 -0
- data/examples/temp_sensor/mixin/add_unity_helper.yml +26 -0
- data/examples/temp_sensor/project.yml +355 -70
- data/examples/temp_sensor/src/AdcConductor.c +49 -42
- data/examples/temp_sensor/src/AdcConductor.h +20 -11
- data/examples/temp_sensor/src/AdcHardware.c +34 -27
- data/examples/temp_sensor/src/AdcHardware.h +18 -11
- data/examples/temp_sensor/src/AdcHardwareConfigurator.c +25 -18
- data/examples/temp_sensor/src/AdcHardwareConfigurator.h +17 -10
- data/examples/temp_sensor/src/AdcModel.c +40 -33
- data/examples/temp_sensor/src/AdcModel.h +20 -13
- data/examples/temp_sensor/src/AdcTemperatureSensor.c +58 -51
- data/examples/temp_sensor/src/AdcTemperatureSensor.h +17 -10
- data/examples/temp_sensor/src/Executor.c +32 -25
- data/examples/temp_sensor/src/Executor.h +16 -9
- data/examples/temp_sensor/src/IntrinsicsWrapper.c +25 -18
- data/examples/temp_sensor/src/IntrinsicsWrapper.h +14 -7
- data/examples/temp_sensor/src/Main.c +53 -46
- data/examples/temp_sensor/src/Main.h +14 -7
- data/examples/temp_sensor/src/Model.c +17 -10
- data/examples/temp_sensor/src/Model.h +15 -8
- data/examples/temp_sensor/src/ModelConfig.h +14 -7
- data/examples/temp_sensor/src/TaskScheduler.c +79 -72
- data/examples/temp_sensor/src/TaskScheduler.h +18 -11
- data/examples/temp_sensor/src/TemperatureCalculator.c +38 -27
- data/examples/temp_sensor/src/TemperatureCalculator.h +15 -6
- data/examples/temp_sensor/src/TemperatureFilter.c +45 -39
- data/examples/temp_sensor/src/TemperatureFilter.h +17 -10
- data/examples/temp_sensor/src/TimerConductor.c +22 -15
- data/examples/temp_sensor/src/TimerConductor.h +16 -9
- data/examples/temp_sensor/src/TimerConfigurator.c +58 -51
- data/examples/temp_sensor/src/TimerConfigurator.h +22 -15
- data/examples/temp_sensor/src/TimerHardware.c +22 -15
- data/examples/temp_sensor/src/TimerHardware.h +15 -8
- data/examples/temp_sensor/src/TimerInterruptConfigurator.c +62 -55
- data/examples/temp_sensor/src/TimerInterruptConfigurator.h +20 -13
- data/examples/temp_sensor/src/TimerInterruptHandler.c +32 -25
- data/examples/temp_sensor/src/TimerInterruptHandler.h +17 -10
- data/examples/temp_sensor/src/TimerModel.c +16 -9
- data/examples/temp_sensor/src/TimerModel.h +15 -8
- data/examples/temp_sensor/src/Types.h +97 -103
- data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +25 -18
- data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +15 -6
- data/examples/temp_sensor/src/UsartConductor.c +28 -21
- data/examples/temp_sensor/src/UsartConductor.h +14 -7
- data/examples/temp_sensor/src/UsartConfigurator.c +46 -39
- data/examples/temp_sensor/src/UsartConfigurator.h +20 -13
- data/examples/temp_sensor/src/UsartHardware.c +29 -34
- data/examples/temp_sensor/src/UsartHardware.h +16 -10
- data/examples/temp_sensor/src/UsartModel.c +41 -34
- data/examples/temp_sensor/src/UsartModel.h +17 -10
- data/examples/temp_sensor/src/UsartPutChar.c +23 -16
- data/examples/temp_sensor/src/UsartPutChar.h +15 -8
- data/examples/temp_sensor/src/UsartTransmitBufferStatus.c +14 -7
- data/examples/temp_sensor/src/UsartTransmitBufferStatus.h +15 -8
- data/examples/temp_sensor/test/TestExecutor.c +43 -0
- data/examples/temp_sensor/test/TestMain.c +31 -0
- data/examples/temp_sensor/test/TestModel.c +27 -0
- data/examples/temp_sensor/test/TestTaskScheduler.c +111 -0
- data/examples/temp_sensor/test/TestTemperatureCalculator.c +43 -0
- data/examples/temp_sensor/test/TestTemperatureFilter.c +86 -0
- data/examples/temp_sensor/test/TestTimerConductor.c +39 -0
- data/examples/temp_sensor/test/TestTimerHardware.c +33 -0
- data/examples/temp_sensor/test/TestTimerIntegrated.c +53 -0
- data/examples/temp_sensor/test/TestTimerModel.c +25 -0
- data/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +28 -0
- data/examples/temp_sensor/test/TestUsartConductor.c +47 -0
- data/examples/temp_sensor/test/TestUsartHardware.c +43 -0
- data/examples/temp_sensor/test/TestUsartIntegrated.c +63 -0
- data/examples/temp_sensor/test/TestUsartModel.c +47 -0
- data/examples/temp_sensor/test/adc/TestAdcConductor.c +128 -0
- data/examples/temp_sensor/test/adc/TestAdcHardware.c +51 -0
- data/examples/temp_sensor/test/adc/TestAdcModel.c +40 -0
- data/examples/temp_sensor/test/support/UnityHelper.c +19 -10
- data/examples/temp_sensor/test/support/UnityHelper.h +17 -12
- data/lib/ceedling/application.rb +26 -0
- data/lib/ceedling/backtrace.gdb +5 -0
- data/lib/ceedling/build_batchinator.rb +113 -0
- data/lib/ceedling/cacheinator.rb +53 -0
- data/lib/ceedling/cacheinator_helper.rb +41 -0
- data/lib/ceedling/config_matchinator.rb +192 -0
- data/lib/ceedling/config_walkinator.rb +35 -0
- data/lib/ceedling/configurator.rb +735 -0
- data/lib/ceedling/configurator_builder.rb +558 -0
- data/lib/ceedling/configurator_plugins.rb +165 -0
- data/lib/ceedling/configurator_setup.rb +799 -0
- data/lib/ceedling/configurator_validator.rb +203 -0
- data/lib/ceedling/constants.rb +160 -0
- data/lib/ceedling/defaults.rb +477 -0
- data/lib/ceedling/defineinator.rb +90 -0
- data/lib/ceedling/dependinator.rb +31 -0
- data/lib/ceedling/encodinator.rb +26 -0
- data/lib/ceedling/erb_wrapper.rb +16 -0
- data/lib/ceedling/exceptions.rb +47 -0
- data/lib/ceedling/file_finder.rb +183 -0
- data/lib/ceedling/file_finder_helper.rb +116 -0
- data/lib/ceedling/file_path_collection_utils.rb +137 -0
- data/lib/ceedling/file_path_utils.rb +190 -0
- data/lib/ceedling/file_system_wrapper.rb +16 -0
- data/lib/ceedling/file_wrapper.rb +122 -0
- data/lib/ceedling/flaginator.rb +65 -0
- data/lib/ceedling/generator.rb +365 -0
- data/lib/ceedling/generator_helper.rb +78 -0
- data/lib/ceedling/generator_mocks.rb +41 -0
- data/lib/ceedling/generator_test_results.rb +270 -0
- data/lib/ceedling/generator_test_results_backtrace.rb +215 -0
- data/lib/ceedling/generator_test_results_sanity_checker.rb +70 -0
- data/lib/ceedling/generator_test_runner.rb +84 -0
- data/lib/ceedling/include_pathinator.rb +83 -0
- data/lib/ceedling/loginator.rb +326 -0
- data/lib/ceedling/makefile.rb +52 -0
- data/lib/ceedling/objects.yml +352 -0
- data/lib/ceedling/parsing_parcels.rb +77 -0
- data/lib/ceedling/plugin.rb +30 -0
- data/lib/ceedling/plugin_manager.rb +133 -0
- data/lib/ceedling/plugin_manager_helper.rb +25 -0
- data/lib/ceedling/plugin_reportinator.rb +139 -0
- data/lib/ceedling/plugin_reportinator_helper.rb +84 -0
- data/lib/ceedling/preprocessinator.rb +239 -0
- data/lib/ceedling/preprocessinator_extractor.rb +257 -0
- data/lib/ceedling/preprocessinator_file_handler.rb +229 -0
- data/lib/ceedling/preprocessinator_includes_handler.rb +382 -0
- data/lib/ceedling/rake_utils.rb +23 -0
- data/lib/ceedling/rake_wrapper.rb +40 -0
- data/lib/ceedling/rakefile.rb +145 -0
- data/lib/ceedling/release_invoker.rb +68 -0
- data/lib/ceedling/release_invoker_helper.rb +12 -0
- data/lib/ceedling/reportinator.rb +124 -0
- data/lib/ceedling/rules_release.rake +107 -0
- data/lib/ceedling/rules_tests.rake +62 -0
- data/lib/ceedling/setupinator.rb +199 -0
- data/lib/ceedling/stream_wrapper.rb +51 -0
- data/lib/ceedling/system_utils.rb +43 -0
- data/lib/ceedling/system_wrapper.rb +150 -0
- data/lib/ceedling/task_invoker.rb +70 -0
- data/lib/ceedling/tasks_base.rake +39 -0
- data/lib/ceedling/tasks_filesystem.rake +99 -0
- data/lib/ceedling/tasks_release.rake +43 -0
- data/lib/ceedling/tasks_tests.rake +71 -0
- data/lib/ceedling/test_context_extractor.rb +379 -0
- data/lib/ceedling/test_invoker.rb +506 -0
- data/lib/ceedling/test_invoker_helper.rb +347 -0
- data/lib/ceedling/test_runner_manager.rb +47 -0
- data/lib/ceedling/tool_executor.rb +233 -0
- data/lib/ceedling/tool_executor_helper.rb +107 -0
- data/lib/ceedling/tool_validator.rb +149 -0
- data/lib/ceedling/verbosinator.rb +22 -0
- data/lib/ceedling/yaml_wrapper.rb +37 -0
- data/lib/ceedling.rb +12 -4
- data/lib/version.rb +24 -0
- data/license.txt +24 -0
- data/plugins/beep/README.md +133 -0
- data/plugins/beep/config/defaults.yml +12 -0
- data/plugins/beep/config/defaults_beep.rb +67 -0
- data/plugins/beep/lib/beep.rb +85 -0
- data/plugins/bullseye/README.md +81 -0
- data/plugins/bullseye/bullseye.rake +180 -0
- data/plugins/bullseye/config/defaults.yml +66 -0
- data/plugins/bullseye/lib/bullseye.rb +203 -0
- data/plugins/command_hooks/README.md +241 -0
- data/plugins/command_hooks/lib/command_hooks.rb +231 -0
- data/plugins/compile_commands_json_db/README.md +40 -0
- data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +51 -0
- data/plugins/dependencies/README.md +321 -0
- data/plugins/dependencies/Rakefile +188 -0
- data/plugins/dependencies/config/defaults.yml +78 -0
- data/plugins/dependencies/dependencies.rake +157 -0
- data/plugins/dependencies/example/boss/project.yml +231 -0
- data/plugins/dependencies/example/boss/src/boss.c +80 -0
- data/plugins/dependencies/example/boss/src/boss.h +16 -0
- data/plugins/dependencies/example/boss/src/main.c +45 -0
- data/plugins/dependencies/example/boss/test/test_boss.c +118 -0
- data/plugins/dependencies/example/supervisor/project.yml +165 -0
- data/plugins/dependencies/example/supervisor/src/supervisor.c +45 -0
- data/plugins/dependencies/example/supervisor/src/supervisor.h +14 -0
- data/plugins/dependencies/example/supervisor/test/test_supervisor.c +58 -0
- data/plugins/dependencies/example/version.tar.gzip +0 -0
- data/plugins/dependencies/example/workerbees.zip +0 -0
- data/plugins/dependencies/lib/dependencies.rb +531 -0
- data/plugins/fff/README.md +242 -0
- data/plugins/fff/Rakefile +26 -0
- data/plugins/fff/config/fff.yml +13 -0
- data/plugins/fff/examples/fff_example/project.yml +145 -0
- data/plugins/fff/examples/fff_example/src/bar.c +8 -0
- data/plugins/fff/examples/fff_example/src/bar.h +21 -0
- data/plugins/fff/examples/fff_example/src/custom_types.h +13 -0
- data/plugins/fff/examples/fff_example/src/display.c +14 -0
- data/plugins/fff/examples/fff_example/src/display.h +23 -0
- data/plugins/fff/examples/fff_example/src/event_processor.c +100 -0
- data/plugins/fff/examples/fff_example/src/event_processor.h +18 -0
- data/plugins/fff/examples/fff_example/src/foo.c +23 -0
- data/plugins/fff/examples/fff_example/src/foo.h +15 -0
- data/plugins/fff/examples/fff_example/src/subfolder/zzz.c +8 -0
- data/plugins/fff/examples/fff_example/src/subfolder/zzz.h +13 -0
- data/plugins/fff/examples/fff_example/test/test_event_processor.c +160 -0
- data/plugins/fff/examples/fff_example/test/test_foo.c +54 -0
- data/plugins/fff/lib/fff.rb +90 -0
- data/plugins/fff/lib/fff_mock_generator.rb +172 -0
- data/plugins/fff/spec/fff_mock_header_generator_spec.rb +311 -0
- data/plugins/fff/spec/fff_mock_source_generator_spec.rb +156 -0
- data/plugins/fff/spec/header_generator.rb +58 -0
- data/plugins/fff/spec/spec_helper.rb +103 -0
- data/plugins/fff/src/fff_unity_helper.h +40 -0
- data/plugins/fff/vendor/fff/LICENSE +25 -0
- data/plugins/fff/vendor/fff/Makefile +10 -0
- data/plugins/fff/vendor/fff/README.md +454 -0
- data/plugins/fff/vendor/fff/buildandtest +15 -0
- data/plugins/fff/vendor/fff/examples/Makefile +7 -0
- data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +64 -0
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +32 -0
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +21 -0
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +58 -0
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +70 -0
- data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +25 -0
- data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +23 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +27 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +25 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +67 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +31 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +56 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +22 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +191 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +144 -0
- data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +42 -0
- data/plugins/fff/vendor/fff/fakegen.rb +428 -0
- data/plugins/fff/vendor/fff/fff.h +5122 -0
- data/plugins/fff/vendor/fff/gtest/Makefile +22 -0
- data/plugins/fff/vendor/fff/gtest/gtest-all.cc +9118 -0
- data/plugins/fff/vendor/fff/gtest/gtest-main.cc +6 -0
- data/plugins/fff/vendor/fff/gtest/gtest.h +19547 -0
- data/plugins/fff/vendor/fff/test/Makefile +81 -0
- data/plugins/fff/vendor/fff/test/c_test_framework.h +25 -0
- data/plugins/fff/vendor/fff/test/fff_test_c.c +116 -0
- data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +53 -0
- data/plugins/fff/vendor/fff/test/fff_test_global_c.c +84 -0
- data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +31 -0
- data/plugins/fff/vendor/fff/test/global_fakes.c +21 -0
- data/plugins/fff/vendor/fff/test/global_fakes.h +47 -0
- data/plugins/fff/vendor/fff/test/test_cases.include +276 -0
- data/plugins/gcov/README.md +893 -0
- data/plugins/gcov/config/defaults.yml +30 -0
- data/plugins/gcov/config/defaults_gcov.rb +109 -0
- data/plugins/gcov/gcov.rake +100 -0
- data/plugins/gcov/lib/gcov.rb +282 -0
- data/plugins/gcov/lib/gcov_constants.rb +63 -0
- data/plugins/gcov/lib/gcovr_reportinator.rb +425 -0
- data/plugins/gcov/lib/reportgenerator_reportinator.rb +220 -0
- data/plugins/gcov/lib/reportinator_helper.rb +30 -0
- data/plugins/module_generator/README.md +267 -0
- data/plugins/module_generator/Rakefile +232 -0
- data/plugins/module_generator/assets/stubby1.h +13 -0
- data/plugins/module_generator/assets/stubby2.h +15 -0
- data/plugins/module_generator/config/module_generator.yml +13 -0
- data/plugins/module_generator/example/project.yml +174 -0
- data/plugins/module_generator/lib/module_generator.rb +122 -0
- data/plugins/module_generator/module_generator.rake +69 -0
- data/plugins/report_build_warnings_log/README.md +40 -0
- data/plugins/report_build_warnings_log/config/defaults.yml +12 -0
- data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +143 -0
- data/plugins/report_tests_gtestlike_stdout/README.md +96 -0
- data/plugins/report_tests_gtestlike_stdout/assets/template.erb +83 -0
- data/plugins/report_tests_gtestlike_stdout/config/report_tests_gtestlike_stdout.yml +11 -0
- data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +69 -0
- data/plugins/report_tests_ide_stdout/README.md +62 -0
- data/plugins/report_tests_ide_stdout/config/report_tests_ide_stdout.yml +11 -0
- data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +72 -0
- data/plugins/report_tests_log_factory/README.md +446 -0
- data/plugins/report_tests_log_factory/config/defaults.yml +11 -0
- data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +100 -0
- data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +181 -0
- data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +72 -0
- data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +197 -0
- data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +135 -0
- data/plugins/report_tests_log_factory/lib/tests_reporter.rb +70 -0
- data/plugins/report_tests_log_factory/sample_html_report.png +0 -0
- data/plugins/report_tests_pretty_stdout/README.md +54 -0
- data/plugins/report_tests_pretty_stdout/assets/template.erb +63 -0
- data/plugins/report_tests_pretty_stdout/config/report_tests_pretty_stdout.yml +11 -0
- data/plugins/report_tests_pretty_stdout/lib/report_tests_pretty_stdout.rb +73 -0
- data/plugins/report_tests_raw_output_log/README.md +50 -0
- data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +129 -0
- data/plugins/report_tests_teamcity_stdout/README.md +94 -0
- data/plugins/report_tests_teamcity_stdout/config/defaults.yml +12 -0
- data/plugins/report_tests_teamcity_stdout/config/report_tests_teamcity_stdout.yml +11 -0
- data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +163 -0
- data/spec/config_walkinator_spec.rb +62 -0
- data/spec/configurator_builder_spec.rb +16 -0
- data/spec/configurator_helper_spec.rb +12 -0
- data/spec/configurator_spec.rb +18 -0
- data/spec/file_finder_helper_spec.rb +73 -0
- data/spec/gcov/gcov_deployment_spec.rb +135 -0
- data/spec/gcov/gcov_test_cases_spec.rb +344 -0
- data/spec/generator_test_results_sanity_checker_spec.rb +104 -0
- data/spec/generator_test_results_spec.rb +131 -0
- data/spec/manual/stress_test.rb +31 -0
- data/spec/parsing_parcels_spec.rb +66 -0
- data/spec/preprocessinator_extractor_spec.rb +408 -0
- data/spec/preprocessinator_includes_handler_spec.rb +289 -0
- data/spec/reportinator_spec.rb +26 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/spec_system_helper.rb +994 -0
- data/spec/support/other_target.yml +7 -0
- data/spec/support/target.yml +7 -0
- data/spec/support/test_example.fail +25 -0
- data/spec/support/test_example.pass +25 -0
- data/spec/support/test_example_empty.pass +15 -0
- data/spec/support/test_example_ignore.pass +25 -0
- data/spec/support/test_example_mangled.pass +22 -0
- data/spec/support/test_example_with_time.pass +25 -0
- data/spec/system/deployment_as_gem_spec.rb +76 -0
- data/spec/system/deployment_as_vendor_spec.rb +123 -0
- data/spec/system/example_temp_sensor_spec.rb +264 -0
- data/spec/system/upgrade_as_vendor_spec.rb +68 -0
- data/spec/system_utils_spec.rb +65 -0
- data/spec/test_context_extractor_spec.rb +328 -0
- data/spec/tool_executor_helper_spec.rb +219 -0
- data/spec/uncategorized_specs_spec.rb +15 -0
- data/vendor/c_exception/README.md +236 -0
- data/vendor/c_exception/docs/CException.md +289 -0
- data/vendor/c_exception/docs/CODE_OF_CONDUCT.md +138 -0
- data/vendor/c_exception/docs/CONTRIBUTING.md +238 -0
- data/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/c_exception/lib/CException.c +59 -0
- data/vendor/c_exception/lib/CException.h +122 -0
- data/vendor/c_exception/lib/meson.build +11 -0
- data/vendor/c_exception/license.txt +22 -0
- data/vendor/c_exception/meson.build +14 -0
- data/vendor/c_exception/project.yml +263 -0
- data/vendor/c_exception/test/TestException.c +398 -0
- data/vendor/c_exception/test/support/CExceptionConfig.h +53 -0
- data/vendor/cmock/Gemfile +1 -0
- data/vendor/cmock/LICENSE.txt +21 -0
- data/vendor/cmock/README.md +55 -0
- data/vendor/cmock/cmock.gemspec +34 -0
- data/vendor/cmock/config/production_environment.rb +13 -0
- data/vendor/cmock/config/test_environment.rb +17 -0
- data/vendor/cmock/docs/CMockChangeLog.md +166 -0
- data/vendor/cmock/docs/CMockKnownIssues.md +13 -0
- data/vendor/cmock/docs/CMock_ArgumentValidation.md +274 -0
- data/vendor/cmock/docs/CMock_Summary.md +866 -0
- data/vendor/cmock/docs/CODE_OF_CONDUCT.md +138 -0
- data/vendor/cmock/docs/CONTRIBUTING.md +238 -0
- data/vendor/cmock/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/examples/make_example/Makefile +30 -0
- data/vendor/cmock/examples/make_example/src/foo.c +12 -0
- data/vendor/cmock/examples/make_example/src/foo.h +12 -0
- data/vendor/cmock/examples/make_example/src/main.c +22 -0
- data/vendor/cmock/examples/make_example/test/test_foo.c +24 -0
- data/vendor/cmock/examples/make_example/test/test_main.c +22 -0
- data/vendor/cmock/examples/temp_sensor/rakefile.rb +49 -0
- data/vendor/cmock/examples/temp_sensor/rakefile_helper.rb +280 -0
- data/vendor/cmock/examples/temp_sensor/src/AT91SAM7X256.h +2564 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcConductor.c +49 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcConductor.h +18 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcHardware.c +34 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcHardware.h +16 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.c +25 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.h +17 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcModel.c +40 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcModel.h +20 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.c +58 -0
- data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.h +17 -0
- data/vendor/cmock/examples/temp_sensor/src/Executor.c +32 -0
- data/vendor/cmock/examples/temp_sensor/src/Executor.h +16 -0
- data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.c +25 -0
- data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.h +14 -0
- data/vendor/cmock/examples/temp_sensor/src/Main.c +53 -0
- data/vendor/cmock/examples/temp_sensor/src/Main.h +14 -0
- data/vendor/cmock/examples/temp_sensor/src/Model.c +17 -0
- data/vendor/cmock/examples/temp_sensor/src/Model.h +15 -0
- data/vendor/cmock/examples/temp_sensor/src/ModelConfig.h +14 -0
- data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.c +79 -0
- data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.h +18 -0
- data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.c +34 -0
- data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.h +13 -0
- data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.c +49 -0
- data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.h +17 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerConductor.c +22 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerConductor.h +16 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.c +58 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.h +22 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerHardware.c +22 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerHardware.h +15 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.c +62 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.h +20 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.c +32 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.h +17 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerModel.c +16 -0
- data/vendor/cmock/examples/temp_sensor/src/TimerModel.h +15 -0
- data/vendor/cmock/examples/temp_sensor/src/Types.h +110 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +25 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +13 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartConductor.c +28 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartConductor.h +14 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.c +46 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.h +20 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartHardware.c +29 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartHardware.h +16 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartModel.c +41 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartModel.h +17 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.c +23 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.h +15 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.c +14 -0
- data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.h +15 -0
- data/vendor/cmock/examples/temp_sensor/targets/gcc.yml +97 -0
- data/vendor/cmock/examples/temp_sensor/targets/iar_v4.yml +143 -0
- data/vendor/cmock/examples/temp_sensor/targets/iar_v5.yml +132 -0
- data/vendor/cmock/examples/temp_sensor/test/TestAdcConductor.c +128 -0
- data/vendor/cmock/examples/temp_sensor/test/TestAdcHardware.c +51 -0
- data/vendor/cmock/examples/temp_sensor/test/TestAdcHardwareConfigurator.c +50 -0
- data/vendor/cmock/examples/temp_sensor/test/TestAdcModel.c +40 -0
- data/vendor/cmock/examples/temp_sensor/test/TestAdcTemperatureSensor.c +54 -0
- data/vendor/cmock/examples/temp_sensor/test/TestExecutor.c +43 -0
- data/vendor/cmock/examples/temp_sensor/test/TestMain.c +31 -0
- data/vendor/cmock/examples/temp_sensor/test/TestModel.c +27 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTaskScheduler.c +111 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTemperatureCalculator.c +40 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTemperatureFilter.c +76 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTimerConductor.c +39 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTimerConfigurator.c +119 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTimerHardware.c +33 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptConfigurator.c +85 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptHandler.c +73 -0
- data/vendor/cmock/examples/temp_sensor/test/TestTimerModel.c +25 -0
- data/vendor/cmock/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +28 -0
- data/vendor/cmock/examples/temp_sensor/test/TestUsartConductor.c +47 -0
- data/vendor/cmock/examples/temp_sensor/test/TestUsartConfigurator.c +84 -0
- data/vendor/cmock/examples/temp_sensor/test/TestUsartHardware.c +44 -0
- data/vendor/cmock/examples/temp_sensor/test/TestUsartModel.c +47 -0
- data/vendor/cmock/examples/temp_sensor/test/TestUsartPutChar.c +50 -0
- data/vendor/cmock/examples/temp_sensor/test/TestUsartTransmitBufferStatus.c +29 -0
- data/vendor/cmock/lib/cmock.rb +127 -0
- data/vendor/cmock/lib/cmock_config.rb +184 -0
- data/vendor/cmock/lib/cmock_file_writer.rb +48 -0
- data/vendor/cmock/lib/cmock_generator.rb +379 -0
- data/vendor/cmock/lib/cmock_generator_plugin_array.rb +68 -0
- data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +88 -0
- data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +50 -0
- data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +105 -0
- data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +52 -0
- data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +90 -0
- data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +49 -0
- data/vendor/cmock/lib/cmock_generator_plugin_ignore_stateless.rb +87 -0
- data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +102 -0
- data/vendor/cmock/lib/cmock_generator_utils.rb +251 -0
- data/vendor/cmock/lib/cmock_header_parser.rb +629 -0
- data/vendor/cmock/lib/cmock_plugin_manager.rb +51 -0
- data/vendor/cmock/lib/cmock_unityhelper_parser.rb +82 -0
- data/vendor/cmock/lib/cmock_version.rb +29 -0
- data/vendor/cmock/meson.build +17 -0
- data/vendor/cmock/scripts/create_makefile.rb +210 -0
- data/vendor/cmock/scripts/create_mock.rb +15 -0
- data/vendor/cmock/scripts/create_runner.rb +25 -0
- data/vendor/cmock/scripts/test_summary.rb +25 -0
- data/vendor/cmock/src/cmock.c +238 -0
- data/vendor/cmock/src/cmock.h +54 -0
- data/vendor/cmock/src/cmock_internals.h +98 -0
- data/vendor/cmock/src/meson.build +12 -0
- data/vendor/cmock/test/c/TestCMockC.c +340 -0
- data/vendor/cmock/test/c/TestCMockC.yml +21 -0
- data/vendor/cmock/test/c/TestCMockCDynamic.c +193 -0
- data/vendor/cmock/test/c/TestCMockCDynamic.yml +19 -0
- data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +43 -0
- data/vendor/cmock/test/c/TestCMockC_Runner.c +48 -0
- data/vendor/cmock/test/iar/iar_v4/Resource/SAM7_FLASH.mac +71 -0
- data/vendor/cmock/test/iar/iar_v4/Resource/SAM7_RAM.mac +94 -0
- data/vendor/cmock/test/iar/iar_v4/Resource/SAM7_SIM.mac +67 -0
- data/vendor/cmock/test/iar/iar_v4/Resource/at91SAM7X256_FLASH.xcl +185 -0
- data/vendor/cmock/test/iar/iar_v4/Resource/at91SAM7X256_RAM.xcl +185 -0
- data/vendor/cmock/test/iar/iar_v4/Resource/ioat91sam7x256.ddf +2259 -0
- data/vendor/cmock/test/iar/iar_v4/cmock_demo.dep +3691 -0
- data/vendor/cmock/test/iar/iar_v4/cmock_demo.ewd +1696 -0
- data/vendor/cmock/test/iar/iar_v4/cmock_demo.ewp +2581 -0
- data/vendor/cmock/test/iar/iar_v4/cmock_demo.eww +10 -0
- data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X-EK.h +68 -0
- data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.inc +2314 -0
- data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.rdf +4704 -0
- data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.tcl +3407 -0
- data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256_inc.h +2275 -0
- data/vendor/cmock/test/iar/iar_v4/incIAR/ioat91sam7x256.h +4387 -0
- data/vendor/cmock/test/iar/iar_v4/incIAR/lib_AT91SAM7X256.h +4211 -0
- data/vendor/cmock/test/iar/iar_v4/settings/cmock_demo.cspy.bat +32 -0
- data/vendor/cmock/test/iar/iar_v4/settings/cmock_demo.dbgdt +86 -0
- data/vendor/cmock/test/iar/iar_v4/settings/cmock_demo.dni +42 -0
- data/vendor/cmock/test/iar/iar_v4/settings/cmock_demo.wsdt +76 -0
- data/vendor/cmock/test/iar/iar_v4/srcIAR/Cstartup.s79 +266 -0
- data/vendor/cmock/test/iar/iar_v4/srcIAR/Cstartup_SAM7.c +105 -0
- data/vendor/cmock/test/iar/iar_v5/Resource/SAM7_FLASH.mac +71 -0
- data/vendor/cmock/test/iar/iar_v5/Resource/SAM7_RAM.mac +94 -0
- data/vendor/cmock/test/iar/iar_v5/Resource/SAM7_SIM.mac +67 -0
- data/vendor/cmock/test/iar/iar_v5/Resource/at91SAM7X256_FLASH.icf +43 -0
- data/vendor/cmock/test/iar/iar_v5/Resource/at91SAM7X256_RAM.icf +42 -0
- data/vendor/cmock/test/iar/iar_v5/cmock_demo.dep +4204 -0
- data/vendor/cmock/test/iar/iar_v5/cmock_demo.ewd +1906 -0
- data/vendor/cmock/test/iar/iar_v5/cmock_demo.ewp +2426 -0
- data/vendor/cmock/test/iar/iar_v5/cmock_demo.eww +26 -0
- data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X-EK.h +68 -0
- data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X256_inc.h +2275 -0
- data/vendor/cmock/test/iar/iar_v5/incIAR/lib_AT91SAM7X256.h +4211 -0
- data/vendor/cmock/test/iar/iar_v5/incIAR/project.h +37 -0
- data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +33 -0
- data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X.dbgdt +5 -0
- data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X.dni +18 -0
- data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X.wsdt +74 -0
- data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +12 -0
- data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo.cspy.bat +33 -0
- data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo.dbgdt +85 -0
- data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo.dni +44 -0
- data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo.wsdt +73 -0
- data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_Binary.jlink +12 -0
- data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +12 -0
- data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_RAM_Debug.jlink +12 -0
- data/vendor/cmock/test/iar/iar_v5/srcIAR/Cstartup.s +299 -0
- data/vendor/cmock/test/iar/iar_v5/srcIAR/Cstartup_SAM7.c +105 -0
- data/vendor/cmock/test/rakefile +150 -0
- data/vendor/cmock/test/rakefile_helper.rb +417 -0
- data/vendor/cmock/test/system/systest_generator.rb +206 -0
- data/vendor/cmock/test/system/test_compilation/callingconv.h +18 -0
- data/vendor/cmock/test/system/test_compilation/config.yml +17 -0
- data/vendor/cmock/test/system/test_compilation/const.h +44 -0
- data/vendor/cmock/test/system/test_compilation/inline.h +30 -0
- data/vendor/cmock/test/system/test_compilation/osek.h +282 -0
- data/vendor/cmock/test/system/test_compilation/parsing.h +99 -0
- data/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +382 -0
- data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +467 -0
- data/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +453 -0
- data/vendor/cmock/test/system/test_interactions/basic_expect_and_return.yml +131 -0
- data/vendor/cmock/test/system/test_interactions/const_primitives_handling.yml +94 -0
- data/vendor/cmock/test/system/test_interactions/doesnt_leave_details_behind.yml +315 -0
- data/vendor/cmock/test/system/test_interactions/enforce_strict_ordering.yml +254 -0
- data/vendor/cmock/test/system/test_interactions/expect_and_return_custom_types.yml +115 -0
- data/vendor/cmock/test/system/test_interactions/expect_and_return_treat_as.yml +180 -0
- data/vendor/cmock/test/system/test_interactions/expect_and_throw.yml +177 -0
- data/vendor/cmock/test/system/test_interactions/expect_any_args.yml +245 -0
- data/vendor/cmock/test/system/test_interactions/fancy_pointer_handling.yml +217 -0
- data/vendor/cmock/test/system/test_interactions/function_pointer_handling.yml +90 -0
- data/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +336 -0
- data/vendor/cmock/test/system/test_interactions/ignore_and_return_stateless.yml +332 -0
- data/vendor/cmock/test/system/test_interactions/ignore_strict_mock_calling.yml +44 -0
- data/vendor/cmock/test/system/test_interactions/newer_standards_stuff1.yml +59 -0
- data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_1.yml +98 -0
- data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_2.yml +66 -0
- data/vendor/cmock/test/system/test_interactions/out_of_memory.yml +72 -0
- data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +249 -0
- data/vendor/cmock/test/system/test_interactions/return_thru_ptr_and_expect_any_args.yml +242 -0
- data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +238 -0
- data/vendor/cmock/test/system/test_interactions/skeleton.yml +62 -0
- data/vendor/cmock/test/system/test_interactions/skeleton_update.yml +83 -0
- data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return.yml +284 -0
- data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return_with_plugins.yml +287 -0
- data/vendor/cmock/test/system/test_interactions/stubs_with_callbacks.yml +228 -0
- data/vendor/cmock/test/system/test_interactions/unity_64bit_support.yml +84 -0
- data/vendor/cmock/test/system/test_interactions/unity_ignores.yml +146 -0
- data/vendor/cmock/test/system/test_interactions/unity_void_pointer_compare.yml +98 -0
- data/vendor/cmock/test/system/test_interactions/wrong_expect_and_return.yml +149 -0
- data/vendor/cmock/test/targets/clang_strict.yml +97 -0
- data/vendor/cmock/test/targets/gcc.yml +65 -0
- data/vendor/cmock/test/targets/gcc_64.yml +65 -0
- data/vendor/cmock/test/targets/gcc_tiny.yml +87 -0
- data/vendor/cmock/test/targets/iar_arm_v4.yml +117 -0
- data/vendor/cmock/test/targets/iar_arm_v5.yml +102 -0
- data/vendor/cmock/test/test_helper.rb +45 -0
- data/vendor/cmock/test/unit/cmock_config_test.rb +127 -0
- data/vendor/cmock/test/unit/cmock_config_test.yml +14 -0
- data/vendor/cmock/test/unit/cmock_file_writer_test.rb +28 -0
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +706 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +145 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +282 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +109 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +189 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +71 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +205 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +117 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_stateless_test.rb +121 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +124 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +209 -0
- data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +404 -0
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +2886 -0
- data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +102 -0
- data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +224 -0
- data/vendor/cmock/vendor/behaviors/Manifest.txt +9 -0
- data/vendor/cmock/vendor/behaviors/Rakefile +19 -0
- data/vendor/cmock/vendor/behaviors/lib/behaviors/reporttask.rb +158 -0
- data/vendor/cmock/vendor/behaviors/lib/behaviors.rb +76 -0
- data/vendor/cmock/vendor/behaviors/test/behaviors_tasks_test.rb +73 -0
- data/vendor/cmock/vendor/behaviors/test/behaviors_test.rb +50 -0
- data/vendor/cmock/vendor/behaviors/test/tasks_test/Rakefile +19 -0
- data/vendor/cmock/vendor/behaviors/test/tasks_test/lib/user.rb +2 -0
- data/vendor/cmock/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -0
- data/vendor/cmock/vendor/c_exception/README.md +236 -0
- data/vendor/cmock/vendor/c_exception/docs/CException.md +289 -0
- data/vendor/cmock/vendor/c_exception/docs/CODE_OF_CONDUCT.md +138 -0
- data/vendor/cmock/vendor/c_exception/docs/CONTRIBUTING.md +238 -0
- data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/vendor/c_exception/lib/CException.c +59 -0
- data/vendor/cmock/vendor/c_exception/lib/CException.h +122 -0
- data/vendor/cmock/vendor/c_exception/lib/meson.build +11 -0
- data/vendor/cmock/vendor/c_exception/license.txt +22 -0
- data/vendor/cmock/vendor/c_exception/meson.build +14 -0
- data/vendor/cmock/vendor/c_exception/project.yml +263 -0
- data/vendor/cmock/vendor/c_exception/test/TestException.c +398 -0
- data/vendor/cmock/vendor/c_exception/test/support/CExceptionConfig.h +53 -0
- data/vendor/cmock/vendor/unity/CMakeLists.txt +172 -0
- data/vendor/cmock/vendor/unity/LICENSE.txt +21 -0
- data/vendor/cmock/vendor/unity/README.md +234 -0
- data/vendor/cmock/vendor/unity/auto/__init__.py +7 -0
- data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +120 -0
- data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +40 -0
- data/vendor/cmock/vendor/unity/auto/extract_version.py +22 -0
- data/vendor/cmock/vendor/unity/auto/generate_config.yml +43 -0
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +318 -0
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +547 -0
- data/vendor/cmock/vendor/unity/auto/parse_output.rb +390 -0
- data/vendor/cmock/vendor/unity/auto/run_test.erb +37 -0
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.py +161 -0
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +253 -0
- data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +28 -0
- data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +13 -0
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +140 -0
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +140 -0
- data/vendor/cmock/vendor/unity/auto/yaml_helper.rb +23 -0
- data/vendor/cmock/vendor/unity/docs/CODE_OF_CONDUCT.md +138 -0
- data/vendor/cmock/vendor/unity/docs/CONTRIBUTING.md +238 -0
- data/vendor/cmock/vendor/unity/docs/MesonGeneratorRunner.md +18 -0
- data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +187 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +860 -0
- data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +110 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +654 -0
- data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +242 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +533 -0
- data/vendor/cmock/vendor/unity/docs/UnityKnownIssues.md +13 -0
- data/vendor/cmock/vendor/unity/examples/example_1/makefile +73 -0
- data/vendor/cmock/vendor/unity/examples/example_1/meson.build +48 -0
- data/vendor/cmock/vendor/unity/examples/example_1/readme.txt +12 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +30 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +9 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +17 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +8 -0
- data/vendor/cmock/vendor/unity/examples/example_1/subprojects/unity.wrap +3 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +68 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +37 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
- data/vendor/cmock/vendor/unity/examples/example_2/makefile +72 -0
- data/vendor/cmock/vendor/unity/examples/example_2/readme.txt +5 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +30 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +9 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +17 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +8 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +71 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +40 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +16 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +18 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +19 -0
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +17 -0
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +19 -0
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +45 -0
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +255 -0
- data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +13 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +30 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +9 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +17 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +8 -0
- data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +54 -0
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +68 -0
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +37 -0
- data/vendor/cmock/vendor/unity/examples/example_4/meson.build +12 -0
- data/vendor/cmock/vendor/unity/examples/example_4/readme.txt +15 -0
- data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.c +30 -0
- data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.h +9 -0
- data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.c +17 -0
- data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.h +8 -0
- data/vendor/cmock/vendor/unity/examples/example_4/src/meson.build +16 -0
- data/vendor/cmock/vendor/unity/examples/example_4/subprojects/unity.wrap +6 -0
- data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode.c +69 -0
- data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode2.c +41 -0
- data/vendor/cmock/vendor/unity/examples/example_4/test/meson.build +7 -0
- data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -0
- data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -0
- data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/meson.build +13 -0
- data/vendor/cmock/vendor/unity/examples/unity_config.h +251 -0
- data/vendor/cmock/vendor/unity/extras/bdd/readme.md +40 -0
- data/vendor/cmock/vendor/unity/extras/bdd/src/unity_bdd.h +44 -0
- data/vendor/cmock/vendor/unity/extras/bdd/test/meson.build +9 -0
- data/vendor/cmock/vendor/unity/extras/bdd/test/test_bdd.c +129 -0
- data/vendor/cmock/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
- data/vendor/cmock/vendor/unity/extras/fixture/readme.md +26 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/meson.build +10 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +310 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +94 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +50 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +72 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +20 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +245 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +32 -0
- data/vendor/cmock/vendor/unity/extras/memory/readme.md +42 -0
- data/vendor/cmock/vendor/unity/extras/memory/src/meson.build +9 -0
- data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.c +203 -0
- data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.h +61 -0
- data/vendor/cmock/vendor/unity/extras/memory/test/Makefile +85 -0
- data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_Test.c +326 -0
- data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +50 -0
- data/vendor/cmock/vendor/unity/extras/memory/test/unity_output_Spy.c +57 -0
- data/vendor/cmock/vendor/unity/extras/memory/test/unity_output_Spy.h +17 -0
- data/vendor/cmock/vendor/unity/library.json +25 -0
- data/vendor/cmock/vendor/unity/meson.build +80 -0
- data/vendor/cmock/vendor/unity/meson_options.txt +3 -0
- data/vendor/cmock/vendor/unity/platformio-build.py +24 -0
- data/vendor/cmock/vendor/unity/src/meson.build +17 -0
- data/vendor/cmock/vendor/unity/src/unity.c +2501 -0
- data/vendor/cmock/vendor/unity/src/unity.h +698 -0
- data/vendor/cmock/vendor/unity/src/unity_internals.h +1183 -0
- data/vendor/cmock/vendor/unity/test/Makefile +167 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +61 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +57 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +55 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +15 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +76 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +77 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +67 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +70 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +58 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +67 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +70 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +71 -0
- data/vendor/cmock/vendor/unity/test/rakefile +164 -0
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +316 -0
- data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +164 -0
- data/vendor/cmock/vendor/unity/test/targets/ansi.yml +51 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +79 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +79 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +52 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +53 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +50 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +62 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +50 -0
- data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +98 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +105 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +99 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +99 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +97 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +101 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +119 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +106 -0
- data/vendor/cmock/vendor/unity/test/testdata/CException.h +18 -0
- data/vendor/cmock/vendor/unity/test/testdata/Defs.h +16 -0
- data/vendor/cmock/vendor/unity/test/testdata/cmock.h +21 -0
- data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +20 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +204 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +73 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +200 -0
- data/vendor/cmock/vendor/unity/test/tests/self_assessment_utils.h +151 -0
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +1341 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_arrays.c +2941 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_core.c +375 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_doubles.c +1285 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_floats.c +1395 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_integers.c +2863 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_integers_64.c +783 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_memory.c +82 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_parameterized.c +309 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_parameterizedDemo.c +28 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_strings.c +330 -0
- data/vendor/cmock/vendor/unity/test/tests/types_for_test.h +21 -0
- data/vendor/cmock/vendor/unity/unityConfig.cmake +1 -0
- data/vendor/diy/History.txt +28 -0
- data/vendor/diy/LICENSE.txt +7 -0
- data/vendor/diy/README.rdoc +215 -0
- data/vendor/diy/Rakefile +33 -0
- data/vendor/diy/TODO.txt +9 -0
- data/vendor/diy/diy.gemspec +131 -0
- data/vendor/diy/lib/diy/factory.rb +44 -0
- data/vendor/diy/lib/diy.rb +411 -0
- data/vendor/diy/sample_code/car.rb +15 -0
- data/vendor/diy/sample_code/chassis.rb +13 -0
- data/vendor/diy/sample_code/diy_example.rb +34 -0
- data/vendor/diy/sample_code/engine.rb +13 -0
- data/vendor/diy/sample_code/objects.yml +18 -0
- data/vendor/diy/test/constructor.rb +127 -0
- data/vendor/diy/test/diy_test.rb +616 -0
- data/vendor/diy/test/factory_test.rb +87 -0
- data/vendor/diy/test/files/broken_construction.yml +15 -0
- data/vendor/diy/test/files/cat/cat.rb +11 -0
- data/vendor/diy/test/files/cat/extra_conflict.yml +13 -0
- data/vendor/diy/test/files/cat/heritage.rb +10 -0
- data/vendor/diy/test/files/cat/needs_input.yml +11 -0
- data/vendor/diy/test/files/cat/the_cat_lineage.rb +9 -0
- data/vendor/diy/test/files/dog/dog_model.rb +11 -0
- data/vendor/diy/test/files/dog/dog_presenter.rb +11 -0
- data/vendor/diy/test/files/dog/dog_view.rb +10 -0
- data/vendor/diy/test/files/dog/file_resolver.rb +10 -0
- data/vendor/diy/test/files/dog/other_thing.rb +10 -0
- data/vendor/diy/test/files/dog/simple.yml +19 -0
- data/vendor/diy/test/files/donkey/foo/bar/qux.rb +15 -0
- data/vendor/diy/test/files/donkey/foo.rb +16 -0
- data/vendor/diy/test/files/factory/beef.rb +13 -0
- data/vendor/diy/test/files/factory/dog.rb +14 -0
- data/vendor/diy/test/files/factory/factory.yml +27 -0
- data/vendor/diy/test/files/factory/farm/llama.rb +15 -0
- data/vendor/diy/test/files/factory/farm/pork.rb +15 -0
- data/vendor/diy/test/files/factory/kitten.rb +21 -0
- data/vendor/diy/test/files/fud/objects.yml +21 -0
- data/vendor/diy/test/files/fud/toy.rb +22 -0
- data/vendor/diy/test/files/functions/attached_things_builder.rb +10 -0
- data/vendor/diy/test/files/functions/invalid_method.yml +13 -0
- data/vendor/diy/test/files/functions/method_extractor.rb +11 -0
- data/vendor/diy/test/files/functions/nonsingleton_objects.yml +14 -0
- data/vendor/diy/test/files/functions/objects.yml +30 -0
- data/vendor/diy/test/files/functions/thing.rb +11 -0
- data/vendor/diy/test/files/functions/thing_builder.rb +33 -0
- data/vendor/diy/test/files/functions/things_builder.rb +11 -0
- data/vendor/diy/test/files/gnu/objects.yml +22 -0
- data/vendor/diy/test/files/gnu/thinger.rb +15 -0
- data/vendor/diy/test/files/goat/base.rb +16 -0
- data/vendor/diy/test/files/goat/can.rb +14 -0
- data/vendor/diy/test/files/goat/goat.rb +14 -0
- data/vendor/diy/test/files/goat/objects.yml +20 -0
- data/vendor/diy/test/files/goat/paper.rb +14 -0
- data/vendor/diy/test/files/goat/plane.rb +15 -0
- data/vendor/diy/test/files/goat/shirt.rb +14 -0
- data/vendor/diy/test/files/goat/wings.rb +16 -0
- data/vendor/diy/test/files/horse/holder_thing.rb +11 -0
- data/vendor/diy/test/files/horse/objects.yml +15 -0
- data/vendor/diy/test/files/namespace/animal/bird.rb +13 -0
- data/vendor/diy/test/files/namespace/animal/cat.rb +13 -0
- data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +16 -0
- data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +15 -0
- data/vendor/diy/test/files/namespace/bad_module_specified.yml +16 -0
- data/vendor/diy/test/files/namespace/class_name_combine.yml +16 -0
- data/vendor/diy/test/files/namespace/hello.txt +1 -0
- data/vendor/diy/test/files/namespace/no_module_specified.yml +16 -0
- data/vendor/diy/test/files/namespace/objects.yml +29 -0
- data/vendor/diy/test/files/namespace/road.rb +10 -0
- data/vendor/diy/test/files/namespace/sky.rb +10 -0
- data/vendor/diy/test/files/namespace/subcontext.yml +30 -0
- data/vendor/diy/test/files/non_singleton/air.rb +10 -0
- data/vendor/diy/test/files/non_singleton/fat_cat.rb +11 -0
- data/vendor/diy/test/files/non_singleton/objects.yml +27 -0
- data/vendor/diy/test/files/non_singleton/pig.rb +11 -0
- data/vendor/diy/test/files/non_singleton/thread_spinner.rb +11 -0
- data/vendor/diy/test/files/non_singleton/tick.rb +11 -0
- data/vendor/diy/test/files/non_singleton/yard.rb +10 -0
- data/vendor/diy/test/files/yak/core_model.rb +11 -0
- data/vendor/diy/test/files/yak/core_presenter.rb +11 -0
- data/vendor/diy/test/files/yak/core_view.rb +9 -0
- data/vendor/diy/test/files/yak/data_source.rb +9 -0
- data/vendor/diy/test/files/yak/fringe_model.rb +11 -0
- data/vendor/diy/test/files/yak/fringe_presenter.rb +11 -0
- data/vendor/diy/test/files/yak/fringe_view.rb +9 -0
- data/vendor/diy/test/files/yak/giant_squid.rb +11 -0
- data/vendor/diy/test/files/yak/krill.rb +10 -0
- data/vendor/diy/test/files/yak/my_objects.yml +29 -0
- data/vendor/diy/test/files/yak/sub_sub_context_test.yml +35 -0
- data/vendor/diy/test/test_helper.rb +63 -0
- data/vendor/unity/CMakeLists.txt +172 -0
- data/vendor/unity/LICENSE.txt +21 -0
- data/vendor/unity/README.md +234 -0
- data/vendor/unity/auto/__init__.py +7 -0
- data/vendor/unity/auto/colour_prompt.rb +120 -0
- data/vendor/unity/auto/colour_reporter.rb +40 -0
- data/vendor/unity/auto/extract_version.py +22 -0
- data/vendor/unity/auto/generate_config.yml +43 -0
- data/vendor/unity/auto/generate_module.rb +318 -0
- data/vendor/unity/auto/generate_test_runner.rb +547 -0
- data/vendor/unity/auto/parse_output.rb +390 -0
- data/vendor/unity/auto/run_test.erb +37 -0
- data/vendor/unity/auto/stylize_as_junit.py +161 -0
- data/vendor/unity/auto/stylize_as_junit.rb +253 -0
- data/vendor/unity/auto/test_file_filter.rb +28 -0
- data/vendor/unity/auto/type_sanitizer.rb +13 -0
- data/vendor/unity/auto/unity_test_summary.py +140 -0
- data/vendor/unity/auto/unity_test_summary.rb +140 -0
- data/vendor/unity/auto/yaml_helper.rb +23 -0
- data/vendor/unity/docs/CODE_OF_CONDUCT.md +138 -0
- data/vendor/unity/docs/CONTRIBUTING.md +238 -0
- data/vendor/unity/docs/MesonGeneratorRunner.md +18 -0
- data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +187 -0
- data/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/unity/docs/UnityAssertionsReference.md +860 -0
- data/vendor/unity/docs/UnityChangeLog.md +110 -0
- data/vendor/unity/docs/UnityConfigurationGuide.md +654 -0
- data/vendor/unity/docs/UnityGettingStartedGuide.md +242 -0
- data/vendor/unity/docs/UnityHelperScriptsGuide.md +533 -0
- data/vendor/unity/docs/UnityKnownIssues.md +13 -0
- data/vendor/unity/examples/example_1/makefile +73 -0
- data/vendor/unity/examples/example_1/meson.build +48 -0
- data/vendor/unity/examples/example_1/readme.txt +12 -0
- data/vendor/unity/examples/example_1/src/ProductionCode.c +30 -0
- data/vendor/unity/examples/example_1/src/ProductionCode.h +9 -0
- data/vendor/unity/examples/example_1/src/ProductionCode2.c +17 -0
- data/vendor/unity/examples/example_1/src/ProductionCode2.h +8 -0
- data/vendor/unity/examples/example_1/subprojects/unity.wrap +3 -0
- data/vendor/unity/examples/example_1/test/TestProductionCode.c +68 -0
- data/vendor/unity/examples/example_1/test/TestProductionCode2.c +37 -0
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
- data/vendor/unity/examples/example_2/makefile +72 -0
- data/vendor/unity/examples/example_2/readme.txt +5 -0
- data/vendor/unity/examples/example_2/src/ProductionCode.c +30 -0
- data/vendor/unity/examples/example_2/src/ProductionCode.h +9 -0
- data/vendor/unity/examples/example_2/src/ProductionCode2.c +17 -0
- data/vendor/unity/examples/example_2/src/ProductionCode2.h +8 -0
- data/vendor/unity/examples/example_2/test/TestProductionCode.c +71 -0
- data/vendor/unity/examples/example_2/test/TestProductionCode2.c +40 -0
- data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +16 -0
- data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +18 -0
- data/vendor/unity/examples/example_2/test/test_runners/all_tests.c +19 -0
- data/vendor/unity/examples/example_3/helper/UnityHelper.c +17 -0
- data/vendor/unity/examples/example_3/helper/UnityHelper.h +19 -0
- data/vendor/unity/examples/example_3/rakefile.rb +45 -0
- data/vendor/unity/examples/example_3/rakefile_helper.rb +255 -0
- data/vendor/unity/examples/example_3/readme.txt +13 -0
- data/vendor/unity/examples/example_3/src/ProductionCode.c +30 -0
- data/vendor/unity/examples/example_3/src/ProductionCode.h +9 -0
- data/vendor/unity/examples/example_3/src/ProductionCode2.c +17 -0
- data/vendor/unity/examples/example_3/src/ProductionCode2.h +8 -0
- data/vendor/unity/examples/example_3/target_gcc_32.yml +54 -0
- data/vendor/unity/examples/example_3/test/TestProductionCode.c +68 -0
- data/vendor/unity/examples/example_3/test/TestProductionCode2.c +37 -0
- data/vendor/unity/examples/example_4/meson.build +12 -0
- data/vendor/unity/examples/example_4/readme.txt +15 -0
- data/vendor/unity/examples/example_4/src/ProductionCode.c +30 -0
- data/vendor/unity/examples/example_4/src/ProductionCode.h +9 -0
- data/vendor/unity/examples/example_4/src/ProductionCode2.c +17 -0
- data/vendor/unity/examples/example_4/src/ProductionCode2.h +8 -0
- data/vendor/unity/examples/example_4/src/meson.build +16 -0
- data/vendor/unity/examples/example_4/subprojects/unity.wrap +6 -0
- data/vendor/unity/examples/example_4/test/TestProductionCode.c +69 -0
- data/vendor/unity/examples/example_4/test/TestProductionCode2.c +41 -0
- data/vendor/unity/examples/example_4/test/meson.build +7 -0
- data/vendor/unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -0
- data/vendor/unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -0
- data/vendor/unity/examples/example_4/test/test_runners/meson.build +13 -0
- data/vendor/unity/examples/unity_config.h +251 -0
- data/vendor/unity/extras/bdd/readme.md +40 -0
- data/vendor/unity/extras/bdd/src/unity_bdd.h +44 -0
- data/vendor/unity/extras/bdd/test/meson.build +9 -0
- data/vendor/unity/extras/bdd/test/test_bdd.c +129 -0
- data/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
- data/vendor/unity/extras/fixture/readme.md +26 -0
- data/vendor/unity/extras/fixture/src/meson.build +10 -0
- data/vendor/unity/extras/fixture/src/unity_fixture.c +310 -0
- data/vendor/unity/extras/fixture/src/unity_fixture.h +94 -0
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +50 -0
- data/vendor/unity/extras/fixture/test/Makefile +72 -0
- data/vendor/unity/extras/fixture/test/main/AllTests.c +20 -0
- data/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -0
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +245 -0
- data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +32 -0
- data/vendor/unity/extras/memory/readme.md +42 -0
- data/vendor/unity/extras/memory/src/meson.build +9 -0
- data/vendor/unity/extras/memory/src/unity_memory.c +203 -0
- data/vendor/unity/extras/memory/src/unity_memory.h +61 -0
- data/vendor/unity/extras/memory/test/Makefile +85 -0
- data/vendor/unity/extras/memory/test/unity_memory_Test.c +326 -0
- data/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +50 -0
- data/vendor/unity/extras/memory/test/unity_output_Spy.c +57 -0
- data/vendor/unity/extras/memory/test/unity_output_Spy.h +17 -0
- data/vendor/unity/library.json +25 -0
- data/vendor/unity/meson.build +80 -0
- data/vendor/unity/meson_options.txt +3 -0
- data/vendor/unity/platformio-build.py +24 -0
- data/vendor/unity/src/meson.build +17 -0
- data/vendor/unity/src/unity.c +2501 -0
- data/vendor/unity/src/unity.h +698 -0
- data/vendor/unity/src/unity_internals.h +1183 -0
- data/vendor/unity/test/Makefile +167 -0
- data/vendor/unity/test/expectdata/testsample_cmd.c +61 -0
- data/vendor/unity/test/expectdata/testsample_def.c +57 -0
- data/vendor/unity/test/expectdata/testsample_head1.c +55 -0
- data/vendor/unity/test/expectdata/testsample_head1.h +15 -0
- data/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -0
- data/vendor/unity/test/expectdata/testsample_mock_def.c +76 -0
- data/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
- data/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
- data/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -0
- data/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -0
- data/vendor/unity/test/expectdata/testsample_mock_param.c +77 -0
- data/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -0
- data/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -0
- data/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -0
- data/vendor/unity/test/expectdata/testsample_new1.c +67 -0
- data/vendor/unity/test/expectdata/testsample_new2.c +70 -0
- data/vendor/unity/test/expectdata/testsample_param.c +58 -0
- data/vendor/unity/test/expectdata/testsample_run1.c +67 -0
- data/vendor/unity/test/expectdata/testsample_run2.c +70 -0
- data/vendor/unity/test/expectdata/testsample_yaml.c +71 -0
- data/vendor/unity/test/rakefile +164 -0
- data/vendor/unity/test/rakefile_helper.rb +316 -0
- data/vendor/unity/test/spec/generate_module_existing_file_spec.rb +164 -0
- data/vendor/unity/test/targets/ansi.yml +51 -0
- data/vendor/unity/test/targets/clang_file.yml +79 -0
- data/vendor/unity/test/targets/clang_strict.yml +79 -0
- data/vendor/unity/test/targets/gcc_32.yml +52 -0
- data/vendor/unity/test/targets/gcc_64.yml +53 -0
- data/vendor/unity/test/targets/gcc_auto_limits.yml +50 -0
- data/vendor/unity/test/targets/gcc_auto_stdint.yml +62 -0
- data/vendor/unity/test/targets/gcc_manual_math.yml +50 -0
- data/vendor/unity/test/targets/hitech_picc18.yml +98 -0
- data/vendor/unity/test/targets/iar_arm_v4.yml +105 -0
- data/vendor/unity/test/targets/iar_arm_v5.yml +99 -0
- data/vendor/unity/test/targets/iar_arm_v5_3.yml +99 -0
- data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +97 -0
- data/vendor/unity/test/targets/iar_cortexm3_v5.yml +101 -0
- data/vendor/unity/test/targets/iar_msp430.yml +119 -0
- data/vendor/unity/test/targets/iar_sh2a_v6.yml +106 -0
- data/vendor/unity/test/testdata/CException.h +18 -0
- data/vendor/unity/test/testdata/Defs.h +16 -0
- data/vendor/unity/test/testdata/cmock.h +21 -0
- data/vendor/unity/test/testdata/mockMock.h +20 -0
- data/vendor/unity/test/testdata/testRunnerGenerator.c +204 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +73 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +200 -0
- data/vendor/unity/test/tests/self_assessment_utils.h +151 -0
- data/vendor/unity/test/tests/test_generate_test_runner.rb +1341 -0
- data/vendor/unity/test/tests/test_unity_arrays.c +2941 -0
- data/vendor/unity/test/tests/test_unity_core.c +375 -0
- data/vendor/unity/test/tests/test_unity_doubles.c +1285 -0
- data/vendor/unity/test/tests/test_unity_floats.c +1395 -0
- data/vendor/unity/test/tests/test_unity_integers.c +2863 -0
- data/vendor/unity/test/tests/test_unity_integers_64.c +783 -0
- data/vendor/unity/test/tests/test_unity_memory.c +82 -0
- data/vendor/unity/test/tests/test_unity_parameterized.c +309 -0
- data/vendor/unity/test/tests/test_unity_parameterizedDemo.c +28 -0
- data/vendor/unity/test/tests/test_unity_strings.c +330 -0
- data/vendor/unity/test/tests/types_for_test.h +21 -0
- data/vendor/unity/unityConfig.cmake +1 -0
- metadata +1211 -251
- data/.gitignore +0 -14
- data/.vim +0 -1
- data/.yardopts +0 -1
- data/LICENSE +0 -19
- data/ceedling-gem.sublime-project +0 -575
- data/examples/temp_sensor/rakefile.rb +0 -4
- 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_AdcConductor.c +0 -121
- data/examples/temp_sensor/test/test_AdcHardware.c +0 -44
- data/examples/temp_sensor/test/test_AdcHardwareConfigurator.c +0 -43
- data/examples/temp_sensor/test/test_AdcModel.c +0 -33
- data/examples/temp_sensor/test/test_AdcTemperatureSensor.c +0 -47
- data/examples/temp_sensor/test/test_Executor.c +0 -36
- data/examples/temp_sensor/test/test_Main.c +0 -24
- data/examples/temp_sensor/test/test_Model.c +0 -20
- data/examples/temp_sensor/test/test_TaskScheduler.c +0 -104
- data/examples/temp_sensor/test/test_TemperatureCalculator.c +0 -33
- data/examples/temp_sensor/test/test_TemperatureFilter.c +0 -71
- data/examples/temp_sensor/test/test_TimerConductor.c +0 -32
- data/examples/temp_sensor/test/test_TimerConfigurator.c +0 -112
- data/examples/temp_sensor/test/test_TimerHardware.c +0 -26
- 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_TimerModel.c +0 -18
- data/examples/temp_sensor/test/test_UsartBaudRateRegisterCalculator.c +0 -21
- data/examples/temp_sensor/test/test_UsartConductor.c +0 -40
- 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_UsartHardware.c +0 -56
- data/examples/temp_sensor/test/test_UsartModel.c +0 -40
- data/examples/temp_sensor/test/test_UsartPutChar.c +0 -43
- data/examples/temp_sensor/test/test_UsartTransmitBufferStatus.c +0 -22
- data/lib/ceedling/version.rb +0 -16
- data/lib/ceedling/version.rb.erb +0 -16
- data/new_project_template/build/.gitkeep +0 -0
- data/new_project_template/project.yml +0 -65
- data/new_project_template/rakefile.rb +0 -4
- 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/build_invoker_utils.rb +0 -27
- data/new_project_template/vendor/ceedling/lib/cacheinator.rb +0 -42
- data/new_project_template/vendor/ceedling/lib/cacheinator_helper.rb +0 -12
- data/new_project_template/vendor/ceedling/lib/cmock_builder.rb +0 -15
- data/new_project_template/vendor/ceedling/lib/configurator.rb +0 -329
- data/new_project_template/vendor/ceedling/lib/configurator_builder.rb +0 -419
- data/new_project_template/vendor/ceedling/lib/configurator_plugins.rb +0 -93
- data/new_project_template/vendor/ceedling/lib/configurator_setup.rb +0 -123
- data/new_project_template/vendor/ceedling/lib/configurator_validator.rb +0 -184
- data/new_project_template/vendor/ceedling/lib/constants.rb +0 -91
- data/new_project_template/vendor/ceedling/lib/defaults.rb +0 -378
- data/new_project_template/vendor/ceedling/lib/dependinator.rb +0 -92
- data/new_project_template/vendor/ceedling/lib/file_finder.rb +0 -132
- data/new_project_template/vendor/ceedling/lib/file_finder_helper.rb +0 -54
- data/new_project_template/vendor/ceedling/lib/file_path_utils.rb +0 -189
- data/new_project_template/vendor/ceedling/lib/file_system_utils.rb +0 -69
- data/new_project_template/vendor/ceedling/lib/file_wrapper.rb +0 -74
- data/new_project_template/vendor/ceedling/lib/flaginator.rb +0 -54
- data/new_project_template/vendor/ceedling/lib/generator.rb +0 -162
- data/new_project_template/vendor/ceedling/lib/generator_helper.rb +0 -40
- data/new_project_template/vendor/ceedling/lib/generator_test_results.rb +0 -89
- data/new_project_template/vendor/ceedling/lib/generator_test_results_sanity_checker.rb +0 -62
- data/new_project_template/vendor/ceedling/lib/generator_test_runner.rb +0 -63
- data/new_project_template/vendor/ceedling/lib/loginator.rb +0 -31
- data/new_project_template/vendor/ceedling/lib/makefile.rb +0 -46
- data/new_project_template/vendor/ceedling/lib/objects.yml +0 -301
- data/new_project_template/vendor/ceedling/lib/plugin.rb +0 -79
- data/new_project_template/vendor/ceedling/lib/plugin_manager.rb +0 -95
- data/new_project_template/vendor/ceedling/lib/plugin_manager_helper.rb +0 -19
- data/new_project_template/vendor/ceedling/lib/plugin_reportinator.rb +0 -75
- data/new_project_template/vendor/ceedling/lib/plugin_reportinator_helper.rb +0 -52
- data/new_project_template/vendor/ceedling/lib/preprocessinator.rb +0 -43
- data/new_project_template/vendor/ceedling/lib/preprocessinator_extractor.rb +0 -36
- data/new_project_template/vendor/ceedling/lib/preprocessinator_file_handler.rb +0 -21
- data/new_project_template/vendor/ceedling/lib/preprocessinator_helper.rb +0 -46
- data/new_project_template/vendor/ceedling/lib/preprocessinator_includes_handler.rb +0 -55
- data/new_project_template/vendor/ceedling/lib/project_config_manager.rb +0 -38
- data/new_project_template/vendor/ceedling/lib/project_file_loader.rb +0 -64
- data/new_project_template/vendor/ceedling/lib/rake_utils.rb +0 -17
- data/new_project_template/vendor/ceedling/lib/rake_wrapper.rb +0 -31
- data/new_project_template/vendor/ceedling/lib/rakefile.rb +0 -61
- data/new_project_template/vendor/ceedling/lib/release_invoker.rb +0 -58
- data/new_project_template/vendor/ceedling/lib/release_invoker_helper.rb +0 -16
- data/new_project_template/vendor/ceedling/lib/reportinator.rb +0 -9
- data/new_project_template/vendor/ceedling/lib/rules_cmock.rake +0 -9
- data/new_project_template/vendor/ceedling/lib/rules_preprocess.rake +0 -26
- data/new_project_template/vendor/ceedling/lib/rules_release.rake +0 -79
- data/new_project_template/vendor/ceedling/lib/rules_release_deep_dependencies.rake +0 -15
- data/new_project_template/vendor/ceedling/lib/rules_tests.rake +0 -59
- data/new_project_template/vendor/ceedling/lib/rules_tests_deep_dependencies.rake +0 -15
- data/new_project_template/vendor/ceedling/lib/setupinator.rb +0 -51
- data/new_project_template/vendor/ceedling/lib/stream_wrapper.rb +0 -20
- data/new_project_template/vendor/ceedling/lib/streaminator.rb +0 -41
- data/new_project_template/vendor/ceedling/lib/streaminator_helper.rb +0 -15
- data/new_project_template/vendor/ceedling/lib/system_utils.rb +0 -32
- data/new_project_template/vendor/ceedling/lib/system_wrapper.rb +0 -75
- data/new_project_template/vendor/ceedling/lib/task_invoker.rb +0 -85
- data/new_project_template/vendor/ceedling/lib/tasks_base.rake +0 -104
- data/new_project_template/vendor/ceedling/lib/tasks_filesystem.rake +0 -91
- data/new_project_template/vendor/ceedling/lib/tasks_release.rake +0 -28
- data/new_project_template/vendor/ceedling/lib/tasks_release_deep_dependencies.rake +0 -9
- data/new_project_template/vendor/ceedling/lib/tasks_tests.rake +0 -52
- data/new_project_template/vendor/ceedling/lib/tasks_tests_deep_dependencies.rake +0 -9
- data/new_project_template/vendor/ceedling/lib/tasks_vendor.rake +0 -36
- data/new_project_template/vendor/ceedling/lib/test_includes_extractor.rb +0 -81
- data/new_project_template/vendor/ceedling/lib/test_invoker.rb +0 -97
- data/new_project_template/vendor/ceedling/lib/test_invoker_helper.rb +0 -28
- data/new_project_template/vendor/ceedling/lib/tool_executor.rb +0 -212
- data/new_project_template/vendor/ceedling/lib/tool_executor_helper.rb +0 -115
- data/new_project_template/vendor/ceedling/lib/verbosinator.rb +0 -10
- data/new_project_template/vendor/ceedling/lib/yaml_wrapper.rb +0 -16
- data/new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rake +0 -162
- data/new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rb +0 -173
- data/new_project_template/vendor/ceedling/plugins/bullseye/defaults.yml +0 -53
- data/new_project_template/vendor/ceedling/plugins/bullseye/readme.txt +0 -0
- data/new_project_template/vendor/ceedling/plugins/gcov/defaults.yml +0 -34
- data/new_project_template/vendor/ceedling/plugins/gcov/gcov.rake +0 -152
- data/new_project_template/vendor/ceedling/plugins/gcov/gcov.rb +0 -128
- data/new_project_template/vendor/ceedling/plugins/gcov/readme.txt +0 -0
- data/new_project_template/vendor/ceedling/plugins/gcov/template.erb +0 -15
- data/new_project_template/vendor/ceedling/plugins/module_generator/module_generator.rake +0 -14
- data/new_project_template/vendor/ceedling/plugins/module_generator/module_generator.rb +0 -218
- data/new_project_template/vendor/ceedling/plugins/module_generator/module_generator.yml +0 -4
- data/new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.rb +0 -44
- data/new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.yml +0 -4
- data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.rb +0 -48
- data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.yml +0 -4
- data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/template.erb +0 -59
- data/new_project_template/vendor/ceedling/plugins/warnings_report/warnings_report.rb +0 -71
- data/new_project_template/vendor/ceedling/plugins/xml_tests_report/xml_tests_report.rb +0 -110
- data/new_project_template/vendor/ceedling/release/build.info +0 -1
- data/new_project_template/vendor/ceedling/release/version.info +0 -1
- data/new_project_template/vendor/ceedling/vendor/c_exception/lib/CException.c +0 -39
- data/new_project_template/vendor/ceedling/vendor/c_exception/lib/CException.h +0 -70
- data/new_project_template/vendor/ceedling/vendor/c_exception/release/build.info +0 -1
- data/new_project_template/vendor/ceedling/vendor/c_exception/release/version.info +0 -2
- data/new_project_template/vendor/ceedling/vendor/cmock/config/production_environment.rb +0 -14
- data/new_project_template/vendor/ceedling/vendor/cmock/config/test_environment.rb +0 -16
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb +0 -65
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_config.rb +0 -129
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_file_writer.rb +0 -33
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator.rb +0 -194
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_array.rb +0 -57
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_callback.rb +0 -78
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +0 -51
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_expect.rb +0 -86
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +0 -85
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_generator_utils.rb +0 -177
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_header_parser.rb +0 -273
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_plugin_manager.rb +0 -40
- data/new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_unityhelper_parser.rb +0 -74
- data/new_project_template/vendor/ceedling/vendor/cmock/release/build.info +0 -1
- data/new_project_template/vendor/ceedling/vendor/cmock/release/version.info +0 -2
- data/new_project_template/vendor/ceedling/vendor/cmock/src/cmock.c +0 -186
- data/new_project_template/vendor/ceedling/vendor/cmock/src/cmock.h +0 -30
- data/new_project_template/vendor/ceedling/vendor/constructor/lib/constructor.rb +0 -127
- data/new_project_template/vendor/ceedling/vendor/constructor/lib/constructor_struct.rb +0 -33
- data/new_project_template/vendor/ceedling/vendor/deep_merge/lib/deep_merge.rb +0 -211
- data/new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb +0 -36
- data/new_project_template/vendor/ceedling/vendor/diy/lib/diy.rb +0 -403
- data/new_project_template/vendor/ceedling/vendor/unity/auto/generate_test_runner.rb +0 -308
- data/new_project_template/vendor/ceedling/vendor/unity/release/build.info +0 -1
- data/new_project_template/vendor/ceedling/vendor/unity/release/version.info +0 -2
- data/new_project_template/vendor/ceedling/vendor/unity/src/unity.c +0 -960
- data/new_project_template/vendor/ceedling/vendor/unity/src/unity.h +0 -232
- data/new_project_template/vendor/ceedling/vendor/unity/src/unity_internals.h +0 -414
- /data/{new_project_template/vendor/ceedling/plugins/bullseye → plugins/bullseye/assets}/template.erb +0 -0
@@ -0,0 +1,236 @@
|
|
1
|
+
CException 
|
2
|
+
==========
|
3
|
+
|
4
|
+
_This Documentation Is Released Under a Creative Commons 3.0 Attribution Share-Alike License_
|
5
|
+
|
6
|
+
CException is simple exception handling in C. It is significantly faster than full-blown C++ exception handling
|
7
|
+
but loses some flexibility. It is portable to any platform supporting `setjmp`/`longjmp`.
|
8
|
+
|
9
|
+
Getting Started
|
10
|
+
================
|
11
|
+
|
12
|
+
The simplest way to get started is to just grab the code and pull it into your project:
|
13
|
+
|
14
|
+
```
|
15
|
+
git clone https://github.com/throwtheswitch/cexception.git
|
16
|
+
```
|
17
|
+
|
18
|
+
If you want to contribute to this project, you'll also need to have Ruby and Ceedling installed to run the unit tests.
|
19
|
+
|
20
|
+
Usage
|
21
|
+
=====
|
22
|
+
|
23
|
+
### So what's it good for?
|
24
|
+
|
25
|
+
Mostly error handling. Passing errors down a long chain of function calls gets ugly. Sometimes really ugly.
|
26
|
+
So what if you could just specify certain places where you want to handle errors, and all your errors were
|
27
|
+
transferred there? Let's try a lame example:
|
28
|
+
|
29
|
+
CException uses C standard library functions setjmp and longjmp to operate. As long as the target system
|
30
|
+
has these two functions defined, this library should be useable with very little configuration. It even
|
31
|
+
supports environments where multiple program flows are in use, such as real-time operating systems...
|
32
|
+
we started this project for use in embedded systems... but it obviously can be used for larger systems too.
|
33
|
+
|
34
|
+
### Error Handling with CException:
|
35
|
+
|
36
|
+
```
|
37
|
+
void functionC(void) {
|
38
|
+
//do some stuff
|
39
|
+
if (there_was_a_problem)
|
40
|
+
Throw(ERR_BAD_BREATH);
|
41
|
+
//this stuff never gets called because of error
|
42
|
+
}
|
43
|
+
```
|
44
|
+
|
45
|
+
There are about a gajillion exception frameworks using a similar setjmp/longjmp method out there... and there
|
46
|
+
will probably be more in the future. Unfortunately, when we started our last embedded project, all those that
|
47
|
+
existed either (a) did not support multiple tasks (therefore multiple stacks) or (b) were way more complex
|
48
|
+
than we really wanted. CException was born.
|
49
|
+
|
50
|
+
Why?
|
51
|
+
====
|
52
|
+
|
53
|
+
### It's ANSI C
|
54
|
+
|
55
|
+
...and it beats passing error codes around.
|
56
|
+
|
57
|
+
### You want something simple...
|
58
|
+
|
59
|
+
CException throws a single id. You can define those ID's to be whatever you like.
|
60
|
+
You might even choose which type that number is for your project. But that's as far as it goes. We weren't interested
|
61
|
+
in passing objects or structs or strings... just simple error codes. Fast. Easy to Use. Easy to Understand.
|
62
|
+
|
63
|
+
### Performance...
|
64
|
+
|
65
|
+
CException can be configured for single tasking or multitasking. In single tasking, there is
|
66
|
+
very little overhead past the setjmp/longjmp calls (which are already fast). In multitasking, your only additional
|
67
|
+
overhead is the time it takes you to determine a unique task id (0 to num_tasks).
|
68
|
+
|
69
|
+
How?
|
70
|
+
====
|
71
|
+
|
72
|
+
Code that is to be protected are wrapped in `Try { }` blocks. The code inside the Try block is _protected_,
|
73
|
+
meaning that if any Throws occur, program control is directly transferred to the start of the Catch block.
|
74
|
+
The Catch block immediately follows the Try block. It's ignored if no errors have occurred.
|
75
|
+
|
76
|
+
A numerical exception ID is included with Throw, and is passed into the Catch block. This allows you to handle
|
77
|
+
errors differently or to report which error has occurred... or maybe it just makes debugging easier so you
|
78
|
+
know where the problem was Thrown.
|
79
|
+
|
80
|
+
Throws can occur from anywhere inside the Try block, directly in the function you're testing or even within
|
81
|
+
function calls (nested as deeply as you like). There can be as many Throws as you like, just remember that
|
82
|
+
execution of the guts of your Try block ends as soon as the first Throw is triggered. Once you throw, you're
|
83
|
+
transferred to the Catch block. A silly example:
|
84
|
+
|
85
|
+
```
|
86
|
+
void SillyExampleWhichPrintsZeroThroughFive(void) {
|
87
|
+
volatile CEXCEPTION_T e;
|
88
|
+
int i;
|
89
|
+
while (i = 0; i < 6; i++) {
|
90
|
+
Try {
|
91
|
+
Throw(i);
|
92
|
+
//This spot is never reached
|
93
|
+
}
|
94
|
+
Catch(e) {
|
95
|
+
printf(“%i “, e);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
```
|
100
|
+
|
101
|
+
Limitations
|
102
|
+
===========
|
103
|
+
|
104
|
+
This library was made to be as fast as possible, and provide basic exception handling. It is not a full-blown
|
105
|
+
exception library like C++. Because of this, there are a few limitations that should be observed in order to
|
106
|
+
successfully utilize this library:
|
107
|
+
|
108
|
+
### Return & Goto
|
109
|
+
|
110
|
+
Do not directly `return` from within a `Try` block, nor `goto` into or out of a `Try` block.
|
111
|
+
The `Try` macro allocates some local memory and alters a global pointer. These are cleaned up at the
|
112
|
+
top of the `Catch` macro. Gotos and returns would bypass some of these steps, resulting in memory leaks
|
113
|
+
or unpredictable behavior.
|
114
|
+
|
115
|
+
### Local Variables
|
116
|
+
|
117
|
+
If (a) you change local (stack) variables within your `Try` block, and (b) wish to make use of the updated
|
118
|
+
values after an exception is thrown, those variables should be made `volatile`.
|
119
|
+
|
120
|
+
Note that this is ONLY for locals and ONLY when you need access to them after a `Throw`.
|
121
|
+
|
122
|
+
Compilers optimize (and thank goodness they do). There is no way to guarantee that the actual memory
|
123
|
+
location was updated and not just a register unless the variable is marked volatile.
|
124
|
+
|
125
|
+
### Memory Management
|
126
|
+
|
127
|
+
Memory which is `malloc`'d within a `Try` block is not automatically released when an error is thrown. This
|
128
|
+
will sometimes be desirable, and other times may not. It will be the responsibility of the code you put in
|
129
|
+
the `Catch` block to perform this kind of cleanup.
|
130
|
+
|
131
|
+
There's just no easy way to track `malloc`'d memory, etc., without replacing or wrapping `malloc`
|
132
|
+
calls or something like that. This is a lightweight framework, so these options were not desirable.
|
133
|
+
|
134
|
+
CException API
|
135
|
+
==============
|
136
|
+
|
137
|
+
### `Try { ... }`
|
138
|
+
|
139
|
+
`Try` is a macro which starts a protected block. It MUST be followed by a pair of braces or a single
|
140
|
+
protected line (similar to an 'if'), enclosing the data that is to be protected. It MUST be followed by
|
141
|
+
a `Catch` block (don't worry, you'll get compiler errors to let you know if you mess any of that up).
|
142
|
+
|
143
|
+
The `Try` block is your protected block. It contains your main program flow, where you can ignore errors
|
144
|
+
(other than a quick `Throw` call). You may nest multiple `Try` blocks if you want to handle errors at
|
145
|
+
multiple levels, and you can even rethrow an error from within a nested `Catch`.
|
146
|
+
|
147
|
+
### `Catch(e) { }`
|
148
|
+
|
149
|
+
`Catch` is a macro which ends the `Try` block and starts the error handling block. The `Catch` block
|
150
|
+
is executed if and only if an exception was thrown while within the `Try` block. This error was thrown
|
151
|
+
by a `Throw` call somewhere within `Try` (or within a function called within `Try`, or a function called
|
152
|
+
by a function called within `Try`... you get the idea.).
|
153
|
+
|
154
|
+
`Catch` receives a single id of type `CEXCEPTION_T` which you can ignore or use to handle the error in
|
155
|
+
some way. You may throw errors from within Catches, but they will be caught by a `Try` wrapping the `Catch`,
|
156
|
+
not the one immediately preceeding.
|
157
|
+
|
158
|
+
### `Throw(e)`
|
159
|
+
|
160
|
+
`Throw` is the method used to throw an error. `Throw`s should only occur from within a protected
|
161
|
+
(`Try`...`Catch`) block, though it may easily be nested many function calls deep without an impact
|
162
|
+
on performance or functionality. `Throw` takes a single argument, which is an exception id which will be
|
163
|
+
passed to `Catch` as the reason for the error. If you wish to _re-throw_ an error, this can be done by
|
164
|
+
calling `Throw(e)` with the error code you just caught. It _IS_ valid to throw from a `Catch` block.
|
165
|
+
|
166
|
+
### `ExitTry()`
|
167
|
+
|
168
|
+
`ExitTry` is a method used to immediately exit your current Try block but NOT treat this as an error. Don't
|
169
|
+
run the Catch. Just start executing from after the Catch as if nothing had happened.
|
170
|
+
|
171
|
+
Configuration
|
172
|
+
=============
|
173
|
+
|
174
|
+
CException is a mostly portable library. It has one universal dependency, plus some macros which are required if
|
175
|
+
working in a multi-tasking environment.
|
176
|
+
|
177
|
+
The standard C library setjmp must be available. Since this is part of the standard library, it's all good.
|
178
|
+
|
179
|
+
If working in a multitasking environment, you need a stack frame for each task. Therefore, you must define
|
180
|
+
methods for obtaining an index into an array of frames and to get the overall number of id's are required. If
|
181
|
+
the OS supports a method to retrieve task ID's, and those tasks are number 0, 1, 2... you are in an ideal
|
182
|
+
situation. Otherwise, a more creative mapping function may be required. Note that this function is likely to
|
183
|
+
be called twice for each protected block and once during a throw. This is the only added overhead in the system.
|
184
|
+
|
185
|
+
You have options for configuring the library, if the defaults aren't good enough for you. You can add defines
|
186
|
+
at the command prompt directly. You can always include a configuration file before including `CException.h`.
|
187
|
+
You can make sure `CEXCEPTION_USE_CONFIG_FILE` is defined, which will force make CException look for
|
188
|
+
`CExceptionConfig.h`, where you can define whatever you like. However you do it, you can override any or
|
189
|
+
all of the following:
|
190
|
+
|
191
|
+
### `CEXCEPTION_T`
|
192
|
+
|
193
|
+
Set this to the type you want your exception id's to be. Defaults to an 'unsigned int'.
|
194
|
+
|
195
|
+
### `CEXCEPTION_NONE`
|
196
|
+
|
197
|
+
Set this to a number which will never be an exception id in your system. Defaults to `0x5a5a5a5a`.
|
198
|
+
|
199
|
+
### `CEXCEPTION_GET_ID`
|
200
|
+
|
201
|
+
If in a multi-tasking environment, this should be set to be a call to the function described in #2 above.
|
202
|
+
It defaults to just return 0 all the time (good for single tasking environments, not so good otherwise).
|
203
|
+
|
204
|
+
### `CEXCEPTION_NUM_ID`
|
205
|
+
|
206
|
+
If in a multi-tasking environment, this should be set to the number of ID's required (usually the number
|
207
|
+
of tasks in the system). Defaults to 1 (good for single tasking environments or systems where you will only
|
208
|
+
use this from one task).
|
209
|
+
|
210
|
+
### `CEXCEPTION_NO_CATCH_HANDLER (id)`
|
211
|
+
|
212
|
+
This macro can be optionally specified. It allows you to specify code to be called when a Throw is made
|
213
|
+
outside of Try...Catch protection. Consider this the emergency fallback plan for when something has gone
|
214
|
+
terribly wrong.
|
215
|
+
|
216
|
+
### And More!
|
217
|
+
|
218
|
+
You may also want to include any header files which will commonly be needed by the rest of your application
|
219
|
+
where it uses exception handling here. For example, OS header files or exception codes would be useful.
|
220
|
+
|
221
|
+
Finally, there are some hook macros which you can implement to inject your own target-specific code in
|
222
|
+
particular places. It is a rare instance where you will need these, but they are here if you need them:
|
223
|
+
|
224
|
+
* `CEXCEPTION_HOOK_START_TRY` - called immediately before the Try block
|
225
|
+
* `CEXCEPTION_HOOK_HAPPY_TRY` - called immediately after the Try block if no exception was thrown
|
226
|
+
* `CEXCEPTION_HOOK_AFTER_TRY` - called immediately after the Try block OR before an exception is caught
|
227
|
+
* `CEXCEPTION_HOOK_START_CATCH` - called immediately before the catch
|
228
|
+
|
229
|
+
Testing
|
230
|
+
=======
|
231
|
+
|
232
|
+
If you want to validate that CException works with your tools or that it works with your custom
|
233
|
+
configuration, you may want to run the included test suite. This is the test suite (along with real
|
234
|
+
projects we've used it on) that we use to make sure that things actually work the way we claim.
|
235
|
+
The test suite makes use of Ceedling, which uses the Unity Test Framework. It will require a native C compiler.
|
236
|
+
The example makefile and rakefile both use gcc.
|
@@ -0,0 +1,289 @@
|
|
1
|
+
CException
|
2
|
+
==========
|
3
|
+
|
4
|
+
CException is a basic exception framework for C, suitable for use in
|
5
|
+
embedded applications. It provides an exception framework similar in
|
6
|
+
use to C++, but with much less overhead.
|
7
|
+
|
8
|
+
CException uses C standard library functions `setjmp` and `longjmp` to
|
9
|
+
operate. As long as the target system has these two functions defined,
|
10
|
+
this library should be useable with very little configuration. It
|
11
|
+
even supports environments where multiple program flows are in use,
|
12
|
+
such as real-time operating systems.
|
13
|
+
|
14
|
+
There are about a gabillion exception frameworks using a similar
|
15
|
+
setjmp/longjmp method out there... and there will probably be more
|
16
|
+
in the future. Unfortunately, when we started our last embedded
|
17
|
+
project, all those that existed either (a) did not support multiple
|
18
|
+
tasks (therefore multiple stacks) or (b) were way more complex than
|
19
|
+
we really wanted. CException was born.
|
20
|
+
|
21
|
+
*Why use CException?*
|
22
|
+
|
23
|
+
0. It's ANSI C, and it beats passing error codes around.
|
24
|
+
1. You want something simple... CException throws a single id. You can
|
25
|
+
define those ID's to be whatever you like. You might even choose which
|
26
|
+
type that number is for your project. But that's as far as it goes.
|
27
|
+
We weren't interested in passing objects or structs or strings...
|
28
|
+
just simple error codes.
|
29
|
+
2. Performance... CException can be configured for single tasking or
|
30
|
+
multitasking. In single tasking, there is very little overhead past
|
31
|
+
the setjmp/longjmp calls (which are already fast). In multitasking,
|
32
|
+
your only additional overhead is the time it takes you to determine
|
33
|
+
a unique task id 0 - num_tasks.
|
34
|
+
|
35
|
+
For the latest version, go to [ThrowTheSwitch.org](http://throwtheswitch.org)
|
36
|
+
|
37
|
+
CONTENTS OF THIS DOCUMENT
|
38
|
+
=========================
|
39
|
+
|
40
|
+
* Usage
|
41
|
+
* Limitations
|
42
|
+
* API
|
43
|
+
* Configuration
|
44
|
+
* Testing
|
45
|
+
* License
|
46
|
+
|
47
|
+
|
48
|
+
Usage
|
49
|
+
-----
|
50
|
+
|
51
|
+
Code that is to be protected are wrapped in `Try { } Catch { }` blocks.
|
52
|
+
The code directly following the Try call is "protected", meaning that
|
53
|
+
if any Throws occur, program control is directly transferred to the
|
54
|
+
start of the Catch block.
|
55
|
+
|
56
|
+
A numerical exception ID is included with Throw, and is made accessible
|
57
|
+
from the Catch block.
|
58
|
+
|
59
|
+
Throws can occur from within function calls (nested as deeply as you
|
60
|
+
like) or directly from within the function itself.
|
61
|
+
|
62
|
+
Limitations
|
63
|
+
-----------
|
64
|
+
|
65
|
+
This library was made to be as fast as possible, and provide basic
|
66
|
+
exception handling. It is not a full-blown exception library. Because
|
67
|
+
of this, there are a few limitations that should be observed in order
|
68
|
+
to successfully utilize this library:
|
69
|
+
|
70
|
+
1. Do not directly "return" from within a `Try` block, nor `goto`
|
71
|
+
into or out of a `Try` block.
|
72
|
+
|
73
|
+
*Why?*
|
74
|
+
|
75
|
+
The `Try` macro allocates some local memory and alters a global
|
76
|
+
pointer. These are cleaned up at the top of the `Catch` macro.
|
77
|
+
Gotos and returns would bypass some of these steps, resulting in
|
78
|
+
memory leaks or unpredictable behavior.
|
79
|
+
|
80
|
+
|
81
|
+
2. If (a) you change local (stack) variables within your `Try` block,
|
82
|
+
AND (b) wish to make use of the updated values after an exception
|
83
|
+
is thrown, those variables should be made `volatile`. Note that this
|
84
|
+
is ONLY for locals and ONLY when you need access to them after a
|
85
|
+
`Throw`.
|
86
|
+
|
87
|
+
*Why?*
|
88
|
+
|
89
|
+
Compilers optimize. There is no way to guarantee that the actual
|
90
|
+
memory location was updated and not just a register unless the
|
91
|
+
variable is marked volatile.
|
92
|
+
|
93
|
+
As an example, if we had the following code, the value `b` is
|
94
|
+
very likely at risk. It is assigned to the value `3` inside the
|
95
|
+
`Try` block, but the compiler may or may not have written that
|
96
|
+
variable to an actual memory location when the Throw happens. If
|
97
|
+
it did, the `printf` will have a `3` for the second value. If not,
|
98
|
+
it will still have a `0`. Changing `b` to `volatile` would
|
99
|
+
guarantee it is the correct value.
|
100
|
+
|
101
|
+
```
|
102
|
+
void func(int *a)
|
103
|
+
{
|
104
|
+
// ...
|
105
|
+
int b = 0;
|
106
|
+
Try {
|
107
|
+
*a += 2;
|
108
|
+
b = *a;
|
109
|
+
Throw(MY_EX);
|
110
|
+
} Catch(e) {
|
111
|
+
// ...
|
112
|
+
}
|
113
|
+
printf("%d ?= %d", a, b);
|
114
|
+
}
|
115
|
+
void main()
|
116
|
+
{
|
117
|
+
int x = 1;
|
118
|
+
func(&x);
|
119
|
+
printf("%d", x);
|
120
|
+
}
|
121
|
+
```
|
122
|
+
|
123
|
+
With most compilers, the `*a` and `x` values are NOT at risk.
|
124
|
+
We're dereferencing the pointer, which usually will force
|
125
|
+
memory interaction. Optimizing compilers DO optimize, though,
|
126
|
+
and it IS possible that even these values may have been cached
|
127
|
+
and not written to the final memory location. In those instances,
|
128
|
+
they would both report `1`.
|
129
|
+
|
130
|
+
If you have a lot of situations like this and a strong optimizing
|
131
|
+
compiler, it is best to reduce the optimization level when using
|
132
|
+
CException.
|
133
|
+
|
134
|
+
3. Memory which is `malloc`'d or `new`'d is not automatically released
|
135
|
+
when an error is thrown. This will sometimes be desirable, and
|
136
|
+
other times may not. It will be the responsibility of the `Catch`
|
137
|
+
block to perform this kind of cleanup.
|
138
|
+
|
139
|
+
*Why?*
|
140
|
+
|
141
|
+
There's just no easy way to track `malloc`'d memory, etc., without
|
142
|
+
replacing or wrapping malloc calls or something like that. This
|
143
|
+
is a light framework, so these options were not desirable.
|
144
|
+
|
145
|
+
API
|
146
|
+
---
|
147
|
+
|
148
|
+
###Try
|
149
|
+
|
150
|
+
`Try` is a macro which starts a protected block. It MUST be followed by
|
151
|
+
a pair of braces or a single protected line (similar to an 'if'),
|
152
|
+
enclosing the data that is to be protected. It **must** be followed by a
|
153
|
+
`Catch` block (don't worry, you'll get compiler errors to let you know if
|
154
|
+
you mess any of that up).
|
155
|
+
|
156
|
+
|
157
|
+
###Catch(e)
|
158
|
+
|
159
|
+
`Catch` is a macro which ends the `Try` block and starts the error handling
|
160
|
+
block. The `Catch` block is called if and only if an exception was thrown
|
161
|
+
while within the `Try` block. This error was thrown by a `Throw` call
|
162
|
+
somewhere within `Try` (or within a function called within `Try`, or a function
|
163
|
+
called by a function called within `Try`, etc).
|
164
|
+
|
165
|
+
The single parameter `e` is filled with the error code which was thrown.
|
166
|
+
This can be used for reporting, conditional cleanup, etc. (or you can just
|
167
|
+
ignore it if you really want... people ignore return codes all the time,
|
168
|
+
right?). `e` should be of type `EXCEPTION_T`
|
169
|
+
|
170
|
+
|
171
|
+
###Throw(e)
|
172
|
+
|
173
|
+
This is the method of throwing an error. A `Throw` should only occur from within a
|
174
|
+
protected (`Try` ... `Catch`) block, though it may easily be nested many function
|
175
|
+
calls deep without an impact on performance or functionality. `Throw` takes
|
176
|
+
a single argument, which is an exception id which will be passed to `Catch`
|
177
|
+
as the reason for the error.
|
178
|
+
|
179
|
+
If you wish to rethrow an error, this can be done by calling `Throw(e)` with
|
180
|
+
the error code you just caught. It **is** valid to throw from a catch block.
|
181
|
+
|
182
|
+
|
183
|
+
###ExitTry()
|
184
|
+
|
185
|
+
On rare occasion, you might want to immediately exit your current `Try` block
|
186
|
+
but **not** treat this as an error. Don't run the `Catch`. Just start executing
|
187
|
+
from after the `Catch` as if nothing had happened... That's what `ExitTry` is
|
188
|
+
for.
|
189
|
+
|
190
|
+
|
191
|
+
CONFIGURATION
|
192
|
+
-------------
|
193
|
+
|
194
|
+
CException is a mostly portable library. It has one universal
|
195
|
+
dependency, and some macros which are required if working in a
|
196
|
+
multi-tasking environment.
|
197
|
+
|
198
|
+
1. The standard C library setjmp must be available. Since this is part
|
199
|
+
of the standard library, chances are good that you'll be fine.
|
200
|
+
|
201
|
+
2. If working in a multitasking environment, methods for obtaining an
|
202
|
+
index into an array of frames and to get the overall number of
|
203
|
+
id's are required. If the OS supports a method to retrieve Task
|
204
|
+
ID's, and those Tasks are number 0, 1, 2... you are in an ideal
|
205
|
+
situation. Otherwise, a more creative mapping function may be
|
206
|
+
required. Note that this function is likely to be called twice
|
207
|
+
for each protected block and once during a throw. This is the
|
208
|
+
only overhead in the system.
|
209
|
+
|
210
|
+
|
211
|
+
Exception.h
|
212
|
+
-----------
|
213
|
+
|
214
|
+
By convention, most projects include `Exception.h` which defines any
|
215
|
+
further requirements, then calls `CException.h` to do the gruntwork. All
|
216
|
+
of these are optional. You could directly include `CException.h` if
|
217
|
+
you wanted and just use the defaults provided.
|
218
|
+
|
219
|
+
* `CEXCEPTION_T`
|
220
|
+
* Set this to the type you want your exception id's to be. Defaults to 'unsigned int'.
|
221
|
+
|
222
|
+
* `CEXCEPTION_NONE`
|
223
|
+
* Set this to a number which will never be an exception id in your system. Defaults to `0x5a5a5a5a`.
|
224
|
+
|
225
|
+
* `CEXCEPTION_GET_ID`
|
226
|
+
* If in a multi-tasking environment, this should be
|
227
|
+
set to be a call to the function described in #2 above.
|
228
|
+
Defaults to just return `0` all the time (good for
|
229
|
+
single tasking environments)
|
230
|
+
|
231
|
+
* `CEXCEPTION_NUM_ID`
|
232
|
+
* If in a multi-tasking environment, this should be set
|
233
|
+
to the number of ID's required (usually the number of
|
234
|
+
tasks in the system). Defaults to `1` (for single
|
235
|
+
tasking environments).
|
236
|
+
|
237
|
+
* `CEXCEPTION_NO_CATCH_HANDLER(id)`
|
238
|
+
* This macro can be optionally specified.
|
239
|
+
It allows you to specify code to be called when a Throw
|
240
|
+
is made outside of `Try` ... `Catch` protection. Consider
|
241
|
+
this the emergency fallback plan for when something has
|
242
|
+
gone terribly wrong.
|
243
|
+
|
244
|
+
You may also want to include any header files which will commonly be
|
245
|
+
needed by the rest of your application where it uses exception handling
|
246
|
+
here. For example, OS header files or exception codes would be useful.
|
247
|
+
|
248
|
+
|
249
|
+
Finally, there are some hook macros which you can implement to inject
|
250
|
+
your own target-specific code in particular places. It is a rare instance
|
251
|
+
where you will need these, but they are here if you need them:
|
252
|
+
|
253
|
+
|
254
|
+
* `CEXCEPTION_HOOK_START_TRY`
|
255
|
+
* called immediately before the Try block
|
256
|
+
|
257
|
+
* `CEXCEPTION_HOOK_HAPPY_TRY`
|
258
|
+
* called immediately after the Try block if no exception was thrown
|
259
|
+
|
260
|
+
* `CEXCEPTION_HOOK_AFTER_TRY`
|
261
|
+
* called immediately after the Try block OR before an exception is caught
|
262
|
+
|
263
|
+
* `CEXCEPTION_HOOK_START_CATCH`
|
264
|
+
* called immediately before the catch
|
265
|
+
|
266
|
+
|
267
|
+
TESTING
|
268
|
+
-------
|
269
|
+
|
270
|
+
If you want to validate that CException works with your tools or that
|
271
|
+
it works with your custom configuration, you may want to run the test
|
272
|
+
suite.
|
273
|
+
|
274
|
+
|
275
|
+
The test suite included makes use of the `Unity` Test Framework. It will
|
276
|
+
require a native C compiler. The example makefile uses MinGW's gcc.
|
277
|
+
Modify the makefile to include the proper paths to tools, then run `make`
|
278
|
+
to compile and run the test application.
|
279
|
+
|
280
|
+
* `C_COMPILER`
|
281
|
+
* The C compiler to use to perform the tests
|
282
|
+
|
283
|
+
* `C_LIBS`
|
284
|
+
* The path to the C libraries (including setjmp)
|
285
|
+
|
286
|
+
* `UNITY_DIR`
|
287
|
+
* The path to the Unity framework (required to run tests)
|
288
|
+
(get it at [ThrowTheSwitch.org](http://throwtheswitch.org))
|
289
|
+
|
@@ -0,0 +1,138 @@
|
|
1
|
+
|
2
|
+
# ThrowTheSwitch.org Code of Conduct
|
3
|
+
|
4
|
+
Thank you for participating in a ThrowTheSwitch.org community project! We want
|
5
|
+
this to continue to be a warm and inviting place for everyone to share ideas
|
6
|
+
and get help. To accomplish this goal, we've developed this Code of Conduct.
|
7
|
+
|
8
|
+
## Our Pledge
|
9
|
+
|
10
|
+
We as members, contributors, and leaders pledge to make participation in our
|
11
|
+
community a harassment-free experience for everyone, regardless of age, body
|
12
|
+
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
13
|
+
identity and expression, level of experience, education, socio-economic status,
|
14
|
+
nationality, personal appearance, race, caste, color, religion, or sexual
|
15
|
+
identity and orientation.
|
16
|
+
|
17
|
+
We pledge to act and interact in ways that contribute to an open, welcoming,
|
18
|
+
diverse, inclusive, and healthy community.
|
19
|
+
|
20
|
+
## Our Standards
|
21
|
+
|
22
|
+
Examples of behavior that contributes to a positive environment for our
|
23
|
+
community include:
|
24
|
+
|
25
|
+
* Demonstrating empathy and kindness toward other people
|
26
|
+
* Being respectful of differing opinions, viewpoints, and experiences
|
27
|
+
* Giving and gracefully accepting constructive feedback
|
28
|
+
* Accepting responsibility and apologizing to those affected by our mistakes,
|
29
|
+
and learning from the experience
|
30
|
+
* Focusing on what is best not just for us as individuals, but for the overall
|
31
|
+
community
|
32
|
+
|
33
|
+
Examples of unacceptable behavior include:
|
34
|
+
|
35
|
+
* The use of sexualized language or imagery, and sexual attention or advances of
|
36
|
+
any kind
|
37
|
+
* Trolling, insulting or derogatory comments, and personal or political attacks
|
38
|
+
* Public or private harassment
|
39
|
+
* Publishing others' private information, such as a physical or email address,
|
40
|
+
without their explicit permission
|
41
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
42
|
+
professional setting
|
43
|
+
|
44
|
+
## Enforcement Responsibilities
|
45
|
+
|
46
|
+
Community leaders are responsible for clarifying and enforcing our standards of
|
47
|
+
acceptable behavior and will take appropriate and fair corrective action in
|
48
|
+
response to any behavior that they deem inappropriate, threatening, offensive,
|
49
|
+
or harmful.
|
50
|
+
|
51
|
+
Community leaders have the right and responsibility to remove, edit, or reject
|
52
|
+
comments, commits, code, wiki edits, issues, and other contributions that are
|
53
|
+
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
54
|
+
decisions when appropriate.
|
55
|
+
|
56
|
+
## Scope
|
57
|
+
|
58
|
+
This Code of Conduct applies within all community spaces, and also applies when
|
59
|
+
an individual is officially representing the community in public spaces.
|
60
|
+
Examples of representing our community include using an official email address,
|
61
|
+
posting via an official social media account, or acting as an appointed
|
62
|
+
representative at an online or offline event.
|
63
|
+
|
64
|
+
## Enforcement
|
65
|
+
|
66
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
67
|
+
reported to the community leaders responsible for enforcement at
|
68
|
+
hello@thingamabyte.com.
|
69
|
+
|
70
|
+
All complaints will be reviewed and investigated promptly and fairly.
|
71
|
+
|
72
|
+
All community leaders are obligated to respect the privacy and security of the
|
73
|
+
reporter of any incident.
|
74
|
+
|
75
|
+
## Enforcement Guidelines
|
76
|
+
|
77
|
+
Community leaders will follow these Community Impact Guidelines in determining
|
78
|
+
the consequences for any action they deem in violation of this Code of Conduct:
|
79
|
+
|
80
|
+
### 1. Correction
|
81
|
+
|
82
|
+
**Community Impact**: Use of inappropriate language or other behavior deemed
|
83
|
+
unprofessional or unwelcome in the community.
|
84
|
+
|
85
|
+
**Consequence**: A private, written warning from community leaders, providing
|
86
|
+
clarity around the nature of the violation and an explanation of why the
|
87
|
+
behavior was inappropriate. A public apology may be requested.
|
88
|
+
|
89
|
+
### 2. Warning
|
90
|
+
|
91
|
+
**Community Impact**: A violation through a single incident or series of
|
92
|
+
actions.
|
93
|
+
|
94
|
+
**Consequence**: A warning with consequences for continued behavior. No
|
95
|
+
interaction with the people involved, including unsolicited interaction with
|
96
|
+
those enforcing the Code of Conduct, for a specified period of time. This
|
97
|
+
includes avoiding interactions in community spaces as well as external channels
|
98
|
+
like social media. Violating these terms may lead to a temporary or permanent
|
99
|
+
ban.
|
100
|
+
|
101
|
+
### 3. Temporary Ban
|
102
|
+
|
103
|
+
**Community Impact**: A serious violation of community standards, including
|
104
|
+
sustained inappropriate behavior.
|
105
|
+
|
106
|
+
**Consequence**: A temporary ban from any sort of interaction or public
|
107
|
+
communication with the community for a specified period of time. No public or
|
108
|
+
private interaction with the people involved, including unsolicited interaction
|
109
|
+
with those enforcing the Code of Conduct, is allowed during this period.
|
110
|
+
Violating these terms may lead to a permanent ban.
|
111
|
+
|
112
|
+
### 4. Permanent Ban
|
113
|
+
|
114
|
+
**Community Impact**: Demonstrating a pattern of violation of community
|
115
|
+
standards, including sustained inappropriate behavior, harassment of an
|
116
|
+
individual, or aggression toward or disparagement of classes of individuals.
|
117
|
+
|
118
|
+
**Consequence**: A permanent ban from any sort of public interaction within the
|
119
|
+
community.
|
120
|
+
|
121
|
+
## Attribution
|
122
|
+
|
123
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
124
|
+
version 2.1, available at
|
125
|
+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
126
|
+
|
127
|
+
Community Impact Guidelines were inspired by
|
128
|
+
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
129
|
+
|
130
|
+
For answers to common questions about this code of conduct, see the FAQ at
|
131
|
+
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
132
|
+
[https://www.contributor-covenant.org/translations][translations].
|
133
|
+
|
134
|
+
[homepage]: https://www.contributor-covenant.org
|
135
|
+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
136
|
+
[Mozilla CoC]: https://github.com/mozilla/diversity
|
137
|
+
[FAQ]: https://www.contributor-covenant.org/faq
|
138
|
+
[translations]: https://www.contributor-covenant.org/translations
|