ceedling 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/GIT_COMMIT_SHA +1 -1
- data/Gemfile +7 -1
- data/Gemfile.lock +19 -12
- data/README.md +140 -156
- data/Rakefile +189 -9
- data/assets/example_file.c +1 -1
- data/assets/example_file.h +1 -1
- data/assets/example_file_call.c +1 -1
- data/assets/example_file_call.h +1 -1
- data/assets/example_file_with_statics.c +10 -0
- data/assets/example_file_with_stdio.c +13 -0
- data/assets/example_file_with_stdio.h +15 -0
- data/assets/project.yml +20 -18
- data/assets/test_example_file.c +1 -1
- data/assets/test_example_file_boom.c +1 -1
- data/assets/test_example_file_crash_assert.c +25 -0
- data/assets/{test_example_file_crash.c → test_example_file_crash_sigsegv.c} +4 -3
- data/assets/test_example_file_source_include.c +17 -0
- data/assets/test_example_file_success.c +1 -1
- data/assets/test_example_file_unity_printf.c +1 -1
- data/assets/test_example_file_verbose.c +1 -1
- data/assets/test_example_file_with_mock.c +1 -1
- data/assets/test_example_file_with_stdio.c +18 -0
- data/assets/test_example_with_parameterized_tests.c +1 -1
- data/assets/tests_with_defines/src/adc_hardware.c +1 -1
- data/assets/tests_with_defines/src/adc_hardware.h +1 -1
- data/assets/tests_with_defines/src/adc_hardware_configurator.c +1 -1
- data/assets/tests_with_defines/src/adc_hardware_configurator.h +1 -1
- data/assets/tests_with_defines/test/test_adc_hardware.c +1 -1
- data/assets/tests_with_defines/test/test_adc_hardware_special.c +1 -1
- data/assets/tests_with_encoding/src/unicoder.c +12 -0
- data/assets/tests_with_encoding/src/unicoder.h +14 -0
- data/assets/tests_with_encoding/test/test_unicoder.c +15 -0
- data/assets/tests_with_encoding/test/test_unicoder_partial.c +17 -0
- data/assets/tests_with_fallback_conditionals/src/conditional_module.c +18 -0
- data/assets/tests_with_fallback_conditionals/src/conditional_module.h +13 -0
- data/assets/tests_with_fallback_conditionals/src/optional_dep.h +12 -0
- data/assets/tests_with_fallback_conditionals/test/test_conditionals.c +49 -0
- data/assets/tests_with_preprocessing/src/adc_hardwareA.c +1 -1
- data/assets/tests_with_preprocessing/src/adc_hardwareA.h +1 -1
- data/assets/tests_with_preprocessing/src/adc_hardwareB.c +1 -1
- data/assets/tests_with_preprocessing/src/adc_hardwareB.h +1 -1
- data/assets/tests_with_preprocessing/src/adc_hardwareC.c +1 -1
- data/assets/tests_with_preprocessing/src/adc_hardwareC.h +1 -1
- data/assets/tests_with_preprocessing/src/adc_hardware_configuratorA.h +1 -1
- data/assets/tests_with_preprocessing/src/adc_hardware_configuratorB.h +1 -1
- data/assets/tests_with_preprocessing/src/adc_hardware_configuratorC.h +1 -1
- data/assets/tests_with_preprocessing/test/test_adc_hardwareA.c +1 -1
- data/assets/tests_with_preprocessing/test/test_adc_hardwareB.c +1 -1
- data/assets/tests_with_preprocessing/test/test_adc_hardwareC.c +1 -1
- data/assets/uncovered_example_file.c +1 -1
- data/bin/actions_wrapper.rb +1 -1
- data/bin/app_cfg.rb +1 -1
- data/bin/ceedling +14 -3
- data/bin/cli.rb +110 -38
- data/bin/cli_handler.rb +167 -68
- data/bin/cli_helper.rb +179 -55
- data/bin/configinator.rb +71 -12
- data/bin/merginator.rb +82 -0
- data/bin/mixin_standardizer.rb +127 -0
- data/bin/mixinator.rb +199 -33
- data/bin/mixins.rb +4 -2
- data/bin/objects.yml +22 -1
- data/bin/path_validator.rb +1 -1
- data/bin/projectinator.rb +29 -20
- data/bin/rake_patches.rb +31 -0
- data/bin/recursive_merger.rb +128 -0
- data/bin/versionator.rb +2 -2
- data/ceedling.gemspec +31 -14
- data/config/test_environment.rb +1 -1
- data/docs/BreakingChanges.md +16 -3
- data/docs/Changelog.md +177 -6
- data/docs/KnownIssues.md +26 -0
- data/docs/ReleaseNotes.md +133 -19
- data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
- data/docs/mkdocs/assets/images/ceedling.svg +90 -0
- data/docs/mkdocs/assets/images/favicon.png +0 -0
- data/docs/mkdocs/assets/stylesheets/admonitions.css +152 -0
- data/docs/mkdocs/assets/stylesheets/fixes-local.css +15 -0
- data/docs/mkdocs/assets/stylesheets/styling.css +102 -0
- data/docs/mkdocs/configuration/environment-vars.md +14 -0
- data/docs/mkdocs/configuration/global-collections.md +156 -0
- data/docs/mkdocs/configuration/index.md +75 -0
- data/docs/mkdocs/configuration/loading.md +89 -0
- data/docs/mkdocs/configuration/mixins.md +607 -0
- data/docs/mkdocs/configuration/parallel-builds.md +97 -0
- data/docs/mkdocs/configuration/project-file.md +198 -0
- data/docs/mkdocs/configuration/reference/cexception.md +35 -0
- data/docs/mkdocs/configuration/reference/cmock.md +106 -0
- data/docs/mkdocs/configuration/reference/defines.md +352 -0
- data/docs/mkdocs/configuration/reference/environment.md +55 -0
- data/docs/mkdocs/configuration/reference/extension.md +63 -0
- data/docs/mkdocs/configuration/reference/files.md +154 -0
- data/docs/mkdocs/configuration/reference/flags.md +296 -0
- data/docs/mkdocs/configuration/reference/index.md +168 -0
- data/docs/mkdocs/configuration/reference/libraries.md +82 -0
- data/docs/mkdocs/configuration/reference/mixins.md +24 -0
- data/docs/mkdocs/configuration/reference/paths.md +276 -0
- data/docs/mkdocs/configuration/reference/plugins.md +60 -0
- data/docs/mkdocs/configuration/reference/project.md +333 -0
- data/docs/mkdocs/configuration/reference/release-build.md +62 -0
- data/docs/mkdocs/configuration/reference/test-build.md +55 -0
- data/docs/mkdocs/configuration/reference/test-runner.md +61 -0
- data/docs/mkdocs/configuration/reference/tools.md +457 -0
- data/docs/mkdocs/configuration/reference/unity.md +49 -0
- data/docs/mkdocs/configuration/which-ceedling.md +77 -0
- data/docs/mkdocs/development/index.md +50 -0
- data/docs/mkdocs/development/plugins/configuration.md +164 -0
- data/docs/mkdocs/development/plugins/index.md +84 -0
- data/docs/{PluginDevelopmentGuide.md → mkdocs/development/plugins/plugin-subclass.md} +61 -312
- data/docs/mkdocs/development/plugins/rake-tasks.md +54 -0
- data/docs/mkdocs/development/workflow.md +284 -0
- data/docs/mkdocs/getting-started/command-line.md +477 -0
- data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +65 -0
- data/docs/mkdocs/getting-started/example-projects/index.md +49 -0
- data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +60 -0
- data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +45 -0
- data/docs/mkdocs/getting-started/index.md +41 -0
- data/docs/mkdocs/getting-started/installation.md +172 -0
- data/docs/mkdocs/getting-started/quick-start.md +65 -0
- data/docs/mkdocs/help.md +49 -0
- data/docs/mkdocs/index.md +215 -0
- data/docs/mkdocs/overview/build-system.md +115 -0
- data/docs/mkdocs/overview/index.md +29 -0
- data/docs/mkdocs/overview/test-environments.md +33 -0
- data/docs/mkdocs/overview/tools-and-frameworks.md +115 -0
- data/{plugins/beep/README.md → docs/mkdocs/plugins/beep.md} +10 -9
- data/{plugins/bullseye/README.md → docs/mkdocs/plugins/bullseye.md} +8 -12
- data/{plugins/command_hooks/README.md → docs/mkdocs/plugins/command-hooks.md} +69 -47
- data/{plugins/compile_commands_json_db/README.md → docs/mkdocs/plugins/compile-commands-json-db.md} +7 -5
- data/docs/mkdocs/plugins/cppcheck.md +377 -0
- data/{plugins/dependencies/README.md → docs/mkdocs/plugins/dependencies.md} +39 -50
- data/{plugins/fff/README.md → docs/mkdocs/plugins/fff.md} +42 -37
- data/docs/mkdocs/plugins/gcov/examples.md +92 -0
- data/docs/mkdocs/plugins/gcov/gcovr.md +251 -0
- data/docs/mkdocs/plugins/gcov/index.md +68 -0
- data/docs/mkdocs/plugins/gcov/overview.md +145 -0
- data/docs/mkdocs/plugins/gcov/reportgenerator.md +58 -0
- data/docs/mkdocs/plugins/gcov/reporting.md +147 -0
- data/docs/mkdocs/plugins/gcov/setup.md +232 -0
- data/docs/mkdocs/plugins/gcov/tool-versions.md +60 -0
- data/docs/mkdocs/plugins/gcov/troubleshooting.md +78 -0
- data/docs/mkdocs/plugins/index.md +221 -0
- data/{plugins/module_generator/README.md → docs/mkdocs/plugins/module-generator.md} +44 -44
- data/{plugins/report_build_warnings_log/README.md → docs/mkdocs/plugins/report-build-warnings-log.md} +6 -4
- data/{plugins/report_tests_gtestlike_stdout/README.md → docs/mkdocs/plugins/report-tests-gtestlike-stdout.md} +9 -7
- data/{plugins/report_tests_ide_stdout/README.md → docs/mkdocs/plugins/report-tests-ide-stdout.md} +8 -7
- data/{plugins/report_tests_log_factory/README.md → docs/mkdocs/plugins/report-tests-log-factory.md} +44 -36
- data/{plugins/report_tests_pretty_stdout/README.md → docs/mkdocs/plugins/report-tests-pretty-stdout.md} +8 -6
- data/{plugins/report_tests_raw_output_log/README.md → docs/mkdocs/plugins/report-tests-raw-output-log.md} +9 -7
- data/{plugins/report_tests_teamcity_stdout/README.md → docs/mkdocs/plugins/report-tests-teamcity-stdout.md} +8 -6
- data/docs/mkdocs/plugins/sample_html_report.png +0 -0
- data/docs/mkdocs/plugins/valgrind.md +192 -0
- data/docs/mkdocs/project/release-history.md +61 -0
- data/docs/{CeedlingUpgrade.md → mkdocs/project/upgrade.md} +9 -7
- data/docs/mkdocs/reference/build-directives.md +37 -0
- data/docs/mkdocs/reference/command-line.md +323 -0
- data/docs/mkdocs/reference/environment-vars.md +60 -0
- data/docs/mkdocs/reference/gcov-plugin.md +577 -0
- data/docs/mkdocs/reference/global-collections.md +160 -0
- data/docs/mkdocs/reference/index.md +65 -0
- data/docs/mkdocs/reference/partials-macros.md +79 -0
- data/docs/mkdocs/reference/project-configuration.md +46 -0
- data/docs/mkdocs/snapshot/assets/project.yml +404 -0
- data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +210 -0
- data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +283 -0
- data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +92 -0
- data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +33 -0
- data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +136 -0
- data/docs/mkdocs/snapshot.yml +20 -0
- data/docs/mkdocs/testing-guide/build-directives.md +153 -0
- data/docs/mkdocs/testing-guide/conventions.md +616 -0
- data/docs/mkdocs/testing-guide/frameworks.md +192 -0
- data/docs/mkdocs/testing-guide/index.md +80 -0
- data/docs/mkdocs/testing-guide/partials/configuration.md +67 -0
- data/docs/mkdocs/testing-guide/partials/conventions.md +68 -0
- data/docs/mkdocs/testing-guide/partials/directives.md +212 -0
- data/docs/mkdocs/testing-guide/partials/example.md +149 -0
- data/docs/mkdocs/testing-guide/partials/index.md +79 -0
- data/docs/mkdocs/testing-guide/partials/overview.md +81 -0
- data/docs/mkdocs/testing-guide/partials/variables.md +244 -0
- data/docs/mkdocs/testing-guide/test-cases.md +194 -0
- data/docs/mkdocs/testing-guide/test-sample.md +94 -0
- data/docs/mkdocs/testing-guide/test-suite-anatomy.md +58 -0
- data/examples/cipher_quest/README.md +210 -0
- data/examples/cipher_quest/mixin/release_analyze.yml +28 -0
- data/examples/cipher_quest/mixin/release_caesar.yml +28 -0
- data/examples/cipher_quest/mixin/release_full.yml +30 -0
- data/examples/cipher_quest/mixin/release_rot13.yml +28 -0
- data/examples/cipher_quest/project.yml +108 -0
- data/examples/cipher_quest/src/analyzer.c +83 -0
- data/examples/cipher_quest/src/analyzer.h +29 -0
- data/examples/cipher_quest/src/cipher.c +59 -0
- data/examples/cipher_quest/src/cipher.h +27 -0
- data/examples/cipher_quest/src/main.c +151 -0
- data/examples/cipher_quest/src/text_utils.c +119 -0
- data/examples/cipher_quest/src/text_utils.h +23 -0
- data/examples/cipher_quest/test/TestAnalyzer.c +133 -0
- data/examples/cipher_quest/test/TestCipherCaesar.c +81 -0
- data/examples/cipher_quest/test/TestCipherRot13.c +74 -0
- data/examples/cipher_quest/test/TestTextUtils.c +184 -0
- data/examples/temp_sensor/README.md +279 -14
- data/examples/temp_sensor/mixin/add_gcov.yml +1 -1
- data/examples/temp_sensor/mixin/add_unity_helper.yml +1 -1
- data/examples/temp_sensor/project.yml +4 -15
- data/examples/temp_sensor/src/AdcConductor.c +5 -1
- data/examples/temp_sensor/src/AdcConductor.h +1 -1
- data/examples/temp_sensor/src/AdcHardware.c +1 -1
- data/examples/temp_sensor/src/AdcHardware.h +1 -1
- data/examples/temp_sensor/src/AdcHardwareConfigurator.c +2 -1
- data/examples/temp_sensor/src/AdcHardwareConfigurator.h +1 -1
- data/examples/temp_sensor/src/AdcModel.c +2 -2
- data/examples/temp_sensor/src/AdcModel.h +1 -1
- data/examples/temp_sensor/src/AdcTemperatureSensor.c +2 -1
- data/examples/temp_sensor/src/AdcTemperatureSensor.h +1 -1
- data/examples/temp_sensor/src/Executor.c +1 -1
- data/examples/temp_sensor/src/Executor.h +1 -1
- data/examples/temp_sensor/src/IntrinsicsWrapper.c +1 -1
- data/examples/temp_sensor/src/IntrinsicsWrapper.h +1 -1
- data/examples/temp_sensor/src/Main.c +3 -3
- data/examples/temp_sensor/src/Main.h +1 -1
- data/examples/temp_sensor/src/Model.c +1 -1
- data/examples/temp_sensor/src/Model.h +1 -1
- data/examples/temp_sensor/src/ModelConfig.h +1 -1
- data/examples/temp_sensor/src/TaskScheduler.c +1 -1
- data/examples/temp_sensor/src/TaskScheduler.h +1 -1
- data/examples/temp_sensor/src/TemperatureFilter.c +1 -1
- data/examples/temp_sensor/src/TemperatureFilter.h +1 -1
- data/examples/temp_sensor/src/TimerConductor.c +1 -1
- data/examples/temp_sensor/src/TimerConductor.h +1 -1
- data/examples/temp_sensor/src/TimerConfigurator.c +2 -1
- data/examples/temp_sensor/src/TimerConfigurator.h +1 -1
- data/examples/temp_sensor/src/TimerHardware.c +1 -1
- data/examples/temp_sensor/src/TimerHardware.h +1 -1
- data/examples/temp_sensor/src/TimerInterruptConfigurator.c +2 -1
- data/examples/temp_sensor/src/TimerInterruptConfigurator.h +1 -1
- data/examples/temp_sensor/src/TimerInterruptHandler.c +2 -1
- data/examples/temp_sensor/src/TimerInterruptHandler.h +1 -1
- data/examples/temp_sensor/src/TimerModel.c +1 -1
- data/examples/temp_sensor/src/TimerModel.h +1 -1
- data/examples/temp_sensor/src/Types.h +5 -2
- data/examples/temp_sensor/src/UsartConductor.c +1 -1
- data/examples/temp_sensor/src/UsartConductor.h +1 -1
- data/examples/temp_sensor/src/UsartConfigurator.c +2 -1
- data/examples/temp_sensor/src/UsartConfigurator.h +1 -1
- data/examples/temp_sensor/src/UsartHardware.c +1 -1
- data/examples/temp_sensor/src/UsartHardware.h +1 -1
- data/examples/temp_sensor/src/UsartModel.c +2 -2
- data/examples/temp_sensor/src/UsartModel.h +1 -1
- data/examples/temp_sensor/src/UsartPutChar.c +2 -1
- data/examples/temp_sensor/src/UsartPutChar.h +1 -1
- data/examples/temp_sensor/src/UsartTransmitBufferStatus.c +2 -1
- data/examples/temp_sensor/src/UsartTransmitBufferStatus.h +1 -1
- data/examples/temp_sensor/src/{TemperatureCalculator.c → calculators/TemperatureCalculator.c} +1 -1
- data/examples/temp_sensor/src/{TemperatureCalculator.h → calculators/TemperatureCalculator.h} +1 -1
- data/examples/temp_sensor/src/{UsartBaudRateRegisterCalculator.c → calculators/UsartBaudRateRegisterCalculator.c} +1 -1
- data/examples/temp_sensor/src/{UsartBaudRateRegisterCalculator.h → calculators/UsartBaudRateRegisterCalculator.h} +1 -1
- data/examples/temp_sensor/test/TestExecutor.c +1 -1
- data/examples/temp_sensor/test/TestMain.c +5 -1
- data/examples/temp_sensor/test/TestModel.c +1 -1
- data/examples/temp_sensor/test/TestTaskScheduler.c +1 -1
- data/examples/temp_sensor/test/TestTemperatureCalculator.c +2 -2
- data/examples/temp_sensor/test/TestTemperatureFilter.c +5 -2
- data/examples/temp_sensor/test/TestTimerConductor.c +1 -1
- data/examples/temp_sensor/test/TestTimerHardware.c +1 -1
- data/examples/temp_sensor/test/TestTimerIntegrated.c +8 -4
- data/examples/temp_sensor/test/TestTimerModel.c +1 -1
- data/examples/temp_sensor/test/TestTimerPlatformStandin.c +154 -0
- data/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +1 -1
- data/examples/temp_sensor/test/TestUsartConductor.c +1 -1
- data/examples/temp_sensor/test/TestUsartHardware.c +1 -1
- data/examples/temp_sensor/test/TestUsartIntegrated.c +9 -5
- data/examples/temp_sensor/test/TestUsartModel.c +2 -2
- data/examples/temp_sensor/test/TestUsartPlatformStandin.c +145 -0
- data/examples/temp_sensor/test/adc/TestAdcConductor.c +1 -1
- data/examples/temp_sensor/test/adc/TestAdcHardware.c +1 -1
- data/examples/temp_sensor/test/adc/TestAdcModel.c +1 -1
- data/examples/temp_sensor/test/adc/TestAdcPlatformStandin.c +100 -0
- data/examples/temp_sensor/test/platform/at91sam7s256.c +25 -0
- data/examples/temp_sensor/test/platform/at91sam7s256.h +183 -0
- data/examples/temp_sensor/test/support/UnityHelper.c +1 -1
- data/examples/temp_sensor/test/support/UnityHelper.h +1 -1
- data/examples/wondrous_forest/README.md +92 -0
- data/{lib/ceedling/release_invoker_helper.rb → examples/wondrous_forest/mixin/add_gcov.yml} +14 -4
- data/examples/wondrous_forest/project.yml +86 -0
- data/examples/wondrous_forest/src/AlertManager.c +125 -0
- data/examples/wondrous_forest/src/AlertManager.h +30 -0
- data/examples/wondrous_forest/src/EventQueue.c +73 -0
- data/examples/wondrous_forest/src/EventQueue.h +22 -0
- data/examples/wondrous_forest/src/ForestMonitor.c +88 -0
- data/examples/wondrous_forest/src/ForestMonitor.h +18 -0
- data/examples/wondrous_forest/src/HumiditySensor.c +57 -0
- data/examples/wondrous_forest/src/HumiditySensor.h +17 -0
- data/examples/wondrous_forest/src/LightSensor.c +51 -0
- data/examples/wondrous_forest/src/LightSensor.h +18 -0
- data/examples/wondrous_forest/src/SensorHal.c +62 -0
- data/examples/wondrous_forest/src/SensorHal.h +19 -0
- data/examples/wondrous_forest/src/SoilMoisture.c +61 -0
- data/examples/wondrous_forest/src/SoilMoisture.h +19 -0
- data/examples/wondrous_forest/src/TemperatureSensor.c +67 -0
- data/examples/wondrous_forest/src/TemperatureSensor.h +18 -0
- data/examples/wondrous_forest/src/Types.h +84 -0
- data/examples/wondrous_forest/src/UartDriver.c +55 -0
- data/examples/wondrous_forest/src/UartDriver.h +18 -0
- data/examples/wondrous_forest/test/TestAlertManager.c +105 -0
- data/examples/wondrous_forest/test/TestEventQueue.c +117 -0
- data/examples/wondrous_forest/test/TestForestMonitor.c +118 -0
- data/examples/wondrous_forest/test/TestHumiditySensor.c +85 -0
- data/examples/wondrous_forest/test/TestLightSensor.c +79 -0
- data/examples/wondrous_forest/test/TestSensorHal.c +58 -0
- data/examples/wondrous_forest/test/TestSoilMoisture.c +96 -0
- data/examples/wondrous_forest/test/TestTemperatureSensor.c +100 -0
- data/examples/wondrous_forest/test/TestUartDriver.c +55 -0
- data/lib/ceedling/application.rb +1 -1
- data/lib/ceedling/array_patches.rb +28 -0
- data/lib/ceedling/batchinator.rb +76 -0
- data/lib/ceedling/c_extractor/c_extractor.rb +340 -0
- data/lib/ceedling/c_extractor/c_extractor_code_text.rb +283 -0
- data/lib/ceedling/c_extractor/c_extractor_constants.rb +38 -0
- data/lib/ceedling/c_extractor/c_extractor_declarations.rb +415 -0
- data/lib/ceedling/c_extractor/c_extractor_definitions.rb +157 -0
- data/lib/ceedling/c_extractor/c_extractor_functions.rb +402 -0
- data/lib/ceedling/c_extractor/c_extractor_preprocessing.rb +262 -0
- data/lib/ceedling/c_extractor/c_extractor_types.rb +122 -0
- data/lib/ceedling/cacheinator.rb +1 -1
- data/lib/ceedling/cacheinator_helper.rb +23 -4
- data/lib/ceedling/ceedling.h +40 -0
- data/lib/ceedling/{config_matchinator.rb → config/config_matchinator.rb} +67 -5
- data/lib/ceedling/{config_walkinator.rb → config/config_walkinator.rb} +1 -1
- data/lib/ceedling/{configurator.rb → config/configurator.rb} +269 -107
- data/lib/ceedling/{configurator_builder.rb → config/configurator_builder.rb} +25 -6
- data/lib/ceedling/{configurator_plugins.rb → config/configurator_plugins.rb} +2 -4
- data/lib/ceedling/{configurator_setup.rb → config/configurator_setup.rb} +39 -71
- data/lib/ceedling/{configurator_validator.rb → config/configurator_validator.rb} +1 -1
- data/lib/ceedling/constants.rb +59 -18
- data/lib/ceedling/defaults.rb +31 -44
- data/lib/ceedling/defineinator.rb +2 -2
- data/lib/ceedling/dependinator.rb +1 -1
- data/lib/ceedling/encodinator.rb +1 -1
- data/lib/ceedling/erb_wrapper.rb +1 -1
- data/lib/ceedling/exceptions.rb +23 -3
- data/lib/ceedling/file_finder.rb +39 -10
- data/lib/ceedling/file_finder_helper.rb +2 -2
- data/lib/ceedling/file_path_collection_utils.rb +37 -23
- data/lib/ceedling/file_path_utils.rb +183 -26
- data/lib/ceedling/file_system_wrapper.rb +1 -1
- data/lib/ceedling/file_wrapper.rb +14 -1
- data/lib/ceedling/flaginator.rb +1 -1
- data/lib/ceedling/{generator.rb → generators/generator.rb} +86 -23
- data/lib/ceedling/{generator_helper.rb → generators/generator_helper.rb} +17 -11
- data/lib/ceedling/{generator_mocks.rb → generators/generator_mocks.rb} +1 -1
- data/lib/ceedling/generators/generator_partials.rb +177 -0
- data/lib/ceedling/{generator_test_results.rb → generators/generator_test_results.rb} +43 -17
- data/lib/ceedling/generators/generator_test_results_backtrace.rb +290 -0
- data/lib/ceedling/{generator_test_results_sanity_checker.rb → generators/generator_test_results_sanity_checker.rb} +1 -1
- data/lib/ceedling/generators/generator_test_runner.rb +97 -0
- data/lib/ceedling/includes/include_factory.rb +43 -0
- data/lib/ceedling/{include_pathinator.rb → includes/include_pathinator.rb} +1 -1
- data/lib/ceedling/includes/includes.rb +341 -0
- data/lib/ceedling/loginator.rb +115 -12
- data/lib/ceedling/makefile.rb +1 -1
- data/lib/ceedling/objects.yml +145 -43
- data/lib/ceedling/parsing_parcels.rb +35 -9
- data/lib/ceedling/partials/partializer.rb +444 -0
- data/lib/ceedling/partials/partializer_config.rb +217 -0
- data/lib/ceedling/partials/partializer_helper.rb +344 -0
- data/lib/ceedling/partials/partializer_runtime.rb +29 -0
- data/lib/ceedling/partials/partializer_utils.rb +222 -0
- data/lib/ceedling/partials/partials.rb +82 -0
- data/lib/ceedling/{plugin.rb → plugins/plugin.rb} +1 -1
- data/lib/ceedling/{plugin_manager.rb → plugins/plugin_manager.rb} +47 -21
- data/lib/ceedling/{plugin_manager_helper.rb → plugins/plugin_manager_helper.rb} +1 -1
- data/lib/ceedling/{plugin_reportinator.rb → plugins/plugin_reportinator.rb} +10 -18
- data/lib/ceedling/{plugin_reportinator_helper.rb → plugins/plugin_reportinator_helper.rb} +22 -26
- data/lib/ceedling/plugins/report_tests_stdout_plugin.rb +88 -0
- data/lib/ceedling/preprocess/README.md +184 -0
- data/lib/ceedling/preprocess/c_comment_scanner.rb +194 -0
- data/lib/ceedling/preprocess/c_preprocessor_conditionals.rb +170 -0
- data/lib/ceedling/preprocess/preprocessinator.rb +605 -0
- data/lib/ceedling/preprocess/preprocessinator_bare_includes_extractor.rb +69 -0
- data/lib/ceedling/preprocess/preprocessinator_code_finder.rb +150 -0
- data/lib/ceedling/preprocess/preprocessinator_comment_stripper.rb +80 -0
- data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +378 -0
- data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +224 -0
- data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +215 -0
- data/lib/ceedling/preprocess/preprocessinator_reconstructor.rb +398 -0
- data/lib/ceedling/rake_app/rake_invocation_tracker.rb +39 -0
- data/lib/ceedling/rake_app/rake_task_registry.rb +210 -0
- data/lib/ceedling/{rake_utils.rb → rake_app/rake_utils.rb} +1 -1
- data/lib/ceedling/{rake_wrapper.rb → rake_app/rake_wrapper.rb} +1 -1
- data/lib/ceedling/rake_app/rakefile_component_resolver.rb +77 -0
- data/lib/ceedling/rakefile.rb +16 -8
- data/lib/ceedling/release_invoker.rb +48 -4
- data/lib/ceedling/reportinator.rb +39 -18
- data/lib/ceedling/ruby_expandinator.rb +61 -0
- data/lib/ceedling/rules_release.rake +4 -2
- data/lib/ceedling/rules_tests.rake +1 -23
- data/lib/ceedling/setupinator.rb +23 -11
- data/lib/ceedling/stream_wrapper.rb +1 -1
- data/lib/ceedling/system_utils.rb +1 -1
- data/lib/ceedling/system_wrapper.rb +18 -21
- data/lib/ceedling/tasks_base.rake +3 -3
- data/lib/ceedling/tasks_filesystem.rake +22 -12
- data/lib/ceedling/tasks_release.rake +11 -18
- data/lib/ceedling/tasks_tests.rake +1 -1
- data/lib/ceedling/test_context_extractor.rb +178 -109
- data/lib/ceedling/test_invoker/test_build_executor.rb +661 -0
- data/lib/ceedling/test_invoker/test_build_planner.rb +277 -0
- data/lib/ceedling/test_invoker/test_build_setup.rb +441 -0
- data/lib/ceedling/test_invoker/test_invoker.rb +251 -0
- data/lib/ceedling/test_invoker/test_invoker_types.rb +56 -0
- data/lib/ceedling/test_runner_manager.rb +1 -1
- data/lib/ceedling/tool_executor.rb +29 -19
- data/lib/ceedling/tool_executor_helper.rb +7 -15
- data/lib/ceedling/tool_validator.rb +24 -8
- data/lib/ceedling/verbosinator.rb +1 -1
- data/lib/ceedling/yaml_wrapper.rb +72 -12
- data/lib/ceedling.rb +1 -1
- data/lib/snapshot.rb +43 -0
- data/lib/version.rb +2 -2
- data/license.txt +1 -1
- data/mkdocs.local.yml +45 -0
- data/mkdocs.yml +202 -0
- data/plugins/beep/config/defaults.yml +1 -1
- data/plugins/beep/config/defaults_beep.rb +1 -1
- data/plugins/beep/lib/beep.rb +7 -5
- data/plugins/bullseye/assets/template.erb +1 -1
- data/plugins/bullseye/bullseye.rake +1 -1
- data/plugins/bullseye/config/defaults.yml +1 -1
- data/plugins/bullseye/lib/bullseye.rb +9 -9
- data/plugins/command_hooks/lib/command_hooks.rb +43 -38
- data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +2 -2
- data/plugins/cppcheck/AUTHORS.md +8 -0
- data/plugins/cppcheck/config/defaults.yml +44 -0
- data/plugins/cppcheck/config/defaults_cppcheck.rb +32 -0
- data/plugins/cppcheck/cppcheck.rake +54 -0
- data/plugins/cppcheck/lib/cppcheck.rb +247 -0
- data/plugins/cppcheck/lib/cppcheck_constants.rb +20 -0
- data/plugins/cppcheck/lib/cppcheck_reports.rb +160 -0
- data/plugins/dependencies/Rakefile +1 -1
- data/plugins/dependencies/config/defaults.yml +1 -1
- data/plugins/dependencies/dependencies.rake +3 -3
- data/plugins/dependencies/example/boss/project.yml +1 -3
- data/plugins/dependencies/example/boss/src/boss.c +1 -1
- data/plugins/dependencies/example/boss/src/boss.h +1 -1
- data/plugins/dependencies/example/boss/src/main.c +1 -1
- data/plugins/dependencies/example/boss/test/test_boss.c +1 -1
- data/plugins/dependencies/example/supervisor/project.yml +1 -3
- data/plugins/dependencies/example/supervisor/src/supervisor.c +1 -1
- data/plugins/dependencies/example/supervisor/src/supervisor.h +1 -1
- data/plugins/dependencies/example/supervisor/test/test_supervisor.c +1 -1
- data/plugins/dependencies/lib/dependencies.rb +14 -2
- data/plugins/fff/Rakefile +1 -1
- data/plugins/fff/config/fff.yml +1 -1
- data/plugins/fff/examples/fff_example/project.yml +2 -2
- data/plugins/fff/examples/fff_example/src/bar.c +1 -1
- data/plugins/fff/examples/fff_example/src/bar.h +1 -1
- data/plugins/fff/examples/fff_example/src/custom_types.h +1 -1
- data/plugins/fff/examples/fff_example/src/display.c +1 -1
- data/plugins/fff/examples/fff_example/src/display.h +1 -1
- data/plugins/fff/examples/fff_example/src/event_processor.c +1 -1
- data/plugins/fff/examples/fff_example/src/event_processor.h +1 -1
- data/plugins/fff/examples/fff_example/src/foo.c +1 -1
- data/plugins/fff/examples/fff_example/src/foo.h +1 -1
- data/plugins/fff/examples/fff_example/src/subfolder/zzz.c +1 -1
- data/plugins/fff/examples/fff_example/src/subfolder/zzz.h +1 -1
- data/plugins/fff/examples/fff_example/test/test_event_processor.c +1 -1
- data/plugins/fff/examples/fff_example/test/test_foo.c +1 -1
- data/plugins/fff/lib/fff.rb +10 -5
- data/plugins/fff/lib/fff_mock_generator.rb +1 -1
- data/plugins/fff/spec/fff_mock_header_generator_spec.rb +1 -1
- data/plugins/fff/spec/fff_mock_source_generator_spec.rb +1 -1
- data/plugins/fff/spec/header_generator.rb +1 -1
- data/plugins/fff/spec/spec_helper.rb +1 -1
- data/plugins/fff/src/fff_unity_helper.h +1 -1
- data/plugins/gcov/config/defaults.yml +4 -1
- data/plugins/gcov/config/defaults_gcov.rb +40 -13
- data/plugins/gcov/gcov.rake +31 -1
- data/plugins/gcov/lib/console_reportinator.rb +180 -0
- data/plugins/gcov/lib/gcov.rb +189 -103
- data/plugins/gcov/lib/gcov_constants.rb +16 -4
- data/plugins/gcov/lib/gcov_reportinator.rb +63 -0
- data/{spec/configurator_helper_spec.rb → plugins/gcov/lib/gcov_types.rb} +2 -6
- data/plugins/gcov/lib/gcovr_reportinator.rb +237 -136
- data/plugins/gcov/lib/reportgenerator_reportinator.rb +242 -116
- data/plugins/module_generator/Rakefile +1 -1
- data/plugins/module_generator/assets/stubby1.h +1 -1
- data/plugins/module_generator/assets/stubby2.h +1 -1
- data/plugins/module_generator/config/module_generator.yml +1 -1
- data/plugins/module_generator/example/project.yml +1 -3
- data/plugins/module_generator/lib/module_generator.rb +2 -2
- data/plugins/module_generator/module_generator.rake +1 -1
- data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +14 -20
- data/plugins/report_tests_gtestlike_stdout/assets/template.erb +3 -3
- data/plugins/report_tests_gtestlike_stdout/config/report_tests_gtestlike_stdout.yml +1 -1
- data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +4 -61
- data/plugins/report_tests_ide_stdout/config/report_tests_ide_stdout.yml +1 -1
- data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +7 -60
- data/plugins/report_tests_log_factory/config/defaults.yml +1 -1
- data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +5 -5
- data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +302 -133
- data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +9 -7
- data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +6 -5
- data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -36
- data/plugins/report_tests_log_factory/lib/tests_reporter.rb +8 -8
- data/plugins/report_tests_pretty_stdout/assets/template.erb +1 -2
- data/plugins/report_tests_pretty_stdout/config/report_tests_pretty_stdout.yml +1 -1
- data/plugins/report_tests_pretty_stdout/lib/report_tests_pretty_stdout.rb +4 -65
- data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +4 -4
- data/plugins/report_tests_teamcity_stdout/config/defaults.yml +1 -1
- data/plugins/report_tests_teamcity_stdout/config/report_tests_teamcity_stdout.yml +1 -1
- data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +2 -2
- data/plugins/valgrind/config/defaults.yml +19 -0
- data/plugins/valgrind/config/defaults_valgrind.rb +20 -0
- data/plugins/valgrind/lib/valgrind.rb +132 -0
- data/plugins/valgrind/lib/valgrind_constants.rb +13 -0
- data/plugins/valgrind/valgrind.rake +87 -0
- data/site-local/404.html +4002 -0
- data/site-local/assets/images/ceedling-logo-circle.png +0 -0
- data/site-local/assets/images/ceedling.svg +90 -0
- data/site-local/assets/images/favicon.png +0 -0
- data/site-local/assets/javascripts/bundle.79ae519e.min.js +16 -0
- data/site-local/assets/javascripts/bundle.79ae519e.min.js.map +7 -0
- data/site-local/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
- data/site-local/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
- data/site-local/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
- data/site-local/assets/javascripts/lunr/tinyseg.js +206 -0
- data/site-local/assets/javascripts/lunr/wordcut.js +6708 -0
- data/site-local/assets/javascripts/workers/search.2c215733.min.js +42 -0
- data/site-local/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
- data/site-local/assets/stylesheets/admonitions.css +152 -0
- data/site-local/assets/stylesheets/fixes-local.css +15 -0
- data/site-local/assets/stylesheets/main.484c7ddc.min.css +1 -0
- data/site-local/assets/stylesheets/main.484c7ddc.min.css.map +1 -0
- data/site-local/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
- data/site-local/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
- data/site-local/assets/stylesheets/styling.css +102 -0
- data/site-local/configuration/environment-vars.html +4102 -0
- data/site-local/configuration/global-collections.html +4248 -0
- data/site-local/configuration/index.html +4169 -0
- data/site-local/configuration/loading.html +4348 -0
- data/site-local/configuration/mixins.html +5060 -0
- data/site-local/configuration/parallel-builds.html +4347 -0
- data/site-local/configuration/project-file.html +4474 -0
- data/site-local/configuration/reference/cexception.html +4225 -0
- data/site-local/configuration/reference/cmock.html +4401 -0
- data/site-local/configuration/reference/defines.html +4734 -0
- data/site-local/configuration/reference/environment.html +4242 -0
- data/site-local/configuration/reference/extension.html +4387 -0
- data/site-local/configuration/reference/files.html +4541 -0
- data/site-local/configuration/reference/flags.html +4681 -0
- data/site-local/configuration/reference/index.html +4290 -0
- data/site-local/configuration/reference/libraries.html +4365 -0
- data/site-local/configuration/reference/mixins.html +4195 -0
- data/site-local/configuration/reference/paths.html +4714 -0
- data/site-local/configuration/reference/plugins.html +4262 -0
- data/site-local/configuration/reference/project.html +4777 -0
- data/site-local/configuration/reference/release-build.html +4287 -0
- data/site-local/configuration/reference/test-build.html +4264 -0
- data/site-local/configuration/reference/test-runner.html +4289 -0
- data/site-local/configuration/reference/tools.html +5120 -0
- data/site-local/configuration/reference/unity.html +4255 -0
- data/site-local/configuration/which-ceedling.html +4269 -0
- data/site-local/development/index.html +4148 -0
- data/site-local/development/plugins/configuration.html +4446 -0
- data/site-local/development/plugins/index.html +4212 -0
- data/site-local/development/plugins/plugin-subclass.html +5068 -0
- data/site-local/development/plugins/rake-tasks.html +4236 -0
- data/site-local/development/workflow.html +4664 -0
- data/site-local/getting-started/command-line.html +5498 -0
- data/site-local/getting-started/example-projects/cipher-quest.html +4272 -0
- data/site-local/getting-started/example-projects/index.html +4173 -0
- data/site-local/getting-started/example-projects/temp-sensor.html +4322 -0
- data/site-local/getting-started/example-projects/wondrous-forest.html +4290 -0
- data/site-local/getting-started/index.html +4116 -0
- data/site-local/getting-started/installation.html +4452 -0
- data/site-local/getting-started/quick-start.html +4262 -0
- data/site-local/help.html +4081 -0
- data/site-local/index.html +4364 -0
- data/site-local/overview/build-system.html +4288 -0
- data/site-local/overview/index.html +4103 -0
- data/site-local/overview/test-environments.html +4116 -0
- data/site-local/overview/tools-and-frameworks.html +4433 -0
- data/site-local/plugins/beep.html +4413 -0
- data/site-local/plugins/bullseye.html +4249 -0
- data/site-local/plugins/command-hooks.html +5023 -0
- data/site-local/plugins/compile-commands-json-db.html +4243 -0
- data/site-local/plugins/cppcheck.html +4851 -0
- data/site-local/plugins/dependencies.html +4828 -0
- data/site-local/plugins/fff.html +4661 -0
- data/site-local/plugins/gcov/examples.html +4293 -0
- data/site-local/plugins/gcov/gcovr.html +4512 -0
- data/site-local/plugins/gcov/index.html +4150 -0
- data/site-local/plugins/gcov/overview.html +4410 -0
- data/site-local/plugins/gcov/reportgenerator.html +4164 -0
- data/site-local/plugins/gcov/reporting.html +4336 -0
- data/site-local/plugins/gcov/setup.html +4597 -0
- data/site-local/plugins/gcov/tool-versions.html +4269 -0
- data/site-local/plugins/gcov/troubleshooting.html +4313 -0
- data/site-local/plugins/index.html +4348 -0
- data/site-local/plugins/module-generator.html +4588 -0
- data/site-local/plugins/report-build-warnings-log.html +4229 -0
- data/site-local/plugins/report-tests-gtestlike-stdout.html +4357 -0
- data/site-local/plugins/report-tests-ide-stdout.html +4270 -0
- data/site-local/plugins/report-tests-log-factory.html +4792 -0
- data/site-local/plugins/report-tests-pretty-stdout.html +4265 -0
- data/site-local/plugins/report-tests-raw-output-log.html +4292 -0
- data/site-local/plugins/report-tests-teamcity-stdout.html +4291 -0
- data/site-local/plugins/sample_html_report.png +0 -0
- data/site-local/plugins/valgrind.html +4605 -0
- data/site-local/project/release-history.html +4225 -0
- data/site-local/project/upgrade.html +4314 -0
- data/site-local/reference/build-directives.html +4210 -0
- data/site-local/reference/command-line.html +4989 -0
- data/site-local/reference/environment-vars.html +4278 -0
- data/site-local/reference/gcov-plugin.html +5886 -0
- data/site-local/reference/global-collections.html +4385 -0
- data/site-local/reference/index.html +4126 -0
- data/site-local/reference/partials-macros.html +4326 -0
- data/site-local/reference/project-configuration.html +4253 -0
- data/site-local/sitemap.xml +3 -0
- data/site-local/sitemap.xml.gz +0 -0
- data/site-local/snapshot/assets/project.yml +404 -0
- data/site-local/snapshot/examples/cipher_quest/index.html +4292 -0
- data/site-local/snapshot/examples/temp_sensor/index.html +4416 -0
- data/site-local/snapshot/examples/wondrous_forest/index.html +4200 -0
- data/site-local/snapshot/plugins/gcov/config/defaults.yml +33 -0
- data/site-local/snapshot/plugins/gcov/config/defaults_gcov.rb +136 -0
- data/site-local/testing-guide/build-directives.html +4481 -0
- data/site-local/testing-guide/conventions.html +5233 -0
- data/site-local/testing-guide/frameworks.html +4488 -0
- data/site-local/testing-guide/index.html +4174 -0
- data/site-local/testing-guide/partials/configuration.html +4347 -0
- data/site-local/testing-guide/partials/conventions.html +4327 -0
- data/site-local/testing-guide/partials/directives.html +4680 -0
- data/site-local/testing-guide/partials/example.html +4448 -0
- data/site-local/testing-guide/partials/index.html +4167 -0
- data/site-local/testing-guide/partials/overview.html +4322 -0
- data/site-local/testing-guide/partials/variables.html +4548 -0
- data/site-local/testing-guide/test-cases.html +4436 -0
- data/site-local/testing-guide/test-sample.html +4265 -0
- data/site-local/testing-guide/test-suite-anatomy.html +4249 -0
- data/spec/manual/stress_test.rb +1 -1
- data/spec/support/other_target.yml +1 -1
- data/spec/support/spec_helper.rb +20 -0
- data/spec/support/system/gem_dir_layout.rb +20 -0
- data/spec/support/system/spec_system_helper.rb +206 -0
- data/spec/support/system/system_context.rb +310 -0
- data/spec/support/system/system_test_output.rb +28 -0
- data/spec/support/target.yml +1 -1
- data/spec/system/cppcheck_deployment_spec.rb +49 -0
- data/spec/system/deployment_as_gem_spec.rb +86 -48
- data/spec/system/deployment_as_vendor_spec.rb +141 -79
- data/spec/system/encoding_stress_spec.rb +153 -0
- data/spec/system/example_cipher_quest_spec.rb +186 -0
- data/spec/system/example_temp_sensor_spec.rb +41 -35
- data/spec/system/example_wondrous_forest_spec.rb +117 -0
- data/spec/{gcov → system}/gcov_deployment_spec.rb +55 -26
- data/spec/system/mixin_ordering_spec.rb +548 -0
- data/spec/system/preprocessing_encoding_spec.rb +114 -0
- data/spec/system/preprocessing_fallback_conditionals_spec.rb +166 -0
- data/spec/system/preprocessing_locale_spec.rb +153 -0
- data/spec/system/preprocessing_parameterized_tests_spec.rb +183 -0
- data/spec/system/ruby_replacement_spec.rb +141 -0
- data/spec/{spec_system_helper.rb → system/support/common_test_cases.rb} +301 -350
- data/spec/system/support/cppcheck_common_test_cases.rb +98 -0
- data/spec/system/support/cppcheck_helpers.rb +27 -0
- data/spec/{gcov/gcov_test_cases_spec.rb → system/support/gcov_common_test_cases.rb} +224 -111
- data/spec/system/support/gcov_helpers.rb +81 -0
- data/spec/system/support/valgrind_common_test_cases.rb +120 -0
- data/spec/system/support/valgrind_helpers.rb +21 -0
- data/spec/system/upgrade_as_vendor_spec.rb +74 -39
- data/spec/system/valgrind_deployment_spec.rb +53 -0
- data/spec/units/bin/cli_helper_spec.rb +69 -0
- data/spec/units/bin/merginator_spec.rb +279 -0
- data/spec/units/bin/mixin_standardizer_spec.rb +231 -0
- data/spec/units/bin/mixinator_spec.rb +583 -0
- data/spec/units/bin/projectinator_mixin_spec.rb +362 -0
- data/spec/units/bin/recursive_merger_spec.rb +241 -0
- data/spec/units/c_extractor/c_extractor_code_text_spec.rb +2091 -0
- data/spec/units/c_extractor/c_extractor_declarations_spec.rb +746 -0
- data/spec/units/c_extractor/c_extractor_definitions_spec.rb +417 -0
- data/spec/units/c_extractor/c_extractor_functions_spec.rb +2742 -0
- data/spec/units/c_extractor/c_extractor_integration_spec.rb +935 -0
- data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +497 -0
- data/spec/units/c_extractor/c_extractor_spec.rb +356 -0
- data/spec/units/config_matchinator_spec.rb +401 -0
- data/spec/{config_walkinator_spec.rb → units/config_walkinator_spec.rb} +2 -2
- data/spec/{configurator_builder_spec.rb → units/configurator_builder_spec.rb} +1 -1
- data/spec/units/configurator_spec.rb +187 -0
- data/spec/{file_finder_helper_spec.rb → units/file_finder_helper_spec.rb} +1 -1
- data/spec/units/file_path_collection_utils_spec.rb +222 -0
- data/spec/units/file_path_utils_spec.rb +274 -0
- data/spec/units/generators/generator_helper_spec.rb +112 -0
- data/spec/units/generators/generator_partials_spec.rb +795 -0
- data/spec/units/generators/generator_test_results_backtrace_spec.rb +492 -0
- data/spec/{generator_test_results_sanity_checker_spec.rb → units/generators/generator_test_results_sanity_checker_spec.rb} +5 -4
- data/spec/units/generators/generator_test_results_spec.rb +412 -0
- data/spec/units/generators/generator_test_runner_spec.rb +120 -0
- data/spec/units/includes/include_spec.rb +716 -0
- data/spec/units/includes/includes_spec.rb +1069 -0
- data/spec/units/parsing_parcels_spec.rb +139 -0
- data/spec/units/partials/partializer_config_spec.rb +388 -0
- data/spec/units/partials/partializer_helper_spec.rb +992 -0
- data/spec/units/partials/partializer_spec.rb +1629 -0
- data/spec/units/partials/partializer_utils_spec.rb +587 -0
- data/spec/units/plugin_manager_spec.rb +48 -0
- data/spec/units/plugins/cppcheck_spec.rb +557 -0
- data/spec/units/preprocess/c_comment_scanner_spec.rb +409 -0
- data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +396 -0
- data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +361 -0
- data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +580 -0
- data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +263 -0
- data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +337 -0
- data/spec/{preprocessinator_extractor_spec.rb → units/preprocess/preprocessinator_reconstructor_spec.rb} +297 -5
- data/spec/units/reportinator_spec.rb +251 -0
- data/spec/units/ruby_expandinator_spec.rb +91 -0
- data/spec/{system_utils_spec.rb → units/system_utils_spec.rb} +4 -4
- data/spec/units/test_context_extractor_spec.rb +437 -0
- data/spec/{tool_executor_helper_spec.rb → units/tool_executor_helper_spec.rb} +19 -33
- data/spec/units/tool_executor_spec.rb +83 -0
- data/spec/units/tool_validator_spec.rb +60 -0
- data/spec/units/yaml_wrapper_spec.rb +108 -0
- data/vendor/cmock/Gemfile +4 -1
- data/vendor/cmock/LICENSE.txt +1 -1
- data/vendor/cmock/config/production_environment.rb +1 -1
- data/vendor/cmock/config/test_environment.rb +1 -1
- data/vendor/cmock/docs/CMockChangeLog.md +47 -0
- data/vendor/cmock/docs/CMockKnownIssues.md +0 -1
- data/vendor/cmock/docs/CMock_ArgumentValidation.md +180 -25
- data/vendor/cmock/docs/CMock_Summary.md +158 -16
- data/vendor/cmock/examples/make_example/Makefile +1 -1
- data/vendor/cmock/examples/make_example/src/foo.c +1 -1
- data/vendor/cmock/examples/make_example/src/foo.h +1 -1
- data/vendor/cmock/examples/make_example/src/main.c +1 -1
- data/vendor/cmock/examples/make_example/test/test_foo.c +1 -1
- data/vendor/cmock/examples/make_example/test/test_main.c +2 -2
- data/vendor/cmock/examples/temp_sensor/project.yml +75 -0
- data/vendor/cmock/examples/temp_sensor/rakefile.rb +3 -3
- data/vendor/cmock/examples/temp_sensor/rakefile_helper.rb +163 -119
- data/vendor/cmock/examples/temp_sensor/src/AT91SAM7X256.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcConductor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcConductor.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcHardware.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcHardware.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcModel.c +3 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcModel.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/Executor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/Executor.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/Main.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/Main.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/Model.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/Model.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/ModelConfig.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.c +2 -2
- data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerConductor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerConductor.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.c +2 -2
- data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerHardware.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerHardware.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.c +10 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerModel.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/TimerModel.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/Types.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartConductor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartConductor.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartHardware.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartHardware.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartModel.c +2 -2
- data/vendor/cmock/examples/temp_sensor/src/UsartModel.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.c +2 -2
- data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.h +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.c +1 -1
- data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.h +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestAdcConductor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestAdcHardware.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestAdcHardwareConfigurator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestAdcModel.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestAdcTemperatureSensor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestExecutor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestMain.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestModel.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestTaskScheduler.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestTemperatureCalculator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestTemperatureFilter.c +2 -2
- data/vendor/cmock/examples/temp_sensor/test/TestTimerConductor.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestTimerConfigurator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestTimerHardware.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptConfigurator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptHandler.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestTimerModel.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestUsartConductor.c +7 -5
- data/vendor/cmock/examples/temp_sensor/test/TestUsartConfigurator.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestUsartHardware.c +3 -2
- data/vendor/cmock/examples/temp_sensor/test/TestUsartModel.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestUsartPutChar.c +1 -1
- data/vendor/cmock/examples/temp_sensor/test/TestUsartTransmitBufferStatus.c +1 -1
- data/vendor/cmock/lib/cmock.rb +1 -1
- data/vendor/cmock/lib/cmock_config.rb +8 -2
- data/vendor/cmock/lib/cmock_file_writer.rb +38 -1
- data/vendor/cmock/lib/cmock_generator.rb +44 -27
- data/vendor/cmock/lib/cmock_generator_plugin_array.rb +68 -15
- data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +13 -3
- data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +12 -3
- data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +33 -15
- data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +13 -8
- data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +15 -10
- data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +4 -2
- data/vendor/cmock/lib/cmock_generator_plugin_ignore_stateless.rb +15 -10
- data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +53 -3
- data/vendor/cmock/lib/cmock_generator_utils.rb +159 -43
- data/vendor/cmock/lib/cmock_header_parser.rb +217 -26
- data/vendor/cmock/lib/cmock_plugin_manager.rb +1 -1
- data/vendor/cmock/lib/cmock_unityhelper_parser.rb +7 -2
- data/vendor/cmock/lib/cmock_version.rb +1 -1
- data/vendor/cmock/scripts/create_makefile.rb +7 -5
- data/vendor/cmock/src/cmock.c +132 -129
- data/vendor/cmock/src/cmock.h +7 -13
- data/vendor/cmock/src/cmock_internals.h +73 -39
- data/vendor/cmock/test/c/TestCMockC.c +1 -7
- data/vendor/cmock/test/c/TestCMockC.yml +1 -1
- data/vendor/cmock/test/c/TestCMockCDynamic.c +1 -7
- data/vendor/cmock/test/c/TestCMockCDynamic.yml +1 -1
- data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +1 -7
- data/vendor/cmock/test/c/TestCMockC_Runner.c +1 -7
- data/vendor/cmock/{vendor/unity/test/targets/gcc_manual_math.yml → test/gcc_64_valgrind.yml} +8 -17
- data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X-EK.h +1 -1
- data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256_inc.h +1 -1
- data/vendor/cmock/test/iar/iar_v4/incIAR/ioat91sam7x256.h +1 -1
- data/vendor/cmock/test/iar/iar_v4/srcIAR/Cstartup_SAM7.c +1 -1
- data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X-EK.h +1 -1
- data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X256_inc.h +1 -1
- data/vendor/cmock/test/iar/iar_v5/incIAR/project.h +1 -1
- data/vendor/cmock/test/iar/iar_v5/srcIAR/Cstartup_SAM7.c +1 -1
- data/vendor/cmock/test/project.yml +32 -0
- data/vendor/cmock/test/rakefile +74 -58
- data/vendor/cmock/test/rakefile_helper.rb +359 -152
- data/vendor/cmock/test/system/systest_generator.rb +2 -2
- data/vendor/cmock/test/system/test_compilation/callingconv.h +1 -7
- data/vendor/cmock/test/system/test_compilation/config.yml +10 -1
- data/vendor/cmock/test/system/test_compilation/const.h +7 -13
- data/vendor/cmock/test/system/test_compilation/inline.h +1 -2
- data/vendor/cmock/test/system/test_compilation/osek.h +1 -7
- data/vendor/cmock/test/system/test_compilation/parsing.h +37 -7
- data/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +5 -13
- data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +5 -5
- data/vendor/cmock/test/system/test_interactions/array_handling.yml +758 -0
- data/vendor/cmock/test/system/test_interactions/basic_expect_and_return.yml +2 -2
- data/vendor/cmock/test/system/test_interactions/char_string_array_plugin.yml +113 -0
- data/vendor/cmock/test/system/test_interactions/const_custom_type.yml +68 -0
- data/vendor/cmock/test/system/test_interactions/const_primitives_handling.yml +4 -3
- data/vendor/cmock/test/system/test_interactions/const_ptr_return_and_arg.yml +89 -0
- data/vendor/cmock/test/system/test_interactions/debug_output.yml +235 -0
- data/vendor/cmock/test/system/test_interactions/doesnt_leave_details_behind.yml +16 -16
- data/vendor/cmock/test/system/test_interactions/enforce_strict_ordering.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/expect_and_return_custom_types.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/expect_and_return_treat_as.yml +3 -3
- data/vendor/cmock/test/system/test_interactions/expect_and_throw.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/expect_any_args.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/fancy_pointer_handling.yml +3 -3
- data/vendor/cmock/test/system/test_interactions/function_pointer_handling.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/ignore_and_return_stateless.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/ignore_strict_mock_calling.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/newer_standards_stuff1.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_1.yml +2 -2
- data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_2.yml +7 -4
- data/vendor/cmock/test/system/test_interactions/out_of_memory.yml +65 -8
- data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/parsing_challenges_with_func_pointers.yml +88 -0
- data/vendor/cmock/test/system/test_interactions/pointer_handling.yml +465 -0
- data/vendor/cmock/test/system/test_interactions/{return_thru_ptr_and_expect_any_args.yml → return_thru_ptr_expect_any_args.yml} +9 -13
- data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore.yml +142 -0
- data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +13 -9
- data/vendor/cmock/test/system/test_interactions/skeleton.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/skeleton_update.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return_with_plugins.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/stubs_with_callbacks.yml +14 -2
- data/vendor/cmock/test/system/test_interactions/teardown_mock_calls.yml +57 -0
- data/vendor/cmock/test/system/test_interactions/teardown_mock_expectations.yml +59 -0
- data/vendor/cmock/test/system/test_interactions/unity_64bit_support.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/unity_ignores.yml +1 -1
- data/vendor/cmock/test/system/test_interactions/unity_void_pointer_compare.yml +9 -9
- data/vendor/cmock/test/system/test_interactions/void_pointer_no_array_plugin.yml +133 -0
- data/vendor/cmock/test/system/test_interactions/void_pointer_treat_as_void_array_plugin.yml +102 -0
- data/vendor/cmock/test/system/test_interactions/volatile_pointer_handling.yml +291 -0
- data/vendor/cmock/test/system/test_interactions/wrong_expect_and_return.yml +9 -1
- data/vendor/cmock/test/targets/iar_arm.yml +14 -0
- data/vendor/cmock/test/targets/tiny.yml +36 -0
- data/vendor/cmock/test/test_helper.rb +1 -2
- data/vendor/cmock/test/unit/cmock_config_test.rb +1 -2
- data/vendor/cmock/test/unit/cmock_config_test.yml +1 -1
- data/vendor/cmock/test/unit/cmock_file_writer_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +6 -0
- data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_array_test.rb +90 -0
- data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_expect_any_args_test.rb +38 -0
- data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_expect_test.rb +55 -0
- data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_ignore_stateless_test.rb +42 -0
- data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_ignore_test.rb +42 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +63 -2
- data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +24 -6
- data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +118 -2
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +2 -2
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +4 -2
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +2 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_stateless_test.rb +2 -2
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +2 -2
- data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +135 -3
- data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +177 -9
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +705 -109
- data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +4 -2
- data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +1 -1
- data/vendor/cmock/vendor/unity/CMakeLists.txt +10 -0
- data/vendor/cmock/vendor/unity/LICENSE.txt +1 -1
- data/vendor/cmock/vendor/unity/README.md +2 -2
- data/vendor/cmock/vendor/unity/auto/__init__.py +1 -1
- data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +1 -1
- data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +7 -1
- data/vendor/cmock/vendor/unity/auto/extract_version.py +1 -1
- data/vendor/cmock/vendor/unity/auto/generate_config.yml +1 -1
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +6 -6
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +95 -14
- data/vendor/cmock/vendor/unity/auto/parse_output.rb +10 -7
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.py +4 -3
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +4 -2
- data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +1 -1
- data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +1 -1
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +2 -2
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +5 -2
- data/vendor/cmock/vendor/unity/auto/yaml_helper.rb +1 -1
- data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +2 -2
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +66 -1
- data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +41 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +2 -2
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +28 -12
- data/vendor/cmock/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/makefile +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_3/project.yml +24 -0
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +2 -3
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +107 -153
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +3 -3
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.h +1 -1
- data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode2.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_5/makefile +63 -0
- data/vendor/cmock/vendor/unity/examples/example_5/readme.txt +38 -0
- data/vendor/cmock/vendor/unity/examples/example_5/src/ProductionCode.c +56 -0
- data/vendor/cmock/vendor/unity/examples/example_5/src/ProductionCode.h +16 -0
- data/vendor/cmock/vendor/unity/examples/example_5/subprojects/unity.wrap +3 -0
- data/vendor/cmock/vendor/unity/examples/example_5/test/TestProductionCode.c +45 -0
- data/vendor/cmock/vendor/unity/examples/example_5/test/test_runners/TestProductionCode_Runner.c +48 -0
- data/vendor/cmock/vendor/unity/examples/example_5/test/unity_detail_config.h +25 -0
- data/vendor/cmock/vendor/unity/examples/unity_config.h +5 -3
- data/vendor/cmock/vendor/unity/extras/bdd/src/unity_bdd.h +1 -1
- data/vendor/cmock/vendor/unity/extras/bdd/test/test_bdd.c +1 -1
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +59 -15
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +4 -1
- data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +1 -1
- data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +1 -1
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +46 -1
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +4 -1
- data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.c +1 -1
- data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.h +1 -1
- data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_Test.c +1 -1
- data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +1 -1
- data/vendor/cmock/vendor/unity/extras/memory/test/unity_output_Spy.c +1 -1
- data/vendor/cmock/vendor/unity/extras/memory/test/unity_output_Spy.h +1 -1
- data/vendor/cmock/vendor/unity/library.json +0 -7
- data/vendor/cmock/vendor/unity/meson.build +16 -8
- data/vendor/cmock/vendor/unity/meson_options.txt +5 -3
- data/vendor/cmock/vendor/unity/src/unity.c +480 -141
- data/vendor/cmock/vendor/unity/src/unity.h +16 -4
- data/vendor/cmock/vendor/unity/src/unity_internals.h +291 -148
- data/vendor/cmock/vendor/unity/test/Makefile +4 -6
- data/vendor/cmock/vendor/unity/test/rakefile +42 -21
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +154 -15
- data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +1 -1
- data/vendor/cmock/vendor/unity/test/targets/clang.yml +157 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc.yml +139 -0
- data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +9 -16
- data/vendor/cmock/vendor/unity/test/targets/iar_arm.yml +88 -0
- data/vendor/cmock/vendor/unity/test/targets/no_stdlib.yml +23 -0
- data/vendor/cmock/vendor/unity/test/testdata/CException.h +1 -1
- data/vendor/cmock/vendor/unity/test/testdata/Defs.h +1 -1
- data/vendor/cmock/vendor/unity/test/testdata/cmock.h +1 -1
- data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +1 -1
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +1 -1
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +1 -1
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +1 -1
- data/vendor/cmock/vendor/unity/test/tests/self_assessment_utils.h +23 -7
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +1 -4
- data/vendor/cmock/vendor/unity/test/tests/test_unity_arrays.c +1 -1
- data/vendor/cmock/vendor/unity/test/tests/test_unity_core.c +33 -38
- data/vendor/cmock/vendor/unity/test/tests/test_unity_doubles.c +4 -4
- data/vendor/cmock/vendor/unity/test/tests/test_unity_floats.c +15 -6
- data/vendor/cmock/vendor/unity/test/tests/test_unity_integers.c +35 -1
- data/vendor/cmock/vendor/unity/test/tests/test_unity_integers_64.c +1 -1
- data/vendor/cmock/vendor/unity/test/tests/test_unity_memory.c +69 -1
- data/vendor/cmock/vendor/unity/test/tests/test_unity_parameterized.c +5 -5
- data/vendor/cmock/vendor/unity/test/tests/test_unity_parameterizedDemo.c +1 -1
- data/vendor/cmock/vendor/unity/test/tests/test_unity_strings.c +65 -1
- data/vendor/cmock/vendor/unity/test/tests/types_for_test.h +1 -1
- data/vendor/unity/CMakeLists.txt +10 -0
- data/vendor/unity/LICENSE.txt +1 -1
- data/vendor/unity/README.md +2 -2
- data/vendor/unity/auto/__init__.py +1 -1
- data/vendor/unity/auto/colour_prompt.rb +1 -1
- data/vendor/unity/auto/colour_reporter.rb +7 -1
- data/vendor/unity/auto/extract_version.py +1 -1
- data/vendor/unity/auto/generate_config.yml +1 -1
- data/vendor/unity/auto/generate_module.rb +6 -6
- data/vendor/unity/auto/generate_test_runner.rb +95 -14
- data/vendor/unity/auto/parse_output.rb +10 -7
- data/vendor/unity/auto/stylize_as_junit.py +4 -3
- data/vendor/unity/auto/stylize_as_junit.rb +4 -2
- data/vendor/unity/auto/test_file_filter.rb +1 -1
- data/vendor/unity/auto/type_sanitizer.rb +1 -1
- data/vendor/unity/auto/unity_test_summary.py +2 -2
- data/vendor/unity/auto/unity_test_summary.rb +5 -2
- data/vendor/unity/auto/yaml_helper.rb +1 -1
- data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +2 -2
- data/vendor/unity/docs/UnityAssertionsReference.md +66 -1
- data/vendor/unity/docs/UnityChangeLog.md +41 -0
- data/vendor/unity/docs/UnityConfigurationGuide.md +2 -2
- data/vendor/unity/docs/UnityHelperScriptsGuide.md +28 -12
- data/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/unity/examples/example_1/src/ProductionCode.c +1 -1
- data/vendor/unity/examples/example_1/src/ProductionCode.h +1 -1
- data/vendor/unity/examples/example_1/src/ProductionCode2.c +1 -1
- data/vendor/unity/examples/example_1/src/ProductionCode2.h +1 -1
- data/vendor/unity/examples/example_1/test/TestProductionCode.c +1 -1
- data/vendor/unity/examples/example_1/test/TestProductionCode2.c +1 -1
- data/vendor/unity/examples/example_2/makefile +1 -1
- data/vendor/unity/examples/example_2/src/ProductionCode.c +1 -1
- data/vendor/unity/examples/example_2/src/ProductionCode.h +1 -1
- data/vendor/unity/examples/example_2/src/ProductionCode2.c +1 -1
- data/vendor/unity/examples/example_2/src/ProductionCode2.h +1 -1
- data/vendor/unity/examples/example_2/test/TestProductionCode.c +1 -1
- data/vendor/unity/examples/example_2/test/TestProductionCode2.c +1 -1
- data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/unity/examples/example_2/test/test_runners/all_tests.c +1 -1
- data/vendor/unity/examples/example_3/helper/UnityHelper.c +1 -1
- data/vendor/unity/examples/example_3/helper/UnityHelper.h +1 -1
- data/vendor/unity/examples/example_3/project.yml +24 -0
- data/vendor/unity/examples/example_3/rakefile.rb +2 -3
- data/vendor/unity/examples/example_3/rakefile_helper.rb +107 -153
- data/vendor/unity/examples/example_3/src/ProductionCode.c +3 -3
- data/vendor/unity/examples/example_3/src/ProductionCode.h +1 -1
- data/vendor/unity/examples/example_3/src/ProductionCode2.c +1 -1
- data/vendor/unity/examples/example_3/src/ProductionCode2.h +1 -1
- data/vendor/unity/examples/example_3/test/TestProductionCode.c +1 -1
- data/vendor/unity/examples/example_3/test/TestProductionCode2.c +1 -1
- data/vendor/unity/examples/example_4/src/ProductionCode.c +1 -1
- data/vendor/unity/examples/example_4/src/ProductionCode.h +1 -1
- data/vendor/unity/examples/example_4/src/ProductionCode2.c +1 -1
- data/vendor/unity/examples/example_4/src/ProductionCode2.h +1 -1
- data/vendor/unity/examples/example_4/test/TestProductionCode.c +1 -1
- data/vendor/unity/examples/example_4/test/TestProductionCode2.c +1 -1
- data/vendor/unity/examples/example_5/makefile +63 -0
- data/vendor/unity/examples/example_5/readme.txt +38 -0
- data/vendor/unity/examples/example_5/src/ProductionCode.c +56 -0
- data/vendor/unity/examples/example_5/src/ProductionCode.h +16 -0
- data/vendor/unity/examples/example_5/subprojects/unity.wrap +3 -0
- data/vendor/unity/examples/example_5/test/TestProductionCode.c +45 -0
- data/vendor/unity/examples/example_5/test/test_runners/TestProductionCode_Runner.c +48 -0
- data/vendor/unity/examples/example_5/test/unity_detail_config.h +25 -0
- data/vendor/unity/examples/unity_config.h +5 -3
- data/vendor/unity/extras/bdd/src/unity_bdd.h +1 -1
- data/vendor/unity/extras/bdd/test/test_bdd.c +1 -1
- data/vendor/unity/extras/fixture/src/unity_fixture.c +59 -15
- data/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +4 -1
- data/vendor/unity/extras/fixture/test/main/AllTests.c +1 -1
- data/vendor/unity/extras/fixture/test/template_fixture_tests.c +1 -1
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +46 -1
- data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +4 -1
- data/vendor/unity/extras/memory/src/unity_memory.c +1 -1
- data/vendor/unity/extras/memory/src/unity_memory.h +1 -1
- data/vendor/unity/extras/memory/test/unity_memory_Test.c +1 -1
- data/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +1 -1
- data/vendor/unity/extras/memory/test/unity_output_Spy.c +1 -1
- data/vendor/unity/extras/memory/test/unity_output_Spy.h +1 -1
- data/vendor/unity/library.json +0 -7
- data/vendor/unity/meson.build +16 -8
- data/vendor/unity/meson_options.txt +5 -3
- data/vendor/unity/src/unity.c +480 -141
- data/vendor/unity/src/unity.h +16 -4
- data/vendor/unity/src/unity_internals.h +291 -148
- data/vendor/unity/test/Makefile +4 -6
- data/vendor/unity/test/rakefile +42 -21
- data/vendor/unity/test/rakefile_helper.rb +154 -15
- data/vendor/unity/test/spec/generate_module_existing_file_spec.rb +1 -1
- data/vendor/unity/test/targets/clang.yml +157 -0
- data/vendor/unity/test/targets/gcc.yml +139 -0
- data/vendor/unity/test/targets/hitech_picc18.yml +9 -16
- data/vendor/unity/test/targets/iar_arm.yml +88 -0
- data/vendor/unity/test/targets/no_stdlib.yml +23 -0
- data/vendor/unity/test/testdata/CException.h +1 -1
- data/vendor/unity/test/testdata/Defs.h +1 -1
- data/vendor/unity/test/testdata/cmock.h +1 -1
- data/vendor/unity/test/testdata/mockMock.h +1 -1
- data/vendor/unity/test/testdata/testRunnerGenerator.c +1 -1
- data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +1 -1
- data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +1 -1
- data/vendor/unity/test/tests/self_assessment_utils.h +23 -7
- data/vendor/unity/test/tests/test_generate_test_runner.rb +1 -4
- data/vendor/unity/test/tests/test_unity_arrays.c +1 -1
- data/vendor/unity/test/tests/test_unity_core.c +33 -38
- data/vendor/unity/test/tests/test_unity_doubles.c +4 -4
- data/vendor/unity/test/tests/test_unity_floats.c +15 -6
- data/vendor/unity/test/tests/test_unity_integers.c +35 -1
- data/vendor/unity/test/tests/test_unity_integers_64.c +1 -1
- data/vendor/unity/test/tests/test_unity_memory.c +69 -1
- data/vendor/unity/test/tests/test_unity_parameterized.c +5 -5
- data/vendor/unity/test/tests/test_unity_parameterizedDemo.c +1 -1
- data/vendor/unity/test/tests/test_unity_strings.c +65 -1
- data/vendor/unity/test/tests/types_for_test.h +1 -1
- metadata +702 -177
- data/docs/CeedlingPacket.md +0 -5651
- data/lib/ceedling/build_batchinator.rb +0 -113
- data/lib/ceedling/generator_test_results_backtrace.rb +0 -215
- data/lib/ceedling/generator_test_runner.rb +0 -84
- data/lib/ceedling/preprocessinator.rb +0 -239
- data/lib/ceedling/preprocessinator_extractor.rb +0 -257
- data/lib/ceedling/preprocessinator_file_handler.rb +0 -229
- data/lib/ceedling/preprocessinator_includes_handler.rb +0 -382
- data/lib/ceedling/task_invoker.rb +0 -70
- data/lib/ceedling/test_invoker.rb +0 -506
- data/lib/ceedling/test_invoker_helper.rb +0 -347
- data/plugins/gcov/README.md +0 -893
- data/plugins/gcov/lib/reportinator_helper.rb +0 -30
- data/plugins/report_tests_log_factory/sample_html_report.png +0 -0
- data/spec/configurator_spec.rb +0 -18
- data/spec/generator_test_results_spec.rb +0 -131
- data/spec/parsing_parcels_spec.rb +0 -66
- data/spec/preprocessinator_includes_handler_spec.rb +0 -289
- data/spec/reportinator_spec.rb +0 -26
- data/spec/spec_helper.rb +0 -31
- data/spec/test_context_extractor_spec.rb +0 -328
- data/spec/uncategorized_specs_spec.rb +0 -15
- data/vendor/cmock/examples/temp_sensor/targets/gcc.yml +0 -97
- data/vendor/cmock/examples/temp_sensor/targets/iar_v4.yml +0 -143
- data/vendor/cmock/examples/temp_sensor/targets/iar_v5.yml +0 -132
- data/vendor/cmock/scripts/create_mock.rb +0 -15
- data/vendor/cmock/scripts/create_runner.rb +0 -25
- data/vendor/cmock/scripts/test_summary.rb +0 -25
- data/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +0 -453
- data/vendor/cmock/test/targets/clang_strict.yml +0 -97
- data/vendor/cmock/test/targets/gcc.yml +0 -65
- data/vendor/cmock/test/targets/gcc_64.yml +0 -65
- data/vendor/cmock/test/targets/gcc_tiny.yml +0 -87
- data/vendor/cmock/test/targets/iar_arm_v4.yml +0 -117
- data/vendor/cmock/test/targets/iar_arm_v5.yml +0 -102
- data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +0 -54
- data/vendor/cmock/vendor/unity/test/targets/ansi.yml +0 -51
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -79
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +0 -79
- data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +0 -52
- data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +0 -53
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +0 -50
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -62
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +0 -105
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +0 -99
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -99
- data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -97
- data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -101
- data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +0 -119
- data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -106
- data/vendor/unity/examples/example_3/target_gcc_32.yml +0 -54
- data/vendor/unity/test/targets/ansi.yml +0 -51
- data/vendor/unity/test/targets/clang_file.yml +0 -79
- data/vendor/unity/test/targets/clang_strict.yml +0 -79
- data/vendor/unity/test/targets/gcc_32.yml +0 -52
- data/vendor/unity/test/targets/gcc_64.yml +0 -53
- data/vendor/unity/test/targets/gcc_auto_limits.yml +0 -50
- data/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -62
- data/vendor/unity/test/targets/gcc_manual_math.yml +0 -50
- data/vendor/unity/test/targets/iar_arm_v4.yml +0 -105
- data/vendor/unity/test/targets/iar_arm_v5.yml +0 -99
- data/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -99
- data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -97
- data/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -101
- data/vendor/unity/test/targets/iar_msp430.yml +0 -119
- data/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -106
|
@@ -1,183 +1,16 @@
|
|
|
1
1
|
# =========================================================================
|
|
2
2
|
# Ceedling - Test-Centered Build System for C
|
|
3
3
|
# ThrowTheSwitch.org
|
|
4
|
-
# Copyright (c) 2010-
|
|
4
|
+
# Copyright (c) 2010-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
|
|
5
5
|
# SPDX-License-Identifier: MIT
|
|
6
6
|
# =========================================================================
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
require 'tmpdir'
|
|
10
|
-
require 'ceedling/yaml_wrapper'
|
|
11
|
-
require 'spec_helper'
|
|
12
|
-
require 'deep_merge'
|
|
13
|
-
|
|
14
|
-
def test_asset_path(asset_file_name)
|
|
15
|
-
File.join(File.dirname(__FILE__), '..', 'assets', asset_file_name)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def convert_slashes(path)
|
|
19
|
-
if RUBY_PLATFORM.downcase.match(/mingw|win32/)
|
|
20
|
-
path.gsub("/","\\")
|
|
21
|
-
else
|
|
22
|
-
path
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
class GemDirLayout
|
|
27
|
-
attr_reader :gem_dir_base_name
|
|
28
|
-
|
|
29
|
-
def initialize(install_dir)
|
|
30
|
-
@gem_dir_base_name = "gems"
|
|
31
|
-
@d = File.join install_dir, @gem_dir_base_name
|
|
32
|
-
FileUtils.mkdir_p @d
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def install_dir; convert_slashes(@d) end
|
|
36
|
-
def bin; File.join(@d, 'bin') end
|
|
37
|
-
def lib; File.join(@d, 'lib') end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
class SystemContext
|
|
41
|
-
class VerificationFailed < RuntimeError; end
|
|
42
|
-
class InvalidBackupEnv < RuntimeError; end
|
|
43
|
-
|
|
44
|
-
attr_reader :dir, :gem
|
|
45
|
-
|
|
46
|
-
def initialize
|
|
47
|
-
@dir = Dir.mktmpdir
|
|
48
|
-
@gem = GemDirLayout.new(@dir)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def done!
|
|
52
|
-
FileUtils.rm_rf(@dir)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def deploy_gem
|
|
56
|
-
git_repo = File.expand_path( File.join( File.dirname( __FILE__ ), '..') )
|
|
57
|
-
bundler_gem_file_data = [
|
|
58
|
-
%Q{source "http://rubygems.org/"},
|
|
59
|
-
%Q{gem "rake"},
|
|
60
|
-
%Q{gem "constructor"},
|
|
61
|
-
%Q{gem "diy"},
|
|
62
|
-
%Q{gem "thor"},
|
|
63
|
-
%Q{gem "deep_merge"},
|
|
64
|
-
%Q{gem "unicode-display_width"},
|
|
65
|
-
%Q{gem "ceedling", :path => '#{git_repo}'}
|
|
66
|
-
].join("\n")
|
|
67
|
-
|
|
68
|
-
File.open(File.join(@dir, "Gemfile"), "w+") do |f|
|
|
69
|
-
f.write(bundler_gem_file_data)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
Dir.chdir @dir do
|
|
73
|
-
with_constrained_env do
|
|
74
|
-
`bundle config set --local path '#{@gem.install_dir}'`
|
|
75
|
-
`bundle install`
|
|
76
|
-
checks = ["bundle exec ruby -S ceedling 2>&1"]
|
|
77
|
-
checks.each do |c|
|
|
78
|
-
`#{c}`
|
|
79
|
-
#raise VerificationFailed.new(c) unless $?.success?
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# Does a few things:
|
|
87
|
-
# - Configures the environment.
|
|
88
|
-
# - Runs the command from the temporary context directory.
|
|
89
|
-
# - Restores everything to where it was when finished.
|
|
90
|
-
def context_exec(cmd, *args)
|
|
91
|
-
with_context do
|
|
92
|
-
`#{args.unshift(cmd).join(" ")}`
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def with_context
|
|
97
|
-
Dir.chdir @dir do |current_dir|
|
|
98
|
-
with_constrained_env do
|
|
99
|
-
ENV['RUBYLIB'] = @gem.lib
|
|
100
|
-
ENV['RUBYPATH'] = @gem.bin
|
|
101
|
-
|
|
102
|
-
ENV['LANG'] = 'en_US.UTF-8'
|
|
103
|
-
ENV['LANGUAGE'] = 'en_US.UTF-8'
|
|
104
|
-
ENV['LC_ALL'] = 'en_US.UTF-8'
|
|
105
|
-
|
|
106
|
-
yield
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
############################################################
|
|
112
|
-
# Functions for manipulating environment settings during tests:
|
|
113
|
-
def backup_env
|
|
114
|
-
@_env = ENV.to_hash
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def reduce_env(destroy_keys=[])
|
|
118
|
-
ENV.keys.each {|k| ENV.delete(k) if destroy_keys.include?(k) }
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
def constrain_env
|
|
122
|
-
destroy_keys = %w{BUNDLE_GEMFILE BUNDLE_BIN_PATH RUBYOPT}
|
|
123
|
-
reduce_env(destroy_keys)
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
def restore_env
|
|
127
|
-
if @_env
|
|
128
|
-
# delete environment variables we've added since we started
|
|
129
|
-
ENV.to_hash.each_pair {|k,v| ENV.delete(k) unless @_env.include?(k) }
|
|
130
|
-
|
|
131
|
-
# restore environment variables we've modified since we started
|
|
132
|
-
@_env.each_pair {|k,v| ENV[k] = v}
|
|
133
|
-
else
|
|
134
|
-
raise InvalidBackupEnv.new
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
def with_constrained_env
|
|
139
|
-
begin
|
|
140
|
-
backup_env
|
|
141
|
-
constrain_env
|
|
142
|
-
yield
|
|
143
|
-
ensure
|
|
144
|
-
restore_env
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
############################################################
|
|
149
|
-
# Functions for manipulating project.yml files during tests:
|
|
150
|
-
def merge_project_yml_for_test(settings, show_final=false)
|
|
151
|
-
yaml_wrapper = YamlWrapper.new
|
|
152
|
-
project_hash = yaml_wrapper.load('project.yml')
|
|
153
|
-
project_hash.deep_merge!(settings)
|
|
154
|
-
puts "\n\n#{project_hash.to_yaml}\n\n" if show_final
|
|
155
|
-
yaml_wrapper.dump('project.yml', project_hash)
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
def append_project_yml_for_test(new_args)
|
|
159
|
-
fake_prj_yml= "#{File.read('project.yml')}\n#{new_args}"
|
|
160
|
-
File.write('project.yml', fake_prj_yml, mode: 'w')
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def uncomment_project_yml_option_for_test(option)
|
|
164
|
-
fake_prj_yml= File.read('project.yml').gsub(/\##{option}/,option)
|
|
165
|
-
File.write('project.yml', fake_prj_yml, mode: 'w')
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
def comment_project_yml_option_for_test(option)
|
|
169
|
-
fake_prj_yml= File.read('project.yml').gsub(/#{option}/,"##{option}")
|
|
170
|
-
File.write('project.yml', fake_prj_yml, mode: 'w')
|
|
171
|
-
end
|
|
172
|
-
############################################################
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
module CeedlingTestCases
|
|
8
|
+
module CommonSystemTestCases
|
|
176
9
|
def can_report_version_no_git_commit_sha
|
|
177
10
|
@c.with_context do
|
|
178
11
|
# Version without Git commit short SHA file in project
|
|
179
|
-
output =
|
|
180
|
-
expect(
|
|
12
|
+
output = @c.ceedling_appcmd_exec("version")
|
|
13
|
+
expect(@c.last_exit_status).to eq(0)
|
|
181
14
|
expect(output).to match(/Ceedling => \d\.\d\.\d\n/)
|
|
182
15
|
end
|
|
183
16
|
end
|
|
@@ -190,8 +23,8 @@ module CeedlingTestCases
|
|
|
190
23
|
end
|
|
191
24
|
|
|
192
25
|
@c.with_context do
|
|
193
|
-
output =
|
|
194
|
-
expect(
|
|
26
|
+
output = @c.ceedling_appcmd_exec("version")
|
|
27
|
+
expect(@c.last_exit_status).to eq(0)
|
|
195
28
|
expect(output).to match(/Ceedling => \d\.\d\.\d----{-@\n/)
|
|
196
29
|
end
|
|
197
30
|
end
|
|
@@ -218,8 +51,8 @@ module CeedlingTestCases
|
|
|
218
51
|
|
|
219
52
|
def can_upgrade_projects
|
|
220
53
|
@c.with_context do
|
|
221
|
-
output =
|
|
222
|
-
expect(
|
|
54
|
+
output = @c.ceedling_appcmd_exec("upgrade #{@proj_name}")
|
|
55
|
+
expect(@c.last_exit_status).to eq(0)
|
|
223
56
|
expect(output).to match(/Upgraded/i)
|
|
224
57
|
Dir.chdir @proj_name do
|
|
225
58
|
expect(File.exist?("project.yml")).to eq true
|
|
@@ -230,9 +63,9 @@ module CeedlingTestCases
|
|
|
230
63
|
end
|
|
231
64
|
end
|
|
232
65
|
|
|
233
|
-
def
|
|
66
|
+
def can_upgrade_projects_with_no_test_support_folder
|
|
234
67
|
@c.with_context do
|
|
235
|
-
output =
|
|
68
|
+
output = @c.ceedling_appcmd_exec("upgrade #{@proj_name}")
|
|
236
69
|
FileUtils.rm_rf("#{@proj_name}/test/support")
|
|
237
70
|
|
|
238
71
|
updated_prj_yml = []
|
|
@@ -241,21 +74,20 @@ module CeedlingTestCases
|
|
|
241
74
|
end
|
|
242
75
|
File.write("#{@proj_name}/project.yml", updated_prj_yml.join("\n"), mode: 'w')
|
|
243
76
|
|
|
244
|
-
expect(
|
|
77
|
+
expect(@c.last_exit_status).to eq(0)
|
|
245
78
|
expect(output).to match(/Upgraded/i)
|
|
246
79
|
Dir.chdir @proj_name do
|
|
247
80
|
expect(File.exist?("project.yml")).to eq true
|
|
248
81
|
expect(File.exist?("src")).to eq true
|
|
249
82
|
expect(File.exist?("test")).to eq true
|
|
250
|
-
all_docs = Dir["vendor/ceedling/docs/*.pdf"].length + Dir["vendor/ceedling/docs/*.md"].length
|
|
251
83
|
end
|
|
252
84
|
end
|
|
253
85
|
end
|
|
254
86
|
|
|
255
87
|
def cannot_upgrade_non_existing_project
|
|
256
88
|
@c.with_context do
|
|
257
|
-
output =
|
|
258
|
-
expect(
|
|
89
|
+
output = @c.ceedling_appcmd_exec("upgrade #{@proj_name}")
|
|
90
|
+
expect(@c.last_exit_status).to eq(1)
|
|
259
91
|
expect(output).to match(/Could not find an existing project/i)
|
|
260
92
|
end
|
|
261
93
|
end
|
|
@@ -279,8 +111,8 @@ module CeedlingTestCases
|
|
|
279
111
|
def contains_documentation
|
|
280
112
|
@c.with_context do
|
|
281
113
|
Dir.chdir @proj_name do
|
|
282
|
-
all_docs = Dir["docs
|
|
283
|
-
expect(all_docs).to
|
|
114
|
+
all_docs = Dir["docs/*"]
|
|
115
|
+
expect(all_docs).to contain_exactly('docs/ceedling', 'docs/unity', 'docs/cmock', 'docs/c_exception', 'docs/license.txt')
|
|
284
116
|
end
|
|
285
117
|
end
|
|
286
118
|
end
|
|
@@ -288,21 +120,20 @@ module CeedlingTestCases
|
|
|
288
120
|
def does_not_contain_documentation
|
|
289
121
|
@c.with_context do
|
|
290
122
|
Dir.chdir @proj_name do
|
|
291
|
-
expect(
|
|
292
|
-
expect(Dir["vendor/ceedling/**/*.pdf"].length).to eq 0
|
|
123
|
+
expect(Dir.exist?("docs/")).to eq false
|
|
293
124
|
end
|
|
294
125
|
end
|
|
295
126
|
end
|
|
296
127
|
|
|
297
|
-
def
|
|
128
|
+
def test_project_success
|
|
298
129
|
@c.with_context do
|
|
299
130
|
Dir.chdir @proj_name do
|
|
300
131
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
301
132
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
302
133
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
303
134
|
|
|
304
|
-
output =
|
|
305
|
-
expect(
|
|
135
|
+
output = @c.ceedling_build_exec("test:all")
|
|
136
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
306
137
|
expect(output).to match(/TESTED:\s+\d/)
|
|
307
138
|
expect(output).to match(/PASSED:\s+\d/)
|
|
308
139
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -311,15 +142,15 @@ module CeedlingTestCases
|
|
|
311
142
|
end
|
|
312
143
|
end
|
|
313
144
|
|
|
314
|
-
def
|
|
145
|
+
def test_project_with_test_all_alias
|
|
315
146
|
@c.with_context do
|
|
316
147
|
Dir.chdir @proj_name do
|
|
317
148
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
318
149
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
319
150
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
320
151
|
|
|
321
|
-
output =
|
|
322
|
-
expect(
|
|
152
|
+
output = @c.ceedling_build_exec("test")
|
|
153
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
323
154
|
expect(output).to match(/TESTED:\s+\d/)
|
|
324
155
|
expect(output).to match(/PASSED:\s+\d/)
|
|
325
156
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -328,15 +159,15 @@ module CeedlingTestCases
|
|
|
328
159
|
end
|
|
329
160
|
end
|
|
330
161
|
|
|
331
|
-
def
|
|
162
|
+
def test_project_success_default_task
|
|
332
163
|
@c.with_context do
|
|
333
164
|
Dir.chdir @proj_name do
|
|
334
165
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
335
166
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
336
167
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
337
168
|
|
|
338
|
-
output =
|
|
339
|
-
expect(
|
|
169
|
+
output = @c.ceedling_build_exec
|
|
170
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
340
171
|
expect(output).to match(/TESTED:\s+\d/)
|
|
341
172
|
expect(output).to match(/PASSED:\s+\d/)
|
|
342
173
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -345,45 +176,45 @@ module CeedlingTestCases
|
|
|
345
176
|
end
|
|
346
177
|
end
|
|
347
178
|
|
|
348
|
-
def
|
|
179
|
+
def test_project_with_named_verbosity
|
|
349
180
|
@c.with_context do
|
|
350
181
|
Dir.chdir @proj_name do
|
|
351
182
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
352
183
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
353
184
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
354
185
|
|
|
355
|
-
output =
|
|
356
|
-
expect(
|
|
186
|
+
output = @c.ceedling_build_exec("--verbosity=obnoxious")
|
|
187
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
357
188
|
expect(output).to match(/TESTED:\s+\d/)
|
|
358
189
|
expect(output).to match(/PASSED:\s+\d/)
|
|
359
190
|
expect(output).to match(/FAILED:\s+\d/)
|
|
360
191
|
expect(output).to match(/IGNORED:\s+\d/)
|
|
361
192
|
|
|
362
|
-
expect(output).to match
|
|
193
|
+
expect(output).to match(/:post_test_fixture_execute/)
|
|
363
194
|
end
|
|
364
195
|
end
|
|
365
196
|
end
|
|
366
197
|
|
|
367
|
-
def
|
|
198
|
+
def test_project_with_numerical_verbosity
|
|
368
199
|
@c.with_context do
|
|
369
200
|
Dir.chdir @proj_name do
|
|
370
201
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
371
202
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
372
203
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
373
204
|
|
|
374
|
-
output =
|
|
375
|
-
expect(
|
|
205
|
+
output = @c.ceedling_build_exec("-v=4")
|
|
206
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
376
207
|
expect(output).to match(/TESTED:\s+\d/)
|
|
377
208
|
expect(output).to match(/PASSED:\s+\d/)
|
|
378
209
|
expect(output).to match(/FAILED:\s+\d/)
|
|
379
210
|
expect(output).to match(/IGNORED:\s+\d/)
|
|
380
211
|
|
|
381
|
-
expect(output).to match
|
|
212
|
+
expect(output).to match(/:post_test_fixture_execute/)
|
|
382
213
|
end
|
|
383
214
|
end
|
|
384
215
|
end
|
|
385
216
|
|
|
386
|
-
def
|
|
217
|
+
def test_project_with_unity_exec_time
|
|
387
218
|
@c.with_context do
|
|
388
219
|
Dir.chdir @proj_name do
|
|
389
220
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
@@ -392,8 +223,8 @@ module CeedlingTestCases
|
|
|
392
223
|
settings = { :unity => { :defines => [ "UNITY_INCLUDE_EXEC_TIME" ] } }
|
|
393
224
|
@c.merge_project_yml_for_test(settings)
|
|
394
225
|
|
|
395
|
-
output =
|
|
396
|
-
expect(
|
|
226
|
+
output = @c.ceedling_build_exec
|
|
227
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
397
228
|
expect(output).to match(/TESTED:\s+\d/)
|
|
398
229
|
expect(output).to match(/PASSED:\s+\d/)
|
|
399
230
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -402,7 +233,7 @@ module CeedlingTestCases
|
|
|
402
233
|
end
|
|
403
234
|
end
|
|
404
235
|
|
|
405
|
-
def
|
|
236
|
+
def test_project_with_test_and_vendor_defines
|
|
406
237
|
@c.with_context do
|
|
407
238
|
Dir.chdir @proj_name do
|
|
408
239
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
@@ -413,8 +244,8 @@ module CeedlingTestCases
|
|
|
413
244
|
}
|
|
414
245
|
@c.merge_project_yml_for_test(settings)
|
|
415
246
|
|
|
416
|
-
output =
|
|
417
|
-
expect(
|
|
247
|
+
output = @c.ceedling_build_exec
|
|
248
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
418
249
|
expect(output).to match(/TESTED:\s+\d/)
|
|
419
250
|
expect(output).to match(/PASSED:\s+\d/)
|
|
420
251
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -423,19 +254,23 @@ module CeedlingTestCases
|
|
|
423
254
|
end
|
|
424
255
|
end
|
|
425
256
|
|
|
426
|
-
def
|
|
257
|
+
def test_project_with_per_file_defines
|
|
427
258
|
@c.with_context do
|
|
428
259
|
Dir.chdir @proj_name do
|
|
429
260
|
FileUtils.copy_entry test_asset_path("tests_with_defines/src/"), 'src/'
|
|
430
261
|
FileUtils.cp_r test_asset_path("tests_with_defines/test/."), 'test/'
|
|
431
|
-
settings = {
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
262
|
+
settings = {
|
|
263
|
+
:defines => {
|
|
264
|
+
:test => {
|
|
265
|
+
'*' => [ "TEST", "STANDARD_CONFIG" ],
|
|
266
|
+
'test_adc_hardware_special.c' => [ "TEST", "SPECIFIC_CONFIG" ],
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
435
270
|
@c.merge_project_yml_for_test(settings)
|
|
436
271
|
|
|
437
|
-
output =
|
|
438
|
-
expect(
|
|
272
|
+
output = @c.ceedling_build_exec
|
|
273
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either passes or is ignored, we return success here
|
|
439
274
|
expect(output).to match(/TESTED:\s+\d/)
|
|
440
275
|
expect(output).to match(/PASSED:\s+\d/)
|
|
441
276
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -445,7 +280,7 @@ module CeedlingTestCases
|
|
|
445
280
|
end
|
|
446
281
|
|
|
447
282
|
# Ceedling :use_test_preprocessor is disabled
|
|
448
|
-
def
|
|
283
|
+
def test_project_unity_parameterized_test_cases
|
|
449
284
|
@c.with_context do
|
|
450
285
|
Dir.chdir @proj_name do
|
|
451
286
|
FileUtils.cp test_asset_path("test_example_with_parameterized_tests.c"), 'test/'
|
|
@@ -454,8 +289,8 @@ module CeedlingTestCases
|
|
|
454
289
|
}
|
|
455
290
|
@c.merge_project_yml_for_test(settings)
|
|
456
291
|
|
|
457
|
-
output =
|
|
458
|
-
expect(
|
|
292
|
+
output = @c.ceedling_build_exec
|
|
293
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
459
294
|
expect(output).to match(/TESTED:\s+\d/)
|
|
460
295
|
expect(output).to match(/PASSED:\s+\d/)
|
|
461
296
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -464,27 +299,38 @@ module CeedlingTestCases
|
|
|
464
299
|
end
|
|
465
300
|
end
|
|
466
301
|
|
|
467
|
-
#
|
|
468
|
-
|
|
302
|
+
# assets/test_example_with_parameterized_tests.c declares 3 TEST_CASE values,
|
|
303
|
+
# TEST_RANGE([5,100,5]) (20 values), and TEST_RANGE([10,100,10],[5,10,5]) (10*2=20 values)
|
|
304
|
+
# for a total of 43 expanded test invocations. Asserting the exact counts (rather than
|
|
305
|
+
# the file's usual loose `\d` match) matters here specifically. A broken positional
|
|
306
|
+
# association would silently degrade to 3 un-parameterized tests (one per declared
|
|
307
|
+
# function) and a loose digit match would still pass.
|
|
308
|
+
def test_project_preprocessed_unity_parameterized_test_cases
|
|
469
309
|
@c.with_context do
|
|
470
310
|
Dir.chdir @proj_name do
|
|
471
|
-
|
|
472
|
-
|
|
311
|
+
# Short destination filename: Ceedling's directives-only preprocessing path
|
|
312
|
+
# repeats the test module name twice (.../preprocess/files/<name>/directives_only/raw/<name>.c).
|
|
313
|
+
# Combined with an already-deep Windows CI temp project path, the asset's original
|
|
314
|
+
# long filename pushed the full absolute path past Windows' 260-char MAX_PATH limit,
|
|
315
|
+
# causing gcc.exe to fail opening its own output file with a spurious
|
|
316
|
+
# "No such file or directory". Keeping the copied filename short avoids that.
|
|
317
|
+
FileUtils.cp test_asset_path("test_example_with_parameterized_tests.c"), 'test/test_ptc.c'
|
|
318
|
+
settings = { :project => { :use_test_preprocessor => :all },
|
|
473
319
|
:unity => { :use_param_tests => true }
|
|
474
320
|
}
|
|
475
321
|
@c.merge_project_yml_for_test(settings)
|
|
476
322
|
|
|
477
|
-
output =
|
|
478
|
-
expect(
|
|
479
|
-
expect(output).to match(/TESTED:\s
|
|
480
|
-
expect(output).to match(/PASSED:\s
|
|
481
|
-
expect(output).to match(/FAILED:\s
|
|
482
|
-
expect(output).to match(/IGNORED:\s
|
|
323
|
+
output = @c.ceedling_build_exec
|
|
324
|
+
expect(@c.last_exit_status).to eq(0)
|
|
325
|
+
expect(output).to match(/TESTED:\s+43/)
|
|
326
|
+
expect(output).to match(/PASSED:\s+43/)
|
|
327
|
+
expect(output).to match(/FAILED:\s+0/)
|
|
328
|
+
expect(output).to match(/IGNORED:\s+0/)
|
|
483
329
|
end
|
|
484
330
|
end
|
|
485
331
|
end
|
|
486
332
|
|
|
487
|
-
def
|
|
333
|
+
def test_project_preprocessing_undefined_symbols
|
|
488
334
|
@c.with_context do
|
|
489
335
|
Dir.chdir @proj_name do
|
|
490
336
|
FileUtils.cp test_asset_path("tests_with_preprocessing/test/test_adc_hardwareA.c"), 'test/'
|
|
@@ -497,8 +343,8 @@ module CeedlingTestCases
|
|
|
497
343
|
}
|
|
498
344
|
@c.merge_project_yml_for_test(settings)
|
|
499
345
|
|
|
500
|
-
output =
|
|
501
|
-
expect(
|
|
346
|
+
output = @c.ceedling_build_exec("test:adc_hardwareA")
|
|
347
|
+
expect(@c.last_exit_status).to eq(1) # Intentional test failure in successful build
|
|
502
348
|
expect(output).to match(/TESTED:\s+2/)
|
|
503
349
|
expect(output).to match(/PASSED:\s+0/)
|
|
504
350
|
expect(output).to match(/FAILED:\s+2/)
|
|
@@ -506,7 +352,7 @@ module CeedlingTestCases
|
|
|
506
352
|
end
|
|
507
353
|
end
|
|
508
354
|
|
|
509
|
-
def
|
|
355
|
+
def test_project_preprocessing_defined_symbols
|
|
510
356
|
@c.with_context do
|
|
511
357
|
Dir.chdir @proj_name do
|
|
512
358
|
FileUtils.cp test_asset_path("tests_with_preprocessing/test/test_adc_hardwareA.c"), 'test/'
|
|
@@ -519,8 +365,8 @@ module CeedlingTestCases
|
|
|
519
365
|
}
|
|
520
366
|
@c.merge_project_yml_for_test(settings)
|
|
521
367
|
|
|
522
|
-
output =
|
|
523
|
-
expect(
|
|
368
|
+
output = @c.ceedling_build_exec("test:adc_hardwareA")
|
|
369
|
+
expect(@c.last_exit_status).to eq(0) # Successful build and tests
|
|
524
370
|
expect(output).to match(/TESTED:\s+1/)
|
|
525
371
|
expect(output).to match(/PASSED:\s+1/)
|
|
526
372
|
expect(output).to match(/FAILED:\s+0/)
|
|
@@ -528,7 +374,7 @@ module CeedlingTestCases
|
|
|
528
374
|
end
|
|
529
375
|
end
|
|
530
376
|
|
|
531
|
-
def
|
|
377
|
+
def test_project_with_preprocessing_for_mocks
|
|
532
378
|
@c.with_context do
|
|
533
379
|
Dir.chdir @proj_name do
|
|
534
380
|
FileUtils.cp test_asset_path("tests_with_preprocessing/test/test_adc_hardwareB.c"), 'test/'
|
|
@@ -541,8 +387,8 @@ module CeedlingTestCases
|
|
|
541
387
|
}
|
|
542
388
|
@c.merge_project_yml_for_test(settings)
|
|
543
389
|
|
|
544
|
-
output =
|
|
545
|
-
expect(
|
|
390
|
+
output = @c.ceedling_build_exec("test:adc_hardwareB")
|
|
391
|
+
expect(@c.last_exit_status).to eq(0) # Successful build and tests
|
|
546
392
|
expect(output).to match(/TESTED:\s+1/)
|
|
547
393
|
expect(output).to match(/PASSED:\s+1/)
|
|
548
394
|
expect(output).to match(/FAILED:\s+0/)
|
|
@@ -550,7 +396,7 @@ module CeedlingTestCases
|
|
|
550
396
|
end
|
|
551
397
|
end
|
|
552
398
|
|
|
553
|
-
def
|
|
399
|
+
def test_project_with_preprocessing_for_missing_mock
|
|
554
400
|
@c.with_context do
|
|
555
401
|
Dir.chdir @proj_name do
|
|
556
402
|
FileUtils.cp test_asset_path("tests_with_preprocessing/test/test_adc_hardwareB.c"), 'test/'
|
|
@@ -562,14 +408,14 @@ module CeedlingTestCases
|
|
|
562
408
|
}
|
|
563
409
|
@c.merge_project_yml_for_test(settings)
|
|
564
410
|
|
|
565
|
-
output =
|
|
566
|
-
expect(
|
|
411
|
+
output = @c.ceedling_build_exec("test:adc_hardwareB")
|
|
412
|
+
expect(@c.last_exit_status).to eq(1) # Failing build because of missing mock
|
|
567
413
|
expect(output).to match(/(undeclared|undefined|implicit).+Adc_Reset/)
|
|
568
414
|
end
|
|
569
415
|
end
|
|
570
416
|
end
|
|
571
417
|
|
|
572
|
-
def
|
|
418
|
+
def test_project_with_preprocessing_all
|
|
573
419
|
@c.with_context do
|
|
574
420
|
Dir.chdir @proj_name do
|
|
575
421
|
FileUtils.cp test_asset_path("tests_with_preprocessing/test/test_adc_hardwareC.c"), 'test/'
|
|
@@ -582,8 +428,8 @@ module CeedlingTestCases
|
|
|
582
428
|
}
|
|
583
429
|
@c.merge_project_yml_for_test(settings)
|
|
584
430
|
|
|
585
|
-
output =
|
|
586
|
-
expect(
|
|
431
|
+
output = @c.ceedling_build_exec("test:adc_hardwareC")
|
|
432
|
+
expect(@c.last_exit_status).to eq(0) # Successful build and tests
|
|
587
433
|
expect(output).to match(/TESTED:\s+1/)
|
|
588
434
|
expect(output).to match(/PASSED:\s+1/)
|
|
589
435
|
expect(output).to match(/FAILED:\s+0/)
|
|
@@ -591,15 +437,15 @@ module CeedlingTestCases
|
|
|
591
437
|
end
|
|
592
438
|
end
|
|
593
439
|
|
|
594
|
-
def
|
|
440
|
+
def test_project_fail
|
|
595
441
|
@c.with_context do
|
|
596
442
|
Dir.chdir @proj_name do
|
|
597
443
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
598
444
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
599
445
|
FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
|
|
600
446
|
|
|
601
|
-
output =
|
|
602
|
-
expect(
|
|
447
|
+
output = @c.ceedling_build_exec("test:all")
|
|
448
|
+
expect(@c.last_exit_status).to eq(1) # Since a test fails, we return error here
|
|
603
449
|
expect(output).to match(/TESTED:\s+\d/)
|
|
604
450
|
expect(output).to match(/PASSED:\s+\d/)
|
|
605
451
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -608,15 +454,15 @@ module CeedlingTestCases
|
|
|
608
454
|
end
|
|
609
455
|
end
|
|
610
456
|
|
|
611
|
-
def
|
|
457
|
+
def test_project_fail_alias
|
|
612
458
|
@c.with_context do
|
|
613
459
|
Dir.chdir @proj_name do
|
|
614
460
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
615
461
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
616
462
|
FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
|
|
617
463
|
|
|
618
|
-
output =
|
|
619
|
-
expect(
|
|
464
|
+
output = @c.ceedling_build_exec("test")
|
|
465
|
+
expect(@c.last_exit_status).to eq(1) # Since a test fails, we return error here
|
|
620
466
|
expect(output).to match(/TESTED:\s+\d/)
|
|
621
467
|
expect(output).to match(/PASSED:\s+\d/)
|
|
622
468
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -625,15 +471,15 @@ module CeedlingTestCases
|
|
|
625
471
|
end
|
|
626
472
|
end
|
|
627
473
|
|
|
628
|
-
def
|
|
474
|
+
def test_project_fail_default
|
|
629
475
|
@c.with_context do
|
|
630
476
|
Dir.chdir @proj_name do
|
|
631
477
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
632
478
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
633
479
|
FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
|
|
634
480
|
|
|
635
|
-
output =
|
|
636
|
-
expect(
|
|
481
|
+
output = @c.ceedling_build_exec
|
|
482
|
+
expect(@c.last_exit_status).to eq(1) # Since a test fails, we return error here
|
|
637
483
|
expect(output).to match(/TESTED:\s+\d/)
|
|
638
484
|
expect(output).to match(/PASSED:\s+\d/)
|
|
639
485
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -642,21 +488,21 @@ module CeedlingTestCases
|
|
|
642
488
|
end
|
|
643
489
|
end
|
|
644
490
|
|
|
645
|
-
def
|
|
491
|
+
def test_project_with_compile_error
|
|
646
492
|
@c.with_context do
|
|
647
493
|
Dir.chdir @proj_name do
|
|
648
494
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
649
495
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
650
496
|
FileUtils.cp test_asset_path("test_example_file_boom.c"), 'test/'
|
|
651
497
|
|
|
652
|
-
output =
|
|
653
|
-
expect(
|
|
498
|
+
output = @c.ceedling_build_exec("test:all")
|
|
499
|
+
expect(@c.last_exit_status).to eq(1) # Since a test explodes, we return error here
|
|
654
500
|
expect(output).to match(/(?:ERROR: Ceedling Failed)|(?:Ceedling could not complete operations because of errors)/)
|
|
655
501
|
end
|
|
656
502
|
end
|
|
657
503
|
end
|
|
658
504
|
|
|
659
|
-
def
|
|
505
|
+
def test_project_with_both_mock_and_real_header
|
|
660
506
|
@c.with_context do
|
|
661
507
|
Dir.chdir @proj_name do
|
|
662
508
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
@@ -665,8 +511,8 @@ module CeedlingTestCases
|
|
|
665
511
|
FileUtils.cp test_asset_path("example_file_call.c"), 'src/'
|
|
666
512
|
FileUtils.cp test_asset_path("test_example_file_with_mock.c"), 'test/'
|
|
667
513
|
|
|
668
|
-
output =
|
|
669
|
-
expect(
|
|
514
|
+
output = @c.ceedling_build_exec
|
|
515
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either passed or was ignored, we return success here
|
|
670
516
|
expect(output).to match(/TESTED:\s+\d/)
|
|
671
517
|
expect(output).to match(/PASSED:\s+\d/)
|
|
672
518
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -675,7 +521,7 @@ module CeedlingTestCases
|
|
|
675
521
|
end
|
|
676
522
|
end
|
|
677
523
|
|
|
678
|
-
def
|
|
524
|
+
def report_tests_raw_output_log_plugin
|
|
679
525
|
@c.with_context do
|
|
680
526
|
Dir.chdir @proj_name do
|
|
681
527
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
@@ -684,8 +530,8 @@ module CeedlingTestCases
|
|
|
684
530
|
|
|
685
531
|
@c.uncomment_project_yml_option_for_test('- report_tests_raw_output_log')
|
|
686
532
|
|
|
687
|
-
output =
|
|
688
|
-
expect(
|
|
533
|
+
output = @c.ceedling_build_exec("test:all")
|
|
534
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
689
535
|
expect(output).to match(/TESTED:\s+\d/)
|
|
690
536
|
expect(output).to match(/PASSED:\s+\d/)
|
|
691
537
|
expect(output).to match(/FAILED:\s+\d/)
|
|
@@ -695,24 +541,23 @@ module CeedlingTestCases
|
|
|
695
541
|
end
|
|
696
542
|
end
|
|
697
543
|
|
|
698
|
-
|
|
699
|
-
def can_fetch_non_project_help
|
|
544
|
+
def application_commands_help
|
|
700
545
|
@c.with_context do
|
|
701
|
-
#notice we don't change directory into the project
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
546
|
+
# notice we don't change directory into the project
|
|
547
|
+
output = @c.ceedling_appcmd_exec("help")
|
|
548
|
+
expect(@c.last_exit_status).to eq(0)
|
|
549
|
+
expect(output).to match(/ceedling example/i)
|
|
550
|
+
expect(output).to match(/ceedling new/i)
|
|
551
|
+
expect(output).to match(/ceedling upgrade/i)
|
|
552
|
+
expect(output).to match(/ceedling version/i)
|
|
708
553
|
end
|
|
709
554
|
end
|
|
710
555
|
|
|
711
|
-
def
|
|
556
|
+
def project_build_tasks_plugins_help
|
|
712
557
|
@c.with_context do
|
|
713
558
|
Dir.chdir @proj_name do
|
|
714
|
-
output =
|
|
715
|
-
expect(
|
|
559
|
+
output = @c.ceedling_appcmd_exec("help")
|
|
560
|
+
expect(@c.last_exit_status).to eq(0)
|
|
716
561
|
expect(output).to match(/ceedling clean/i)
|
|
717
562
|
expect(output).to match(/ceedling clobber/i)
|
|
718
563
|
expect(output).to match(/ceedling module:create/i)
|
|
@@ -725,16 +570,16 @@ module CeedlingTestCases
|
|
|
725
570
|
end
|
|
726
571
|
end
|
|
727
572
|
|
|
728
|
-
def
|
|
573
|
+
def run_single_test_with_full_name_filter
|
|
729
574
|
@c.with_context do
|
|
730
575
|
Dir.chdir @proj_name do
|
|
731
576
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
732
577
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
733
578
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
734
579
|
|
|
735
|
-
output =
|
|
580
|
+
output = @c.ceedling_build_exec("test:test_example_file_success --test_case=test_add_numbers_adds_numbers")
|
|
736
581
|
|
|
737
|
-
expect(
|
|
582
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
738
583
|
expect(output).to match(/TESTED:\s+1/)
|
|
739
584
|
expect(output).to match(/PASSED:\s+1/)
|
|
740
585
|
expect(output).to match(/FAILED:\s+0/)
|
|
@@ -743,16 +588,16 @@ module CeedlingTestCases
|
|
|
743
588
|
end
|
|
744
589
|
end
|
|
745
590
|
|
|
746
|
-
def
|
|
591
|
+
def run_single_test_with_partial_name_filter
|
|
747
592
|
@c.with_context do
|
|
748
593
|
Dir.chdir @proj_name do
|
|
749
594
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
750
595
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
751
596
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
752
597
|
|
|
753
|
-
output =
|
|
598
|
+
output = @c.ceedling_build_exec("test:test_example_file_success --test_case=_adds_numbers")
|
|
754
599
|
|
|
755
|
-
expect(
|
|
600
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
756
601
|
expect(output).to match(/TESTED:\s+1/)
|
|
757
602
|
expect(output).to match(/PASSED:\s+1/)
|
|
758
603
|
expect(output).to match(/FAILED:\s+0/)
|
|
@@ -761,65 +606,46 @@ module CeedlingTestCases
|
|
|
761
606
|
end
|
|
762
607
|
end
|
|
763
608
|
|
|
764
|
-
def
|
|
609
|
+
def no_tests_run_when_filter_matches_nothing
|
|
765
610
|
@c.with_context do
|
|
766
611
|
Dir.chdir @proj_name do
|
|
767
612
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
768
613
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
769
614
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
770
615
|
|
|
771
|
-
output =
|
|
616
|
+
output = @c.ceedling_build_exec("test:test_example_file_success --test_case=zumzum")
|
|
772
617
|
|
|
773
|
-
expect(
|
|
618
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
774
619
|
expect(output).to match(/No tests executed./)
|
|
775
620
|
end
|
|
776
621
|
end
|
|
777
622
|
end
|
|
778
623
|
|
|
779
|
-
def
|
|
624
|
+
def no_tests_run_when_filter_and_exclusion_cancel
|
|
780
625
|
@c.with_context do
|
|
781
626
|
Dir.chdir @proj_name do
|
|
782
627
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
783
628
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
784
629
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
785
630
|
|
|
786
|
-
output =
|
|
631
|
+
output = @c.ceedling_build_exec("test:test_example_file_success --test_case=_adds_numbers --exclude_test_case=_adds_numbers")
|
|
787
632
|
|
|
788
|
-
expect(
|
|
633
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
789
634
|
expect(output).to match(/No tests executed./)
|
|
790
635
|
end
|
|
791
636
|
end
|
|
792
637
|
end
|
|
793
638
|
|
|
794
|
-
def
|
|
639
|
+
def exclusion_filter_leaves_one_test_case
|
|
795
640
|
@c.with_context do
|
|
796
641
|
Dir.chdir @proj_name do
|
|
797
642
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
798
643
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
799
644
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
800
645
|
|
|
801
|
-
output =
|
|
646
|
+
output = @c.ceedling_build_exec("test:all --exclude_test_case=test_add_numbers_adds_numbers")
|
|
802
647
|
|
|
803
|
-
expect(
|
|
804
|
-
expect(output).to match(/TESTED:\s+2/)
|
|
805
|
-
expect(output).to match(/PASSED:\s+1/)
|
|
806
|
-
expect(output).to match(/FAILED:\s+0/)
|
|
807
|
-
expect(output).to match(/IGNORED:\s+1/)
|
|
808
|
-
expect(output).not_to match(/:cmdline_args/)
|
|
809
|
-
end
|
|
810
|
-
end
|
|
811
|
-
end
|
|
812
|
-
|
|
813
|
-
def exclude_test_case_name_filter_works_and_only_one_test_case_is_executed
|
|
814
|
-
@c.with_context do
|
|
815
|
-
Dir.chdir @proj_name do
|
|
816
|
-
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
817
|
-
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
818
|
-
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
819
|
-
|
|
820
|
-
output = `bundle exec ruby -S ceedling test:all --exclude_test_case=test_add_numbers_adds_numbers 2>&1`
|
|
821
|
-
|
|
822
|
-
expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
|
|
648
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
823
649
|
expect(output).to match(/TESTED:\s+1/)
|
|
824
650
|
expect(output).to match(/PASSED:\s+0/)
|
|
825
651
|
expect(output).to match(/FAILED:\s+0/)
|
|
@@ -828,16 +654,16 @@ module CeedlingTestCases
|
|
|
828
654
|
end
|
|
829
655
|
end
|
|
830
656
|
|
|
831
|
-
def
|
|
657
|
+
def run_one_test_case_with_name_filter
|
|
832
658
|
@c.with_context do
|
|
833
659
|
Dir.chdir @proj_name do
|
|
834
660
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
835
661
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
836
662
|
FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
|
|
837
663
|
|
|
838
|
-
output =
|
|
664
|
+
output = @c.ceedling_build_exec("test:test_example_file_success --test_case=_adds_numbers")
|
|
839
665
|
|
|
840
|
-
expect(
|
|
666
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
841
667
|
expect(output).to match(/TESTED:\s+1/)
|
|
842
668
|
expect(output).to match(/PASSED:\s+1/)
|
|
843
669
|
expect(output).to match(/FAILED:\s+0/)
|
|
@@ -847,117 +673,242 @@ module CeedlingTestCases
|
|
|
847
673
|
end
|
|
848
674
|
|
|
849
675
|
|
|
850
|
-
|
|
676
|
+
# Validates that a crash with :use_backtrace => :none reports "Test Executable Crashed"
|
|
677
|
+
# in Ceedling output and returns a failing exit code.
|
|
678
|
+
# Uses a SIGSEGV (null-pointer dereference) crash.
|
|
679
|
+
def crash_none_reports_executable_crashed
|
|
851
680
|
@c.with_context do
|
|
852
681
|
Dir.chdir @proj_name do
|
|
853
682
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
854
683
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
855
|
-
FileUtils.cp test_asset_path("
|
|
684
|
+
FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
|
|
856
685
|
|
|
857
686
|
@c.merge_project_yml_for_test({:project => { :use_backtrace => :none }})
|
|
858
687
|
|
|
859
|
-
output =
|
|
860
|
-
expect(
|
|
688
|
+
output = @c.ceedling_build_exec("test:all")
|
|
689
|
+
expect(@c.last_exit_status).to eq(1) # Test should fail because of crash
|
|
861
690
|
expect(output).to match(/Test Executable Crashed/i)
|
|
862
|
-
expect(output).to match(/Unit test failures
|
|
691
|
+
expect(output).to match(/Unit test failures/)
|
|
863
692
|
expect(!File.exist?('./build/test/results/test_add.fail'))
|
|
864
693
|
end
|
|
865
694
|
end
|
|
866
695
|
end
|
|
867
696
|
|
|
868
|
-
|
|
697
|
+
# Validates that a crash with :use_backtrace => :none writes a .fail results file
|
|
698
|
+
# containing the crashed test case name and crash location.
|
|
699
|
+
# Uses a SIGSEGV (null-pointer dereference) crash.
|
|
700
|
+
def crash_none_writes_fail_results_file
|
|
869
701
|
@c.with_context do
|
|
870
702
|
Dir.chdir @proj_name do
|
|
871
703
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
872
704
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
873
|
-
FileUtils.cp test_asset_path("
|
|
705
|
+
FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
|
|
874
706
|
|
|
875
707
|
@c.merge_project_yml_for_test({:project => { :use_backtrace => :none }})
|
|
876
708
|
|
|
877
|
-
output =
|
|
878
|
-
expect(
|
|
709
|
+
output = @c.ceedling_build_exec("test:all")
|
|
710
|
+
expect(@c.last_exit_status).to eq(1) # Test should fail because of crash
|
|
879
711
|
expect(output).to match(/Test Executable Crashed/i)
|
|
880
|
-
expect(output).to match(/Unit test failures
|
|
881
|
-
expect(File.exist?('./build/test/results/
|
|
882
|
-
output_rd = File.read('./build/test/results/
|
|
883
|
-
expect(output_rd =~ /test_add_numbers_will_fail \(\) at test\/
|
|
712
|
+
expect(output).to match(/Unit test failures/)
|
|
713
|
+
expect(File.exist?('./build/test/results/test_example_file_crash_sigsegv.fail'))
|
|
714
|
+
output_rd = File.read('./build/test/results/test_example_file_crash_sigsegv.fail')
|
|
715
|
+
expect(output_rd =~ /test_add_numbers_will_fail \(\) at test\/test_example_file_crash_sigsegv.c\:\d+/ )
|
|
884
716
|
end
|
|
885
717
|
end
|
|
886
718
|
end
|
|
887
719
|
|
|
888
|
-
|
|
720
|
+
# Validates that :use_backtrace => :gdb runs all test cases, identifies the crashing
|
|
721
|
+
# one (SIGSEGV from null-pointer dereference), writes a gdb log file, and includes
|
|
722
|
+
# a log path reference in Ceedling output.
|
|
723
|
+
def crash_gdb_sigsegv_all_test_cases
|
|
889
724
|
@c.with_context do
|
|
890
725
|
Dir.chdir @proj_name do
|
|
891
726
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
892
727
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
893
|
-
FileUtils.cp test_asset_path("
|
|
728
|
+
FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
|
|
894
729
|
|
|
895
730
|
@c.merge_project_yml_for_test({:project => { :use_backtrace => :gdb }})
|
|
896
731
|
|
|
897
|
-
output =
|
|
898
|
-
expect(
|
|
732
|
+
output = @c.ceedling_build_exec("test:all")
|
|
733
|
+
expect(@c.last_exit_status).to eq(1) # Test should fail because of crash
|
|
899
734
|
expect(output).to match(/Test Case Crashed/i)
|
|
900
|
-
expect(output).to match(/Unit test failures
|
|
901
|
-
expect(File.exist?('./build/test/results/
|
|
902
|
-
output_rd = File.read('./build/test/results/
|
|
903
|
-
expect(output_rd
|
|
735
|
+
expect(output).to match(/Unit test failures/)
|
|
736
|
+
expect(File.exist?('./build/test/results/test_example_file_crash_sigsegv.fail'))
|
|
737
|
+
output_rd = File.read('./build/test/results/test_example_file_crash_sigsegv.fail')
|
|
738
|
+
expect(output_rd).to match(/Test case crashed/)
|
|
739
|
+
expect(output_rd).to match(/SIGSEGV/i)
|
|
904
740
|
expect(output).to match(/TESTED:\s+2/)
|
|
905
741
|
expect(output).to match(/PASSED:\s+(?:0|1)/)
|
|
906
742
|
expect(output).to match(/FAILED:\s+(?:1|2)/)
|
|
907
743
|
expect(output).to match(/IGNORED:\s+0/)
|
|
744
|
+
log_path = './build/logs/test/test_example_file_crash_sigsegv/test_add_numbers_will_fail.gdb.log'
|
|
745
|
+
expect(File.exist?(log_path)).to be(true)
|
|
746
|
+
expect(File.read(log_path)).to match(/SIGSEGV|Segmentation fault/i)
|
|
747
|
+
expect(output).to match(/test_add_numbers_will_fail\.gdb\.log/)
|
|
908
748
|
end
|
|
909
749
|
end
|
|
910
750
|
end
|
|
911
751
|
|
|
912
|
-
|
|
752
|
+
# Validates that :use_backtrace => :gdb respects --test_case filter, running only
|
|
753
|
+
# the named crashing test case (SIGSEGV) and writing a gdb log for it.
|
|
754
|
+
def crash_gdb_sigsegv_targets_test_case_filter
|
|
913
755
|
@c.with_context do
|
|
914
756
|
Dir.chdir @proj_name do
|
|
915
757
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
916
758
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
917
|
-
FileUtils.cp test_asset_path("
|
|
759
|
+
FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
|
|
918
760
|
|
|
919
761
|
@c.merge_project_yml_for_test({:project => { :use_backtrace => :gdb }})
|
|
920
762
|
|
|
921
|
-
output =
|
|
922
|
-
expect(
|
|
763
|
+
output = @c.ceedling_build_exec("test:all --test_case=test_add_numbers_will_fail")
|
|
764
|
+
expect(@c.last_exit_status).to eq(1) # Test should fail because of crash
|
|
923
765
|
expect(output).to match(/Test Case Crashed/i)
|
|
924
|
-
expect(output).to match(/Unit test failures
|
|
925
|
-
expect(File.exist?('./build/test/results/
|
|
926
|
-
output_rd = File.read('./build/test/results/
|
|
927
|
-
expect(output_rd
|
|
766
|
+
expect(output).to match(/Unit test failures/)
|
|
767
|
+
expect(File.exist?('./build/test/results/test_example_file_crash_sigsegv.fail'))
|
|
768
|
+
output_rd = File.read('./build/test/results/test_example_file_crash_sigsegv.fail')
|
|
769
|
+
expect(output_rd).to match(/Test case crashed/)
|
|
770
|
+
expect(output_rd).to match(/SIGSEGV/i)
|
|
928
771
|
expect(output).to match(/TESTED:\s+1/)
|
|
929
772
|
expect(output).to match(/PASSED:\s+(?:0|1)/)
|
|
930
773
|
expect(output).to match(/FAILED:\s+(?:1|2)/)
|
|
931
774
|
expect(output).to match(/IGNORED:\s+0/)
|
|
775
|
+
log_path = './build/logs/test/test_example_file_crash_sigsegv/test_add_numbers_will_fail.gdb.log'
|
|
776
|
+
expect(File.exist?(log_path)).to be(true)
|
|
777
|
+
expect(File.read(log_path)).to match(/SIGSEGV|Segmentation fault/i)
|
|
778
|
+
expect(output).to match(/test_add_numbers_will_fail\.gdb\.log/)
|
|
932
779
|
end
|
|
933
780
|
end
|
|
934
781
|
end
|
|
935
782
|
|
|
936
|
-
|
|
783
|
+
# Validates that :use_backtrace => :gdb respects --exclude_test_case filter, running
|
|
784
|
+
# only the crashing test case (SIGSEGV) after the passing one is excluded, and writing a gdb log.
|
|
785
|
+
def crash_gdb_sigsegv_excludes_test_case_filter
|
|
937
786
|
@c.with_context do
|
|
938
787
|
Dir.chdir @proj_name do
|
|
939
788
|
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
940
789
|
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
941
|
-
FileUtils.cp test_asset_path("
|
|
790
|
+
FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
|
|
942
791
|
|
|
943
792
|
@c.merge_project_yml_for_test({:project => { :use_backtrace => :gdb }})
|
|
944
793
|
|
|
945
|
-
output =
|
|
946
|
-
expect(
|
|
794
|
+
output = @c.ceedling_build_exec("test:all --exclude_test_case=add_numbers_adds_numbers")
|
|
795
|
+
expect(@c.last_exit_status).to eq(1) # Test should fail because of crash
|
|
947
796
|
expect(output).to match(/Test Case Crashed/i)
|
|
948
|
-
expect(output).to match(/Unit test failures
|
|
949
|
-
expect(File.exist?('./build/test/results/
|
|
950
|
-
output_rd = File.read('./build/test/results/
|
|
951
|
-
expect(output_rd
|
|
797
|
+
expect(output).to match(/Unit test failures/)
|
|
798
|
+
expect(File.exist?('./build/test/results/test_example_file_crash_sigsegv.fail'))
|
|
799
|
+
output_rd = File.read('./build/test/results/test_example_file_crash_sigsegv.fail')
|
|
800
|
+
expect(output_rd).to match(/Test case crashed/)
|
|
801
|
+
expect(output_rd).to match(/SIGSEGV/i)
|
|
952
802
|
expect(output).to match(/TESTED:\s+1/)
|
|
953
803
|
expect(output).to match(/PASSED:\s+(?:0|1)/)
|
|
954
804
|
expect(output).to match(/FAILED:\s+(?:1|2)/)
|
|
955
805
|
expect(output).to match(/IGNORED:\s+0/)
|
|
806
|
+
log_path = './build/logs/test/test_example_file_crash_sigsegv/test_add_numbers_will_fail.gdb.log'
|
|
807
|
+
expect(File.exist?(log_path)).to be(true)
|
|
808
|
+
expect(File.read(log_path)).to match(/SIGSEGV|Segmentation fault/i)
|
|
809
|
+
expect(output).to match(/test_add_numbers_will_fail\.gdb\.log/)
|
|
810
|
+
end
|
|
811
|
+
end
|
|
812
|
+
end
|
|
813
|
+
|
|
814
|
+
# Validates that :use_backtrace => :gdb handles a SIGABRT crash from assert(0),
|
|
815
|
+
# surfacing the assertion expression (not bare "Aborted") in the crash summary,
|
|
816
|
+
# writing a gdb log containing the raw gdb output, and including a log path reference
|
|
817
|
+
# in Ceedling output. This is the core gdb-mode regression test for issue #1038.
|
|
818
|
+
def crash_gdb_sigabrt_assert_failure
|
|
819
|
+
@c.with_context do
|
|
820
|
+
Dir.chdir @proj_name do
|
|
821
|
+
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
822
|
+
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
823
|
+
FileUtils.cp test_asset_path("test_example_file_crash_assert.c"), 'test/'
|
|
824
|
+
|
|
825
|
+
@c.merge_project_yml_for_test({:project => { :use_backtrace => :gdb }})
|
|
826
|
+
|
|
827
|
+
output = @c.ceedling_build_exec("test:all")
|
|
828
|
+
expect(@c.last_exit_status).to eq(1)
|
|
829
|
+
expect(output).to match(/Test Case Crashed/i)
|
|
830
|
+
expect(output).to match(/Unit test failures/)
|
|
831
|
+
expect(output).to match(/SIGABRT/i)
|
|
832
|
+
expect(output).to match(/Assertion/i)
|
|
833
|
+
log_path = './build/logs/test/test_example_file_crash_assert/test_add_numbers_triggers_assert.gdb.log'
|
|
834
|
+
expect(File.exist?(log_path)).to be(true)
|
|
835
|
+
# Windwos gdb output for an assertion failure can be quite different from Linux.
|
|
836
|
+
# Windows gdb reports do not seem to cite the signal "SIGABRT" and may be quite brief,
|
|
837
|
+
# only citing an assertion failure.
|
|
838
|
+
expect(File.read(log_path)).to match(/SIGABRT|abort|assert/i)
|
|
839
|
+
expect(output).to match(/test_add_numbers_triggers_assert\.gdb\.log/)
|
|
840
|
+
expect(output).to match(/TESTED:\s+2/)
|
|
841
|
+
expect(output).to match(/FAILED:\s+(?:1|2)/)
|
|
842
|
+
expect(output).to match(/IGNORED:\s+0/)
|
|
843
|
+
end
|
|
844
|
+
end
|
|
845
|
+
end
|
|
846
|
+
|
|
847
|
+
# Validates that :use_backtrace => :simple runs each test case individually,
|
|
848
|
+
# identifies the crashing one (SIGSEGV from null-pointer dereference), and reports
|
|
849
|
+
# it as a per-test-case failure rather than a whole-executable crash.
|
|
850
|
+
def crash_simple_sigsegv_all_test_cases
|
|
851
|
+
@c.with_context do
|
|
852
|
+
Dir.chdir @proj_name do
|
|
853
|
+
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
854
|
+
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
855
|
+
FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
|
|
856
|
+
|
|
857
|
+
@c.merge_project_yml_for_test({:project => { :use_backtrace => :simple }})
|
|
858
|
+
|
|
859
|
+
output = @c.ceedling_build_exec("test:all")
|
|
860
|
+
expect(@c.last_exit_status).to eq(1)
|
|
861
|
+
expect(output).to match(/Test Case Crashed/i)
|
|
862
|
+
expect(output).to match(/Unit test failures/)
|
|
863
|
+
expect(output).to match(/TESTED:\s+2/)
|
|
864
|
+
expect(output).to match(/FAILED:\s+(?:1|2)/)
|
|
865
|
+
expect(output).to match(/IGNORED:\s+0/)
|
|
866
|
+
end
|
|
867
|
+
end
|
|
868
|
+
end
|
|
869
|
+
|
|
870
|
+
# Validates that :use_backtrace => :simple captures the glibc assertion message written
|
|
871
|
+
# to stderr before SIGABRT and includes it in the Ceedling crash report output.
|
|
872
|
+
# This is the core simple-mode regression test for issue #1038.
|
|
873
|
+
def crash_simple_sigabrt_assert_failure
|
|
874
|
+
@c.with_context do
|
|
875
|
+
Dir.chdir @proj_name do
|
|
876
|
+
FileUtils.cp test_asset_path("example_file.h"), 'src/'
|
|
877
|
+
FileUtils.cp test_asset_path("example_file.c"), 'src/'
|
|
878
|
+
FileUtils.cp test_asset_path("test_example_file_crash_assert.c"), 'test/'
|
|
879
|
+
|
|
880
|
+
@c.merge_project_yml_for_test({:project => { :use_backtrace => :simple }})
|
|
881
|
+
|
|
882
|
+
output = @c.ceedling_build_exec("test:all")
|
|
883
|
+
expect(@c.last_exit_status).to eq(1)
|
|
884
|
+
expect(output).to match(/Test Case Crashed/i)
|
|
885
|
+
expect(output).to match(/Unit test failures/)
|
|
886
|
+
# glibc assertion diagnostic written to stderr must appear in Ceedling output
|
|
887
|
+
expect(output).to match(/Assertion.*failed/i)
|
|
888
|
+
expect(output).to match(/TESTED:\s+2/)
|
|
889
|
+
expect(output).to match(/FAILED:\s+(?:1|2)/)
|
|
890
|
+
expect(output).to match(/IGNORED:\s+0/)
|
|
891
|
+
end
|
|
892
|
+
end
|
|
893
|
+
end
|
|
894
|
+
|
|
895
|
+
def project_with_test_file_directly_including_source_file
|
|
896
|
+
@c.with_context do
|
|
897
|
+
Dir.chdir @proj_name do
|
|
898
|
+
FileUtils.cp test_asset_path("example_file_with_statics.c"), 'src/'
|
|
899
|
+
FileUtils.cp test_asset_path("test_example_file_source_include.c"), 'test/'
|
|
900
|
+
|
|
901
|
+
output = @c.ceedling_build_exec
|
|
902
|
+
expect(@c.last_exit_status).to eq(0)
|
|
903
|
+
expect(output).to match(/TESTED:\s+\d/)
|
|
904
|
+
expect(output).to match(/PASSED:\s+\d/)
|
|
905
|
+
expect(output).to match(/FAILED:\s+\d/)
|
|
906
|
+
expect(output).to match(/IGNORED:\s+\d/)
|
|
956
907
|
end
|
|
957
908
|
end
|
|
958
909
|
end
|
|
959
910
|
|
|
960
|
-
def
|
|
911
|
+
def space_between_hash_and_include_is_valid
|
|
961
912
|
# test case cover issue described in https://github.com/ThrowTheSwitch/Ceedling/issues/588
|
|
962
913
|
@c.with_context do
|
|
963
914
|
Dir.chdir @proj_name do
|
|
@@ -982,8 +933,8 @@ module CeedlingTestCases
|
|
|
982
933
|
|
|
983
934
|
File.write(File.join('test','test_example_file_success.c'), updated_test_file.join("\n"), mode: 'w')
|
|
984
935
|
|
|
985
|
-
output =
|
|
986
|
-
expect(
|
|
936
|
+
output = @c.ceedling_build_exec
|
|
937
|
+
expect(@c.last_exit_status).to eq(0) # Since a test either pass or are ignored, we return success here
|
|
987
938
|
expect(output).to match(/TESTED:\s+\d/)
|
|
988
939
|
expect(output).to match(/PASSED:\s+\d/)
|
|
989
940
|
expect(output).to match(/FAILED:\s+\d/)
|