ceedling 0.19.0 → 0.20.2
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/Rakefile +10 -10
- data/bin/ceedling +205 -92
- data/ceedling-0.19.0.gem +0 -0
- data/config/test_environment.rb +12 -12
- data/docs/CeedlingPacket.md +866 -853
- data/docs/CeedlingPacket.odt +0 -0
- data/docs/CeedlingPacket.pdf +0 -0
- data/examples/temp_sensor/rakefile.rb +4 -4
- data/examples/temp_sensor/src/AdcConductor.c +42 -42
- data/examples/temp_sensor/src/AdcConductor.h +13 -13
- data/examples/temp_sensor/src/AdcHardware.c +27 -27
- data/examples/temp_sensor/src/AdcHardware.h +11 -11
- data/examples/temp_sensor/src/AdcHardwareConfigurator.c +18 -18
- data/examples/temp_sensor/src/AdcHardwareConfigurator.h +10 -10
- data/examples/temp_sensor/src/AdcModel.c +33 -33
- data/examples/temp_sensor/src/AdcModel.h +13 -13
- data/examples/temp_sensor/src/AdcTemperatureSensor.c +51 -51
- data/examples/temp_sensor/src/AdcTemperatureSensor.h +10 -10
- data/examples/temp_sensor/src/Executor.c +25 -25
- data/examples/temp_sensor/src/Executor.h +9 -9
- data/examples/temp_sensor/src/IntrinsicsWrapper.c +18 -18
- data/examples/temp_sensor/src/IntrinsicsWrapper.h +7 -7
- data/examples/temp_sensor/src/Main.c +46 -46
- data/examples/temp_sensor/src/Main.h +7 -7
- data/examples/temp_sensor/src/Model.c +10 -10
- data/examples/temp_sensor/src/Model.h +8 -8
- data/examples/temp_sensor/src/ModelConfig.h +7 -7
- data/examples/temp_sensor/src/TaskScheduler.c +72 -72
- data/examples/temp_sensor/src/TaskScheduler.h +11 -11
- data/examples/temp_sensor/src/TemperatureCalculator.c +27 -27
- data/examples/temp_sensor/src/TemperatureCalculator.h +8 -8
- data/examples/temp_sensor/src/TemperatureFilter.c +38 -38
- data/examples/temp_sensor/src/TemperatureFilter.h +10 -10
- data/examples/temp_sensor/src/TimerConductor.c +15 -15
- data/examples/temp_sensor/src/TimerConductor.h +9 -9
- data/examples/temp_sensor/src/TimerConfigurator.c +51 -51
- data/examples/temp_sensor/src/TimerConfigurator.h +15 -15
- data/examples/temp_sensor/src/TimerHardware.c +15 -15
- data/examples/temp_sensor/src/TimerHardware.h +8 -8
- data/examples/temp_sensor/src/TimerInterruptConfigurator.c +55 -55
- data/examples/temp_sensor/src/TimerInterruptConfigurator.h +13 -13
- data/examples/temp_sensor/src/TimerInterruptHandler.c +25 -25
- data/examples/temp_sensor/src/TimerInterruptHandler.h +10 -10
- data/examples/temp_sensor/src/TimerModel.c +9 -9
- data/examples/temp_sensor/src/TimerModel.h +8 -8
- data/examples/temp_sensor/src/Types.h +90 -90
- data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +18 -18
- data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +8 -8
- data/examples/temp_sensor/src/UsartConductor.c +21 -21
- data/examples/temp_sensor/src/UsartConductor.h +7 -7
- data/examples/temp_sensor/src/UsartConfigurator.c +39 -39
- data/examples/temp_sensor/src/UsartConfigurator.h +13 -13
- data/examples/temp_sensor/src/UsartHardware.c +22 -22
- data/examples/temp_sensor/src/UsartHardware.h +9 -9
- data/examples/temp_sensor/src/UsartModel.c +34 -34
- data/examples/temp_sensor/src/UsartModel.h +10 -10
- data/examples/temp_sensor/src/UsartPutChar.c +16 -16
- data/examples/temp_sensor/src/UsartPutChar.h +8 -8
- data/examples/temp_sensor/src/UsartTransmitBufferStatus.c +7 -7
- data/examples/temp_sensor/src/UsartTransmitBufferStatus.h +8 -8
- data/examples/temp_sensor/test/TestAdcConductor.c +121 -121
- data/examples/temp_sensor/test/TestAdcHardware.c +44 -44
- data/examples/temp_sensor/test/TestAdcModel.c +33 -33
- data/examples/temp_sensor/test/TestExecutor.c +36 -36
- data/examples/temp_sensor/test/TestMain.c +24 -24
- data/examples/temp_sensor/test/TestModel.c +20 -20
- data/examples/temp_sensor/test/TestTaskScheduler.c +104 -104
- data/examples/temp_sensor/test/TestTemperatureCalculator.c +33 -33
- data/examples/temp_sensor/test/TestTemperatureFilter.c +79 -79
- data/examples/temp_sensor/test/TestTimerConductor.c +32 -32
- data/examples/temp_sensor/test/TestTimerHardware.c +26 -26
- data/examples/temp_sensor/test/TestTimerModel.c +18 -18
- data/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +21 -21
- data/examples/temp_sensor/test/TestUsartConductor.c +40 -40
- data/examples/temp_sensor/test/TestUsartHardware.c +36 -36
- data/examples/temp_sensor/test/TestUsartModel.c +36 -36
- data/examples/temp_sensor/test/support/UnityHelper.c +12 -12
- data/examples/temp_sensor/test/support/UnityHelper.h +12 -12
- data/lib/ceedling/configurator_builder.rb +1 -1
- data/lib/ceedling/tasks_base.rake +10 -2
- data/lib/ceedling/tool_executor.rb +3 -0
- data/lib/ceedling/version.rb +3 -3
- data/license.txt +1 -1
- data/plugins/bullseye/bullseye.rake +162 -162
- data/plugins/gcov/gcov.rake +152 -152
- data/plugins/module_generator/lib/module_generator.rb +145 -145
- data/plugins/module_generator/module_generator.rake +14 -14
- data/plugins/stdout_gtestlike_tests_report/assets/template.erb +84 -0
- data/plugins/stdout_gtestlike_tests_report/assets/template.erb copy +59 -0
- data/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml +4 -0
- data/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb +43 -0
- data/spec/system/deployment_spec.rb +0 -1
- data/test_graveyard/integration/paths_test.rb +80 -80
- data/test_graveyard/integration/rake_rules_aux_dependencies_test.rb +75 -75
- data/test_graveyard/integration/rake_rules_cmock_test.rb +74 -74
- data/test_graveyard/integration/rake_rules_preprocess_test.rb +178 -178
- data/test_graveyard/integration/rake_rules_test.rb +268 -268
- data/test_graveyard/integration/rake_tasks_test.rb +103 -103
- data/test_graveyard/integration_test_helper.rb +34 -34
- data/test_graveyard/rakefile_rules.rb +10 -10
- data/test_graveyard/rakefile_rules_aux_dependencies.rb +10 -10
- data/test_graveyard/rakefile_rules_cmock.rb +10 -10
- data/test_graveyard/rakefile_rules_preprocess.rb +10 -10
- data/test_graveyard/rakefile_tasks.rb +10 -10
- data/test_graveyard/system/file_system_test.rb +78 -78
- data/test_graveyard/system/project_mocks_test.rb +38 -38
- data/test_graveyard/system/project_simple_test.rb +39 -39
- data/test_graveyard/system/rule_mocks_test.rb +44 -44
- data/test_graveyard/system/rule_runners_test.rb +44 -44
- data/test_graveyard/system_test_helper.rb +73 -73
- data/test_graveyard/test_helper.rb +93 -93
- data/test_graveyard/unit/busted/configurator_builder_test.rb +569 -569
- data/test_graveyard/unit/busted/configurator_helper_test.rb +234 -234
- data/test_graveyard/unit/busted/configurator_test.rb +232 -232
- data/test_graveyard/unit/busted/configurator_validator_test.rb +169 -169
- data/test_graveyard/unit/busted/deep_merge_fix_test.rb +55 -55
- data/test_graveyard/unit/busted/dependinator_test.rb +129 -129
- data/test_graveyard/unit/busted/file_finder_helper_test.rb +45 -45
- data/test_graveyard/unit/busted/file_finder_test.rb +114 -114
- data/test_graveyard/unit/busted/file_path_utils_test.rb +97 -97
- data/test_graveyard/unit/busted/file_system_utils_test.rb +21 -21
- data/test_graveyard/unit/busted/generator_test.rb +187 -187
- data/test_graveyard/unit/busted/generator_test_results_test.rb +129 -129
- data/test_graveyard/unit/busted/generator_test_runner_test.rb +475 -475
- data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +39 -39
- data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +156 -156
- data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +93 -93
- data/test_graveyard/unit/busted/preprocessinator_test.rb +57 -57
- data/test_graveyard/unit/busted/project_file_loader_test.rb +142 -142
- data/test_graveyard/unit/busted/setupinator_test.rb +45 -45
- data/test_graveyard/unit/busted/streaminator_test.rb +49 -49
- data/test_graveyard/unit/busted/task_invoker_test.rb +69 -69
- data/test_graveyard/unit/busted/test_includes_extractor_test.rb +111 -111
- data/test_graveyard/unit/busted/test_invoker_helper_test.rb +62 -62
- data/test_graveyard/unit/busted/test_invoker_test.rb +47 -47
- data/test_graveyard/unit/busted/tool_executor_helper_test.rb +100 -100
- data/test_graveyard/unit/busted/tool_executor_test.rb +351 -351
- data/test_graveyard/unit/busted/verbosinator_test.rb +65 -65
- data/test_graveyard/unit/preprocessinator_extractor_test.rb +731 -731
- data/test_graveyard/unit_test_helper.rb +16 -16
- data/vendor/c_exception/LICENSE.txt +30 -30
- data/vendor/c_exception/README.md +11 -1
- data/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
- data/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
- data/vendor/c_exception/docs/readme.txt +261 -242
- data/vendor/c_exception/lib/CException.c +46 -46
- data/vendor/c_exception/lib/CException.h +110 -86
- data/vendor/c_exception/makefile +23 -23
- data/vendor/c_exception/test/CExceptionConfig.h +46 -46
- data/vendor/c_exception/test/TestException.c +391 -342
- data/vendor/c_exception/test/TestException_Runner.c +5 -12
- data/vendor/c_exception/vendor/unity/README.md +211 -0
- data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +1 -1
- data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +38 -38
- data/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -36
- data/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -202
- data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +391 -320
- data/vendor/c_exception/vendor/unity/auto/parseOutput.rb +2 -0
- data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +260 -0
- data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +8 -0
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +135 -0
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +148 -139
- data/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +224 -216
- data/vendor/c_exception/vendor/unity/docs/license.txt +21 -31
- data/vendor/c_exception/vendor/unity/examples/example_1/makefile +40 -15
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +32 -25
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +29 -22
- data/vendor/c_exception/vendor/unity/examples/example_2/makefile +40 -14
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +2 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +2 -2
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -1
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +2 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +48 -37
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -179
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +135 -94
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +13 -17
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -18
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +30 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +60 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +4 -3
- data/vendor/c_exception/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +182 -27
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +13 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +8 -6
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +2 -2
- data/vendor/c_exception/vendor/unity/release/build.info +1 -1
- data/vendor/c_exception/vendor/unity/release/version.info +1 -1
- data/vendor/c_exception/vendor/unity/src/unity.c +1333 -1145
- data/vendor/c_exception/vendor/unity/src/unity.h +290 -307
- data/vendor/c_exception/vendor/unity/src/unity_internals.h +758 -620
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +7 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +7 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +4 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +4 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +4 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +4 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +4 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -6
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +9 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +7 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +9 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -3
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +10 -6
- data/vendor/c_exception/vendor/unity/{rakefile.rb → test/rakefile} +60 -61
- data/vendor/c_exception/vendor/unity/{rakefile_helper.rb → test/rakefile_helper.rb} +255 -249
- data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +83 -0
- data/vendor/c_exception/vendor/unity/{targets → test/targets}/clang_strict.yml +83 -83
- data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -0
- data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -0
- data/vendor/c_exception/vendor/unity/{targets/gcc_64.yml → test/targets/gcc_auto_limits.yml} +46 -45
- data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +47 -0
- data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +58 -0
- data/vendor/{cmock/vendor/c_exception/vendor/unity/targets/gcc_64.yml → c_exception/vendor/unity/test/targets/gcc_manual_math.yml} +46 -45
- data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/hitech_picc18.yml +101 -101
- data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_arm_v4.yml +89 -89
- data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_arm_v5.yml +79 -79
- data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_arm_v5_3.yml +79 -79
- data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -93
- data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_cortexm3_v5.yml +83 -83
- data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_msp430.yml +94 -94
- data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_sh2a_v6.yml +85 -85
- data/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -51
- data/vendor/c_exception/vendor/unity/test/testdata/sample.yml +8 -8
- data/vendor/c_exception/vendor/unity/test/testdata/testsample.c +68 -51
- data/vendor/{cmock/vendor/c_exception/vendor/unity/test → c_exception/vendor/unity/test/tests}/test_generate_test_runner.rb +102 -88
- data/vendor/{cmock/vendor/c_exception/vendor/unity/test → c_exception/vendor/unity/test/tests}/testparameterized.c +104 -101
- data/vendor/c_exception/vendor/unity/test/{testunity.c → tests/testunity.c} +3682 -3447
- data/vendor/cmock/docs/CMock_Summary.md +3 -0
- data/vendor/cmock/lib/cmock_config.rb +1 -0
- data/vendor/cmock/lib/cmock_file_writer.rb +7 -3
- data/vendor/cmock/lib/cmock_generator.rb +3 -2
- data/vendor/cmock/lib/cmock_header_parser.rb +12 -5
- data/vendor/cmock/release/version.info +1 -1
- data/vendor/cmock/test/system/test_compilation/parsing.h +3 -0
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +7 -0
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +57 -1
- data/vendor/cmock/vendor/c_exception/LICENSE.txt +30 -30
- data/vendor/cmock/vendor/c_exception/README.md +11 -1
- data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
- data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/docs/readme.txt +261 -242
- data/vendor/cmock/vendor/c_exception/lib/CException.c +46 -46
- data/vendor/cmock/vendor/c_exception/lib/CException.h +110 -86
- data/vendor/cmock/vendor/c_exception/makefile +23 -23
- data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +46 -46
- data/vendor/cmock/vendor/c_exception/test/TestException.c +391 -342
- data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +5 -12
- data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +211 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +38 -38
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -36
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -202
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +391 -320
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parseOutput.rb +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +260 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +8 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +135 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +148 -139
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +224 -216
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +21 -31
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +40 -15
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +32 -25
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +29 -22
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +40 -14
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +2 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +48 -37
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -179
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +135 -94
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +13 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -18
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +30 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +60 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +4 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +182 -27
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +13 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +8 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +2 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +1333 -1145
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +290 -307
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +758 -620
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +7 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +7 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +4 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +4 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +4 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +4 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +4 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +9 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +7 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +9 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +10 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/{rakefile.rb → test/rakefile} +60 -61
- data/vendor/cmock/vendor/c_exception/vendor/unity/{rakefile_helper.rb → test/rakefile_helper.rb} +255 -249
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +83 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/clang_strict.yml +83 -83
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/{targets/gcc_32.yml → test/targets/gcc_auto_limits.yml} +46 -44
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +47 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +58 -0
- data/vendor/{c_exception/vendor/unity/targets/gcc_32.yml → cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml} +46 -44
- data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/hitech_picc18.yml +101 -101
- data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_arm_v4.yml +89 -89
- data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_arm_v5.yml +79 -79
- data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_arm_v5_3.yml +79 -79
- data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -93
- data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_cortexm3_v5.yml +83 -83
- data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_msp430.yml +94 -94
- data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_sh2a_v6.yml +85 -85
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -51
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/sample.yml +8 -8
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testsample.c +68 -51
- data/vendor/{c_exception/vendor/unity/test → cmock/vendor/c_exception/vendor/unity/test/tests}/test_generate_test_runner.rb +102 -88
- data/vendor/{c_exception/vendor/unity/test → cmock/vendor/c_exception/vendor/unity/test/tests}/testparameterized.c +104 -101
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/{testunity.c → tests/testunity.c} +3682 -3447
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +30 -13
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +260 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +96 -93
- 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 +12 -19
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +18 -17
- data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +66 -5
- data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +2 -1
- data/vendor/cmock/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +187 -27
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +14 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +6 -5
- data/vendor/cmock/vendor/unity/release/version.info +1 -1
- data/vendor/cmock/vendor/unity/src/unity.c +38 -27
- data/vendor/cmock/vendor/unity/src/unity.h +5 -0
- data/vendor/cmock/vendor/unity/src/unity_internals.h +22 -18
- data/vendor/cmock/vendor/unity/test/Makefile +52 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +4 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +4 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +4 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +7 -4
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +6 -4
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +4 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +4 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +4 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +4 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +4 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +4 -0
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -1
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -1
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +0 -1
- data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +0 -1
- data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +0 -1
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +0 -1
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_sizeof.yml +0 -1
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -1
- data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +0 -1
- data/vendor/cmock/vendor/unity/test/testdata/testsample.c +19 -2
- data/vendor/cmock/vendor/unity/test/tests/testunity.c +55 -4
- data/vendor/unity/auto/generate_test_runner.rb +4 -2
- data/vendor/unity/auto/stylize_as_junit.rb +260 -0
- data/vendor/unity/extras/fixture/src/unity_fixture.c +24 -41
- data/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +5 -7
- data/vendor/unity/extras/fixture/test/Makefile +53 -8
- data/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +129 -32
- data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +6 -0
- data/vendor/unity/extras/fixture/test/unity_output_Spy.c +4 -4
- data/vendor/unity/release/version.info +1 -1
- data/vendor/unity/src/unity.c +32 -21
- data/vendor/unity/src/unity.h +5 -0
- data/vendor/unity/src/unity_internals.h +7 -3
- data/vendor/unity/test/Makefile +52 -0
- data/vendor/unity/test/expectdata/testsample_cmd.c +4 -0
- data/vendor/unity/test/expectdata/testsample_def.c +4 -0
- data/vendor/unity/test/expectdata/testsample_head1.c +4 -0
- data/vendor/unity/test/expectdata/testsample_head1.h +7 -4
- data/vendor/unity/test/expectdata/testsample_mock_head1.h +6 -4
- data/vendor/unity/test/expectdata/testsample_new1.c +4 -0
- data/vendor/unity/test/expectdata/testsample_new2.c +4 -0
- data/vendor/unity/test/expectdata/testsample_param.c +4 -0
- data/vendor/unity/test/expectdata/testsample_run1.c +4 -0
- data/vendor/unity/test/expectdata/testsample_run2.c +4 -0
- data/vendor/unity/test/expectdata/testsample_yaml.c +4 -0
- data/vendor/unity/test/testdata/testsample.c +19 -2
- data/vendor/unity/test/tests/testunity.c +35 -4
- metadata +75 -52
- data/ceedling-0.18.0.gem +0 -0
- data/docs/CeedlingLogo.png +0 -0
- data/vendor/c_exception/vendor/unity/Gemfile +0 -4
- data/vendor/c_exception/vendor/unity/Gemfile.lock +0 -12
- data/vendor/c_exception/vendor/unity/examples/example_3/makefile +0 -41
- data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +0 -46
- data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +0 -50
- data/vendor/c_exception/vendor/unity/makefile +0 -37
- data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile +0 -4
- data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile.lock +0 -12
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/makefile +0 -41
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +0 -46
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +0 -50
- data/vendor/cmock/vendor/c_exception/vendor/unity/makefile +0 -37
|
@@ -1,475 +1,475 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../unit_test_helper'
|
|
2
|
-
require 'ceedling/generator_test_runner'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
# redefine split for convenience of file content comparison in tests.
|
|
6
|
-
# this is needed because we're using the '<<' operator on real files in source but substituting
|
|
7
|
-
# an array for file writes in the tests; the '<<' operator tacks on new lines when used with a file,
|
|
8
|
-
# but, of course, does not do this when inserting into an array.
|
|
9
|
-
class String
|
|
10
|
-
def newline_split(pattern=/\n/, limit=nil)
|
|
11
|
-
return (split(pattern, limit)).map{|elem| elem + "\n"} if !limit.nil?
|
|
12
|
-
return (split(pattern) ).map{|elem| elem + "\n"}
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
#NOTE: When using newline_split() & left_margin() to manage test code strings,
|
|
18
|
-
# white space to the left of newlines in otherwise blank lines is important.
|
|
19
|
-
# That is, *every* line in a test code block must be spaced over.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class GeneratorTestRunnerTest < Test::Unit::TestCase
|
|
23
|
-
|
|
24
|
-
def setup
|
|
25
|
-
objects = create_mocks(:configurator, :file_wrapper)
|
|
26
|
-
@runner_utils = GeneratorTestRunner.new(objects)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def teardown
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
######### find test cases #########
|
|
34
|
-
|
|
35
|
-
should "find test case functions in preprocessed test file" do
|
|
36
|
-
test_file = 'tests/test_me.c'
|
|
37
|
-
|
|
38
|
-
test_me_c = %Q[
|
|
39
|
-
#include "unity.h"
|
|
40
|
-
#include "Oscar.h"
|
|
41
|
-
#include "mock_abilly.h"
|
|
42
|
-
#include "mock_and_roll.h "
|
|
43
|
-
|
|
44
|
-
void test_some_stuff(void)
|
|
45
|
-
{
|
|
46
|
-
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
void test_some_more_stuff ( void )
|
|
50
|
-
{
|
|
51
|
-
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
void test_some_non_void_param_stuff()
|
|
55
|
-
{
|
|
56
|
-
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
void
|
|
60
|
-
test_some_multiline_test_case_action
|
|
61
|
-
(void)
|
|
62
|
-
{
|
|
63
|
-
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
].left_margin(0)
|
|
67
|
-
|
|
68
|
-
@configurator.expects.project_use_preprocessor.returns(true)
|
|
69
|
-
|
|
70
|
-
@file_wrapper.expects.read(test_file).returns(test_me_c)
|
|
71
|
-
|
|
72
|
-
assert_equal(
|
|
73
|
-
['test_some_stuff',
|
|
74
|
-
'test_some_more_stuff',
|
|
75
|
-
'test_some_non_void_param_stuff',
|
|
76
|
-
'test_some_multiline_test_case_action'
|
|
77
|
-
],
|
|
78
|
-
@runner_utils.find_test_cases(test_file))
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
should "find test case functions in non-preprocessed test file (do some basic pre-processing with regex)" do
|
|
82
|
-
test_file = 'tests/test_me.c'
|
|
83
|
-
|
|
84
|
-
test_me_c = %Q[
|
|
85
|
-
#include "unity.h"
|
|
86
|
-
#include "Oscar.h"
|
|
87
|
-
#include "mock_abilly.h"
|
|
88
|
-
#include "mock_and_roll.h "
|
|
89
|
-
|
|
90
|
-
#ifdef SOMETHING
|
|
91
|
-
extern void test_a_thing_to_throw_off_scanning(void);
|
|
92
|
-
#end
|
|
93
|
-
|
|
94
|
-
//void test_some_stuff(void)
|
|
95
|
-
//{
|
|
96
|
-
// TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
97
|
-
//}
|
|
98
|
-
|
|
99
|
-
/*
|
|
100
|
-
void test_some_more_stuff ( void )
|
|
101
|
-
{
|
|
102
|
-
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
103
|
-
}*/
|
|
104
|
-
|
|
105
|
-
void test_some_non_void_param_stuff()
|
|
106
|
-
{
|
|
107
|
-
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
void
|
|
111
|
-
test_some_multiline_test_case_action
|
|
112
|
-
(void)
|
|
113
|
-
{
|
|
114
|
-
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
].left_margin(0)
|
|
118
|
-
|
|
119
|
-
@configurator.expects.project_use_preprocessor.returns(false)
|
|
120
|
-
|
|
121
|
-
@file_wrapper.expects.read(test_file).returns(test_me_c)
|
|
122
|
-
|
|
123
|
-
assert_equal(
|
|
124
|
-
['test_some_non_void_param_stuff',
|
|
125
|
-
'test_some_multiline_test_case_action'
|
|
126
|
-
],
|
|
127
|
-
@runner_utils.find_test_cases(test_file))
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
######### header block #########
|
|
132
|
-
|
|
133
|
-
should "create header block of include statements and internal variables for exception handling, mocks, and strict ordering" do
|
|
134
|
-
file = []
|
|
135
|
-
|
|
136
|
-
expected_output = %Q[
|
|
137
|
-
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
|
138
|
-
#include "unity.h"
|
|
139
|
-
#include "extra_thing1.h"
|
|
140
|
-
#include "extra_thing2.h"
|
|
141
|
-
#include <setjmp.h>
|
|
142
|
-
#include <stdio.h>
|
|
143
|
-
#include "CException.h"
|
|
144
|
-
#include "mock_abc.h"
|
|
145
|
-
#include "mock_123.h"
|
|
146
|
-
|
|
147
|
-
int GlobalExpectCount;
|
|
148
|
-
int GlobalVerifyOrder;
|
|
149
|
-
char* GlobalOrderError;
|
|
150
|
-
|
|
151
|
-
char MessageBuffer[50];
|
|
152
|
-
].left_margin(0)
|
|
153
|
-
|
|
154
|
-
@configurator.expects.test_runner_includes.returns(['extra_thing1.h', 'extra_thing2.h'])
|
|
155
|
-
@configurator.expects.project_use_exceptions.returns(true)
|
|
156
|
-
@configurator.expects.extension_header.returns('.h')
|
|
157
|
-
@configurator.expects.cmock_enforce_strict_ordering.returns(true)
|
|
158
|
-
|
|
159
|
-
@runner_utils.create_header(file, ['mock_abc', 'mock_123'])
|
|
160
|
-
|
|
161
|
-
assert_equal(expected_output.newline_split[1..-1], file)
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
should "create header block of include statements and internal variables for exception handling & mocks but without strict ordering" do
|
|
165
|
-
file = []
|
|
166
|
-
|
|
167
|
-
expected_output = %Q[
|
|
168
|
-
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
|
169
|
-
#include "unity.h"
|
|
170
|
-
#include "extra_thing1.h"
|
|
171
|
-
#include "extra_thing2.h"
|
|
172
|
-
#include <setjmp.h>
|
|
173
|
-
#include <stdio.h>
|
|
174
|
-
#include "CException.h"
|
|
175
|
-
#include "mock_abc.H"
|
|
176
|
-
#include "mock_123.H"
|
|
177
|
-
|
|
178
|
-
char MessageBuffer[50];
|
|
179
|
-
].left_margin(0)
|
|
180
|
-
|
|
181
|
-
@configurator.expects.test_runner_includes.returns(['extra_thing1.h', 'extra_thing2.h'])
|
|
182
|
-
@configurator.expects.project_use_exceptions.returns(true)
|
|
183
|
-
@configurator.expects.extension_header.returns('.H')
|
|
184
|
-
@configurator.expects.cmock_enforce_strict_ordering.returns(false)
|
|
185
|
-
|
|
186
|
-
@runner_utils.create_header(file, ['mock_abc', 'mock_123'])
|
|
187
|
-
|
|
188
|
-
assert_equal(expected_output.newline_split[1..-1], file)
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
should "create header block of include statements and internal variables for no extra header files, exception handling, or mocks" do
|
|
192
|
-
file = []
|
|
193
|
-
|
|
194
|
-
expected_output = %Q[
|
|
195
|
-
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
|
196
|
-
#include "unity.h"
|
|
197
|
-
#include <setjmp.h>
|
|
198
|
-
#include <stdio.h>
|
|
199
|
-
|
|
200
|
-
char MessageBuffer[50];
|
|
201
|
-
].left_margin(0)
|
|
202
|
-
|
|
203
|
-
@configurator.expects.test_runner_includes.returns([])
|
|
204
|
-
@configurator.expects.project_use_exceptions.returns(false)
|
|
205
|
-
|
|
206
|
-
@runner_utils.create_header(file, [])
|
|
207
|
-
|
|
208
|
-
assert_equal(expected_output.newline_split[1..-1], file)
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
######### extern block #########
|
|
213
|
-
|
|
214
|
-
should "create extern block of setup, teardown, and test cases" do
|
|
215
|
-
file = []
|
|
216
|
-
|
|
217
|
-
expected_output = %Q[
|
|
218
|
-
extern void setUp(void);
|
|
219
|
-
extern void tearDown(void);
|
|
220
|
-
|
|
221
|
-
extern void test_case1(void);
|
|
222
|
-
extern void test_case2(void);
|
|
223
|
-
extern void test_case3(void);
|
|
224
|
-
].left_margin(0)
|
|
225
|
-
|
|
226
|
-
@runner_utils.create_externs(file, ['test_case1', 'test_case2', 'test_case3'])
|
|
227
|
-
|
|
228
|
-
assert_equal(expected_output.newline_split, file)
|
|
229
|
-
end
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
should "create extern block of setup, teardown, and no test cases" do
|
|
233
|
-
file = []
|
|
234
|
-
|
|
235
|
-
expected_output = %Q[
|
|
236
|
-
extern void setUp(void);
|
|
237
|
-
extern void tearDown(void);
|
|
238
|
-
].left_margin(0)
|
|
239
|
-
|
|
240
|
-
@runner_utils.create_externs(file, [])
|
|
241
|
-
|
|
242
|
-
assert_equal(expected_output.newline_split, file)
|
|
243
|
-
end
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
######### mock management #########
|
|
247
|
-
|
|
248
|
-
should "create mock management block for given mock list with strict ordering" do
|
|
249
|
-
file = []
|
|
250
|
-
|
|
251
|
-
expected_output = %Q[
|
|
252
|
-
static void CMock_Init(void)
|
|
253
|
-
{
|
|
254
|
-
GlobalExpectCount = 0;
|
|
255
|
-
GlobalVerifyOrder = 0;
|
|
256
|
-
GlobalOrderError = NULL;
|
|
257
|
-
mock_thinger_Init();
|
|
258
|
-
mock_stinger_Init();
|
|
259
|
-
mock_zinger_Init();
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
static void CMock_Verify(void)
|
|
263
|
-
{
|
|
264
|
-
mock_thinger_Verify();
|
|
265
|
-
mock_stinger_Verify();
|
|
266
|
-
mock_zinger_Verify();
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
static void CMock_Destroy(void)
|
|
270
|
-
{
|
|
271
|
-
mock_thinger_Destroy();
|
|
272
|
-
mock_stinger_Destroy();
|
|
273
|
-
mock_zinger_Destroy();
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
void CMock_VerifyAndReset(void)
|
|
277
|
-
{
|
|
278
|
-
CMock_Verify();
|
|
279
|
-
CMock_Destroy();
|
|
280
|
-
CMock_Init();
|
|
281
|
-
}
|
|
282
|
-
].left_margin(0)
|
|
283
|
-
|
|
284
|
-
@configurator.expects.extension_header.returns('.h')
|
|
285
|
-
@configurator.expects.cmock_enforce_strict_ordering.returns(true)
|
|
286
|
-
|
|
287
|
-
@runner_utils.create_mock_management(file, ['mock_thinger.h', 'mock_stinger.h', 'mock_zinger.h'])
|
|
288
|
-
|
|
289
|
-
assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
|
|
290
|
-
end
|
|
291
|
-
|
|
292
|
-
should "create mock management block for given mock list without strict ordering" do
|
|
293
|
-
file = []
|
|
294
|
-
|
|
295
|
-
expected_output = %Q[
|
|
296
|
-
static void CMock_Init(void)
|
|
297
|
-
{
|
|
298
|
-
mock_thinger_Init();
|
|
299
|
-
mock_stinger_Init();
|
|
300
|
-
mock_zinger_Init();
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
static void CMock_Verify(void)
|
|
304
|
-
{
|
|
305
|
-
mock_thinger_Verify();
|
|
306
|
-
mock_stinger_Verify();
|
|
307
|
-
mock_zinger_Verify();
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
static void CMock_Destroy(void)
|
|
311
|
-
{
|
|
312
|
-
mock_thinger_Destroy();
|
|
313
|
-
mock_stinger_Destroy();
|
|
314
|
-
mock_zinger_Destroy();
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
void CMock_VerifyAndReset(void)
|
|
318
|
-
{
|
|
319
|
-
CMock_Verify();
|
|
320
|
-
CMock_Destroy();
|
|
321
|
-
CMock_Init();
|
|
322
|
-
}
|
|
323
|
-
].left_margin(0)
|
|
324
|
-
|
|
325
|
-
@configurator.expects.extension_header.returns('.h')
|
|
326
|
-
@configurator.expects.cmock_enforce_strict_ordering.returns(false)
|
|
327
|
-
|
|
328
|
-
@runner_utils.create_mock_management(file, ['mock_thinger.h', 'mock_stinger.h', 'mock_zinger.h'])
|
|
329
|
-
|
|
330
|
-
assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
|
|
331
|
-
end
|
|
332
|
-
|
|
333
|
-
should "create empty mock management block for empty mock list" do
|
|
334
|
-
file = []
|
|
335
|
-
|
|
336
|
-
@runner_utils.create_mock_management(file, [])
|
|
337
|
-
|
|
338
|
-
assert_equal([], file)
|
|
339
|
-
end
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
######### runTest() #########
|
|
343
|
-
|
|
344
|
-
should "create no runTest function if there's no test cases (to prevent unused function compilation warnings)" do
|
|
345
|
-
file = []
|
|
346
|
-
@runner_utils.create_runtest(file, [], [])
|
|
347
|
-
assert_equal([], file)
|
|
348
|
-
end
|
|
349
|
-
|
|
350
|
-
should "create runTest function including mock and exception handling" do
|
|
351
|
-
file = []
|
|
352
|
-
|
|
353
|
-
expected_output = %Q[
|
|
354
|
-
static void runTest(UnityTestFunction test)
|
|
355
|
-
{
|
|
356
|
-
if (TEST_PROTECT())
|
|
357
|
-
{
|
|
358
|
-
CEXCEPTION_T e;
|
|
359
|
-
Try {
|
|
360
|
-
CMock_Init();
|
|
361
|
-
setUp();
|
|
362
|
-
test();
|
|
363
|
-
CMock_Verify();
|
|
364
|
-
} Catch(e) { TEST_FAIL("Unhandled Exception!"); }
|
|
365
|
-
}
|
|
366
|
-
CMock_Destroy();
|
|
367
|
-
if (TEST_PROTECT())
|
|
368
|
-
{
|
|
369
|
-
tearDown();
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
].left_margin(0)
|
|
373
|
-
|
|
374
|
-
@configurator.expects.project_use_exceptions.returns(true)
|
|
375
|
-
|
|
376
|
-
@runner_utils.create_runtest(file, ['mock_zinger.h'], ['test_icle.c', 'test_ing.c'])
|
|
377
|
-
assert_equal(expected_output.newline_split, file)
|
|
378
|
-
end
|
|
379
|
-
|
|
380
|
-
should "create runTest function including mock handling but no exception handling" do
|
|
381
|
-
file = []
|
|
382
|
-
|
|
383
|
-
expected_output = %Q[
|
|
384
|
-
static void runTest(UnityTestFunction test)
|
|
385
|
-
{
|
|
386
|
-
if (TEST_PROTECT())
|
|
387
|
-
{
|
|
388
|
-
CMock_Init();
|
|
389
|
-
setUp();
|
|
390
|
-
test();
|
|
391
|
-
CMock_Verify();
|
|
392
|
-
}
|
|
393
|
-
CMock_Destroy();
|
|
394
|
-
if (TEST_PROTECT())
|
|
395
|
-
{
|
|
396
|
-
tearDown();
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
].left_margin(0)
|
|
400
|
-
|
|
401
|
-
@configurator.expects.project_use_exceptions.returns(false)
|
|
402
|
-
|
|
403
|
-
@runner_utils.create_runtest(file, ['mock_zinger.h'], ['test_icle.c', 'test_ing.c'])
|
|
404
|
-
assert_equal(expected_output.newline_split, file)
|
|
405
|
-
end
|
|
406
|
-
|
|
407
|
-
should "create runTest function including no mock handling but including exception handling" do
|
|
408
|
-
file = []
|
|
409
|
-
|
|
410
|
-
expected_output = %Q[
|
|
411
|
-
static void runTest(UnityTestFunction test)
|
|
412
|
-
{
|
|
413
|
-
if (TEST_PROTECT())
|
|
414
|
-
{
|
|
415
|
-
CEXCEPTION_T e;
|
|
416
|
-
Try {
|
|
417
|
-
setUp();
|
|
418
|
-
test();
|
|
419
|
-
} Catch(e) { TEST_FAIL("Unhandled Exception!"); }
|
|
420
|
-
}
|
|
421
|
-
if (TEST_PROTECT())
|
|
422
|
-
{
|
|
423
|
-
tearDown();
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
].left_margin(0)
|
|
427
|
-
|
|
428
|
-
@configurator.expects.project_use_exceptions.returns(true)
|
|
429
|
-
|
|
430
|
-
@runner_utils.create_runtest(file, [], ['test_icle.c', 'test_ing.c'])
|
|
431
|
-
assert_equal(expected_output.newline_split, file)
|
|
432
|
-
end
|
|
433
|
-
|
|
434
|
-
######### main() #########
|
|
435
|
-
|
|
436
|
-
should "create main function with test cases" do
|
|
437
|
-
file = []
|
|
438
|
-
|
|
439
|
-
expected_output = %Q[
|
|
440
|
-
int main(void)
|
|
441
|
-
{
|
|
442
|
-
UnityBegin("TestMe.c");
|
|
443
|
-
|
|
444
|
-
// RUN_TEST calls runTest
|
|
445
|
-
RUN_TEST(test_a_little_test);
|
|
446
|
-
RUN_TEST(test_a_wee_test);
|
|
447
|
-
RUN_TEST(test_a_teeny_test);
|
|
448
|
-
|
|
449
|
-
UnityEnd();
|
|
450
|
-
return 0;
|
|
451
|
-
}
|
|
452
|
-
].left_margin(0)
|
|
453
|
-
|
|
454
|
-
@runner_utils.create_main(file, 'TestMe.c', ['test_a_little_test', 'test_a_wee_test', 'test_a_teeny_test'])
|
|
455
|
-
assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
|
|
456
|
-
end
|
|
457
|
-
|
|
458
|
-
should "create main function with no test cases" do
|
|
459
|
-
file = []
|
|
460
|
-
|
|
461
|
-
expected_output = %Q[
|
|
462
|
-
int main(void)
|
|
463
|
-
{
|
|
464
|
-
UnityBegin("TestIfy.c");
|
|
465
|
-
|
|
466
|
-
UnityEnd();
|
|
467
|
-
return 0;
|
|
468
|
-
}
|
|
469
|
-
].left_margin(0)
|
|
470
|
-
|
|
471
|
-
@runner_utils.create_main(file, 'TestIfy.c', [])
|
|
472
|
-
assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
|
|
473
|
-
end
|
|
474
|
-
|
|
475
|
-
end
|
|
1
|
+
require File.dirname(__FILE__) + '/../unit_test_helper'
|
|
2
|
+
require 'ceedling/generator_test_runner'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# redefine split for convenience of file content comparison in tests.
|
|
6
|
+
# this is needed because we're using the '<<' operator on real files in source but substituting
|
|
7
|
+
# an array for file writes in the tests; the '<<' operator tacks on new lines when used with a file,
|
|
8
|
+
# but, of course, does not do this when inserting into an array.
|
|
9
|
+
class String
|
|
10
|
+
def newline_split(pattern=/\n/, limit=nil)
|
|
11
|
+
return (split(pattern, limit)).map{|elem| elem + "\n"} if !limit.nil?
|
|
12
|
+
return (split(pattern) ).map{|elem| elem + "\n"}
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
#NOTE: When using newline_split() & left_margin() to manage test code strings,
|
|
18
|
+
# white space to the left of newlines in otherwise blank lines is important.
|
|
19
|
+
# That is, *every* line in a test code block must be spaced over.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GeneratorTestRunnerTest < Test::Unit::TestCase
|
|
23
|
+
|
|
24
|
+
def setup
|
|
25
|
+
objects = create_mocks(:configurator, :file_wrapper)
|
|
26
|
+
@runner_utils = GeneratorTestRunner.new(objects)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def teardown
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
######### find test cases #########
|
|
34
|
+
|
|
35
|
+
should "find test case functions in preprocessed test file" do
|
|
36
|
+
test_file = 'tests/test_me.c'
|
|
37
|
+
|
|
38
|
+
test_me_c = %Q[
|
|
39
|
+
#include "unity.h"
|
|
40
|
+
#include "Oscar.h"
|
|
41
|
+
#include "mock_abilly.h"
|
|
42
|
+
#include "mock_and_roll.h "
|
|
43
|
+
|
|
44
|
+
void test_some_stuff(void)
|
|
45
|
+
{
|
|
46
|
+
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
void test_some_more_stuff ( void )
|
|
50
|
+
{
|
|
51
|
+
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
void test_some_non_void_param_stuff()
|
|
55
|
+
{
|
|
56
|
+
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
void
|
|
60
|
+
test_some_multiline_test_case_action
|
|
61
|
+
(void)
|
|
62
|
+
{
|
|
63
|
+
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
].left_margin(0)
|
|
67
|
+
|
|
68
|
+
@configurator.expects.project_use_preprocessor.returns(true)
|
|
69
|
+
|
|
70
|
+
@file_wrapper.expects.read(test_file).returns(test_me_c)
|
|
71
|
+
|
|
72
|
+
assert_equal(
|
|
73
|
+
['test_some_stuff',
|
|
74
|
+
'test_some_more_stuff',
|
|
75
|
+
'test_some_non_void_param_stuff',
|
|
76
|
+
'test_some_multiline_test_case_action'
|
|
77
|
+
],
|
|
78
|
+
@runner_utils.find_test_cases(test_file))
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
should "find test case functions in non-preprocessed test file (do some basic pre-processing with regex)" do
|
|
82
|
+
test_file = 'tests/test_me.c'
|
|
83
|
+
|
|
84
|
+
test_me_c = %Q[
|
|
85
|
+
#include "unity.h"
|
|
86
|
+
#include "Oscar.h"
|
|
87
|
+
#include "mock_abilly.h"
|
|
88
|
+
#include "mock_and_roll.h "
|
|
89
|
+
|
|
90
|
+
#ifdef SOMETHING
|
|
91
|
+
extern void test_a_thing_to_throw_off_scanning(void);
|
|
92
|
+
#end
|
|
93
|
+
|
|
94
|
+
//void test_some_stuff(void)
|
|
95
|
+
//{
|
|
96
|
+
// TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
97
|
+
//}
|
|
98
|
+
|
|
99
|
+
/*
|
|
100
|
+
void test_some_more_stuff ( void )
|
|
101
|
+
{
|
|
102
|
+
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
103
|
+
}*/
|
|
104
|
+
|
|
105
|
+
void test_some_non_void_param_stuff()
|
|
106
|
+
{
|
|
107
|
+
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
void
|
|
111
|
+
test_some_multiline_test_case_action
|
|
112
|
+
(void)
|
|
113
|
+
{
|
|
114
|
+
TEST_ASSERT_IGNORE("pay no attention to the test behind the curtain");
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
].left_margin(0)
|
|
118
|
+
|
|
119
|
+
@configurator.expects.project_use_preprocessor.returns(false)
|
|
120
|
+
|
|
121
|
+
@file_wrapper.expects.read(test_file).returns(test_me_c)
|
|
122
|
+
|
|
123
|
+
assert_equal(
|
|
124
|
+
['test_some_non_void_param_stuff',
|
|
125
|
+
'test_some_multiline_test_case_action'
|
|
126
|
+
],
|
|
127
|
+
@runner_utils.find_test_cases(test_file))
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
######### header block #########
|
|
132
|
+
|
|
133
|
+
should "create header block of include statements and internal variables for exception handling, mocks, and strict ordering" do
|
|
134
|
+
file = []
|
|
135
|
+
|
|
136
|
+
expected_output = %Q[
|
|
137
|
+
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
|
138
|
+
#include "unity.h"
|
|
139
|
+
#include "extra_thing1.h"
|
|
140
|
+
#include "extra_thing2.h"
|
|
141
|
+
#include <setjmp.h>
|
|
142
|
+
#include <stdio.h>
|
|
143
|
+
#include "CException.h"
|
|
144
|
+
#include "mock_abc.h"
|
|
145
|
+
#include "mock_123.h"
|
|
146
|
+
|
|
147
|
+
int GlobalExpectCount;
|
|
148
|
+
int GlobalVerifyOrder;
|
|
149
|
+
char* GlobalOrderError;
|
|
150
|
+
|
|
151
|
+
char MessageBuffer[50];
|
|
152
|
+
].left_margin(0)
|
|
153
|
+
|
|
154
|
+
@configurator.expects.test_runner_includes.returns(['extra_thing1.h', 'extra_thing2.h'])
|
|
155
|
+
@configurator.expects.project_use_exceptions.returns(true)
|
|
156
|
+
@configurator.expects.extension_header.returns('.h')
|
|
157
|
+
@configurator.expects.cmock_enforce_strict_ordering.returns(true)
|
|
158
|
+
|
|
159
|
+
@runner_utils.create_header(file, ['mock_abc', 'mock_123'])
|
|
160
|
+
|
|
161
|
+
assert_equal(expected_output.newline_split[1..-1], file)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
should "create header block of include statements and internal variables for exception handling & mocks but without strict ordering" do
|
|
165
|
+
file = []
|
|
166
|
+
|
|
167
|
+
expected_output = %Q[
|
|
168
|
+
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
|
169
|
+
#include "unity.h"
|
|
170
|
+
#include "extra_thing1.h"
|
|
171
|
+
#include "extra_thing2.h"
|
|
172
|
+
#include <setjmp.h>
|
|
173
|
+
#include <stdio.h>
|
|
174
|
+
#include "CException.h"
|
|
175
|
+
#include "mock_abc.H"
|
|
176
|
+
#include "mock_123.H"
|
|
177
|
+
|
|
178
|
+
char MessageBuffer[50];
|
|
179
|
+
].left_margin(0)
|
|
180
|
+
|
|
181
|
+
@configurator.expects.test_runner_includes.returns(['extra_thing1.h', 'extra_thing2.h'])
|
|
182
|
+
@configurator.expects.project_use_exceptions.returns(true)
|
|
183
|
+
@configurator.expects.extension_header.returns('.H')
|
|
184
|
+
@configurator.expects.cmock_enforce_strict_ordering.returns(false)
|
|
185
|
+
|
|
186
|
+
@runner_utils.create_header(file, ['mock_abc', 'mock_123'])
|
|
187
|
+
|
|
188
|
+
assert_equal(expected_output.newline_split[1..-1], file)
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
should "create header block of include statements and internal variables for no extra header files, exception handling, or mocks" do
|
|
192
|
+
file = []
|
|
193
|
+
|
|
194
|
+
expected_output = %Q[
|
|
195
|
+
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
|
196
|
+
#include "unity.h"
|
|
197
|
+
#include <setjmp.h>
|
|
198
|
+
#include <stdio.h>
|
|
199
|
+
|
|
200
|
+
char MessageBuffer[50];
|
|
201
|
+
].left_margin(0)
|
|
202
|
+
|
|
203
|
+
@configurator.expects.test_runner_includes.returns([])
|
|
204
|
+
@configurator.expects.project_use_exceptions.returns(false)
|
|
205
|
+
|
|
206
|
+
@runner_utils.create_header(file, [])
|
|
207
|
+
|
|
208
|
+
assert_equal(expected_output.newline_split[1..-1], file)
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
######### extern block #########
|
|
213
|
+
|
|
214
|
+
should "create extern block of setup, teardown, and test cases" do
|
|
215
|
+
file = []
|
|
216
|
+
|
|
217
|
+
expected_output = %Q[
|
|
218
|
+
extern void setUp(void);
|
|
219
|
+
extern void tearDown(void);
|
|
220
|
+
|
|
221
|
+
extern void test_case1(void);
|
|
222
|
+
extern void test_case2(void);
|
|
223
|
+
extern void test_case3(void);
|
|
224
|
+
].left_margin(0)
|
|
225
|
+
|
|
226
|
+
@runner_utils.create_externs(file, ['test_case1', 'test_case2', 'test_case3'])
|
|
227
|
+
|
|
228
|
+
assert_equal(expected_output.newline_split, file)
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
should "create extern block of setup, teardown, and no test cases" do
|
|
233
|
+
file = []
|
|
234
|
+
|
|
235
|
+
expected_output = %Q[
|
|
236
|
+
extern void setUp(void);
|
|
237
|
+
extern void tearDown(void);
|
|
238
|
+
].left_margin(0)
|
|
239
|
+
|
|
240
|
+
@runner_utils.create_externs(file, [])
|
|
241
|
+
|
|
242
|
+
assert_equal(expected_output.newline_split, file)
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
######### mock management #########
|
|
247
|
+
|
|
248
|
+
should "create mock management block for given mock list with strict ordering" do
|
|
249
|
+
file = []
|
|
250
|
+
|
|
251
|
+
expected_output = %Q[
|
|
252
|
+
static void CMock_Init(void)
|
|
253
|
+
{
|
|
254
|
+
GlobalExpectCount = 0;
|
|
255
|
+
GlobalVerifyOrder = 0;
|
|
256
|
+
GlobalOrderError = NULL;
|
|
257
|
+
mock_thinger_Init();
|
|
258
|
+
mock_stinger_Init();
|
|
259
|
+
mock_zinger_Init();
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
static void CMock_Verify(void)
|
|
263
|
+
{
|
|
264
|
+
mock_thinger_Verify();
|
|
265
|
+
mock_stinger_Verify();
|
|
266
|
+
mock_zinger_Verify();
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
static void CMock_Destroy(void)
|
|
270
|
+
{
|
|
271
|
+
mock_thinger_Destroy();
|
|
272
|
+
mock_stinger_Destroy();
|
|
273
|
+
mock_zinger_Destroy();
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
void CMock_VerifyAndReset(void)
|
|
277
|
+
{
|
|
278
|
+
CMock_Verify();
|
|
279
|
+
CMock_Destroy();
|
|
280
|
+
CMock_Init();
|
|
281
|
+
}
|
|
282
|
+
].left_margin(0)
|
|
283
|
+
|
|
284
|
+
@configurator.expects.extension_header.returns('.h')
|
|
285
|
+
@configurator.expects.cmock_enforce_strict_ordering.returns(true)
|
|
286
|
+
|
|
287
|
+
@runner_utils.create_mock_management(file, ['mock_thinger.h', 'mock_stinger.h', 'mock_zinger.h'])
|
|
288
|
+
|
|
289
|
+
assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
should "create mock management block for given mock list without strict ordering" do
|
|
293
|
+
file = []
|
|
294
|
+
|
|
295
|
+
expected_output = %Q[
|
|
296
|
+
static void CMock_Init(void)
|
|
297
|
+
{
|
|
298
|
+
mock_thinger_Init();
|
|
299
|
+
mock_stinger_Init();
|
|
300
|
+
mock_zinger_Init();
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
static void CMock_Verify(void)
|
|
304
|
+
{
|
|
305
|
+
mock_thinger_Verify();
|
|
306
|
+
mock_stinger_Verify();
|
|
307
|
+
mock_zinger_Verify();
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
static void CMock_Destroy(void)
|
|
311
|
+
{
|
|
312
|
+
mock_thinger_Destroy();
|
|
313
|
+
mock_stinger_Destroy();
|
|
314
|
+
mock_zinger_Destroy();
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
void CMock_VerifyAndReset(void)
|
|
318
|
+
{
|
|
319
|
+
CMock_Verify();
|
|
320
|
+
CMock_Destroy();
|
|
321
|
+
CMock_Init();
|
|
322
|
+
}
|
|
323
|
+
].left_margin(0)
|
|
324
|
+
|
|
325
|
+
@configurator.expects.extension_header.returns('.h')
|
|
326
|
+
@configurator.expects.cmock_enforce_strict_ordering.returns(false)
|
|
327
|
+
|
|
328
|
+
@runner_utils.create_mock_management(file, ['mock_thinger.h', 'mock_stinger.h', 'mock_zinger.h'])
|
|
329
|
+
|
|
330
|
+
assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
|
|
331
|
+
end
|
|
332
|
+
|
|
333
|
+
should "create empty mock management block for empty mock list" do
|
|
334
|
+
file = []
|
|
335
|
+
|
|
336
|
+
@runner_utils.create_mock_management(file, [])
|
|
337
|
+
|
|
338
|
+
assert_equal([], file)
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
######### runTest() #########
|
|
343
|
+
|
|
344
|
+
should "create no runTest function if there's no test cases (to prevent unused function compilation warnings)" do
|
|
345
|
+
file = []
|
|
346
|
+
@runner_utils.create_runtest(file, [], [])
|
|
347
|
+
assert_equal([], file)
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
should "create runTest function including mock and exception handling" do
|
|
351
|
+
file = []
|
|
352
|
+
|
|
353
|
+
expected_output = %Q[
|
|
354
|
+
static void runTest(UnityTestFunction test)
|
|
355
|
+
{
|
|
356
|
+
if (TEST_PROTECT())
|
|
357
|
+
{
|
|
358
|
+
CEXCEPTION_T e;
|
|
359
|
+
Try {
|
|
360
|
+
CMock_Init();
|
|
361
|
+
setUp();
|
|
362
|
+
test();
|
|
363
|
+
CMock_Verify();
|
|
364
|
+
} Catch(e) { TEST_FAIL("Unhandled Exception!"); }
|
|
365
|
+
}
|
|
366
|
+
CMock_Destroy();
|
|
367
|
+
if (TEST_PROTECT())
|
|
368
|
+
{
|
|
369
|
+
tearDown();
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
].left_margin(0)
|
|
373
|
+
|
|
374
|
+
@configurator.expects.project_use_exceptions.returns(true)
|
|
375
|
+
|
|
376
|
+
@runner_utils.create_runtest(file, ['mock_zinger.h'], ['test_icle.c', 'test_ing.c'])
|
|
377
|
+
assert_equal(expected_output.newline_split, file)
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
should "create runTest function including mock handling but no exception handling" do
|
|
381
|
+
file = []
|
|
382
|
+
|
|
383
|
+
expected_output = %Q[
|
|
384
|
+
static void runTest(UnityTestFunction test)
|
|
385
|
+
{
|
|
386
|
+
if (TEST_PROTECT())
|
|
387
|
+
{
|
|
388
|
+
CMock_Init();
|
|
389
|
+
setUp();
|
|
390
|
+
test();
|
|
391
|
+
CMock_Verify();
|
|
392
|
+
}
|
|
393
|
+
CMock_Destroy();
|
|
394
|
+
if (TEST_PROTECT())
|
|
395
|
+
{
|
|
396
|
+
tearDown();
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
].left_margin(0)
|
|
400
|
+
|
|
401
|
+
@configurator.expects.project_use_exceptions.returns(false)
|
|
402
|
+
|
|
403
|
+
@runner_utils.create_runtest(file, ['mock_zinger.h'], ['test_icle.c', 'test_ing.c'])
|
|
404
|
+
assert_equal(expected_output.newline_split, file)
|
|
405
|
+
end
|
|
406
|
+
|
|
407
|
+
should "create runTest function including no mock handling but including exception handling" do
|
|
408
|
+
file = []
|
|
409
|
+
|
|
410
|
+
expected_output = %Q[
|
|
411
|
+
static void runTest(UnityTestFunction test)
|
|
412
|
+
{
|
|
413
|
+
if (TEST_PROTECT())
|
|
414
|
+
{
|
|
415
|
+
CEXCEPTION_T e;
|
|
416
|
+
Try {
|
|
417
|
+
setUp();
|
|
418
|
+
test();
|
|
419
|
+
} Catch(e) { TEST_FAIL("Unhandled Exception!"); }
|
|
420
|
+
}
|
|
421
|
+
if (TEST_PROTECT())
|
|
422
|
+
{
|
|
423
|
+
tearDown();
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
].left_margin(0)
|
|
427
|
+
|
|
428
|
+
@configurator.expects.project_use_exceptions.returns(true)
|
|
429
|
+
|
|
430
|
+
@runner_utils.create_runtest(file, [], ['test_icle.c', 'test_ing.c'])
|
|
431
|
+
assert_equal(expected_output.newline_split, file)
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
######### main() #########
|
|
435
|
+
|
|
436
|
+
should "create main function with test cases" do
|
|
437
|
+
file = []
|
|
438
|
+
|
|
439
|
+
expected_output = %Q[
|
|
440
|
+
int main(void)
|
|
441
|
+
{
|
|
442
|
+
UnityBegin("TestMe.c");
|
|
443
|
+
|
|
444
|
+
// RUN_TEST calls runTest
|
|
445
|
+
RUN_TEST(test_a_little_test);
|
|
446
|
+
RUN_TEST(test_a_wee_test);
|
|
447
|
+
RUN_TEST(test_a_teeny_test);
|
|
448
|
+
|
|
449
|
+
UnityEnd();
|
|
450
|
+
return 0;
|
|
451
|
+
}
|
|
452
|
+
].left_margin(0)
|
|
453
|
+
|
|
454
|
+
@runner_utils.create_main(file, 'TestMe.c', ['test_a_little_test', 'test_a_wee_test', 'test_a_teeny_test'])
|
|
455
|
+
assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
|
|
456
|
+
end
|
|
457
|
+
|
|
458
|
+
should "create main function with no test cases" do
|
|
459
|
+
file = []
|
|
460
|
+
|
|
461
|
+
expected_output = %Q[
|
|
462
|
+
int main(void)
|
|
463
|
+
{
|
|
464
|
+
UnityBegin("TestIfy.c");
|
|
465
|
+
|
|
466
|
+
UnityEnd();
|
|
467
|
+
return 0;
|
|
468
|
+
}
|
|
469
|
+
].left_margin(0)
|
|
470
|
+
|
|
471
|
+
@runner_utils.create_main(file, 'TestIfy.c', [])
|
|
472
|
+
assert_equal(expected_output.newline_split + ["\n"], file) # add newline array element that split won't do
|
|
473
|
+
end
|
|
474
|
+
|
|
475
|
+
end
|