ceedling 0.18.0 → 0.19.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/Gemfile.lock +17 -13
- data/ceedling-0.18.0.gem +0 -0
- data/docs/CeedlingPacket.md +7 -5
- data/lib/ceedling/configurator_builder.rb +10 -21
- data/lib/ceedling/configurator_setup.rb +16 -17
- data/lib/ceedling/constants.rb +4 -3
- data/lib/ceedling/defaults.rb +9 -4
- data/lib/ceedling/dependinator.rb +0 -1
- data/lib/ceedling/file_path_utils.rb +22 -26
- data/lib/ceedling/flaginator.rb +5 -5
- data/lib/ceedling/generator.rb +8 -7
- data/lib/ceedling/preprocessinator_file_handler.rb +6 -6
- data/lib/ceedling/preprocessinator_includes_handler.rb +1 -1
- data/lib/ceedling/rules_release.rake +5 -3
- data/lib/ceedling/rules_tests.rake +2 -1
- data/lib/ceedling/tasks_base.rake +1 -1
- data/lib/ceedling/tasks_vendor.rake +9 -10
- data/lib/ceedling/tool_executor.rb +23 -22
- data/lib/ceedling/version.rb +3 -3
- data/plugins/module_generator/lib/module_generator.rb +3 -3
- data/plugins/xml_tests_report/xml_tests_report.rb +1 -1
- data/spec/preprocessinator_includes_handler_spec.rb +1 -1
- data/spec/spec_system_helper.rb +192 -192
- data/vendor/c_exception/vendor/unity/Gemfile +4 -0
- data/vendor/c_exception/vendor/unity/Gemfile.lock +12 -0
- data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +115 -0
- data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -0
- data/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -0
- data/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -0
- data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +320 -0
- data/vendor/c_exception/vendor/unity/auto/parseOutput.rb +189 -0
- data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +23 -0
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +139 -0
- 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 +216 -0
- data/vendor/c_exception/vendor/unity/docs/license.txt +31 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/makefile +41 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +5 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +9 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
- data/vendor/{unity/examples/example_3/test/no_ruby → c_exception/vendor/unity/examples/example_1/test/test_runners}/TestProductionCode2_Runner.c +16 -3
- data/vendor/{unity/examples/example_3/test/no_ruby → c_exception/vendor/unity/examples/example_1/test/test_runners}/TestProductionCode_Runner.c +16 -3
- data/vendor/c_exception/vendor/unity/examples/example_2/makefile +45 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +5 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +9 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
- data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/makefile +41 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +44 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +256 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +19 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +9 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +46 -0
- data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +50 -0
- data/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +37 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +9 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +387 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +82 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +341 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +41 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
- data/vendor/c_exception/vendor/unity/makefile +37 -0
- data/vendor/c_exception/vendor/unity/rakefile.rb +61 -0
- data/vendor/c_exception/vendor/unity/rakefile_helper.rb +249 -0
- data/vendor/c_exception/vendor/unity/release/build.info +2 -0
- data/vendor/c_exception/vendor/unity/release/version.info +2 -0
- data/vendor/c_exception/vendor/unity/src/unity.c +1145 -0
- data/vendor/c_exception/vendor/unity/src/unity.h +307 -0
- data/vendor/c_exception/vendor/unity/src/unity_internals.h +620 -0
- data/vendor/c_exception/vendor/unity/targets/clang_strict.yml +83 -0
- data/vendor/c_exception/vendor/unity/targets/gcc_32.yml +44 -0
- data/vendor/c_exception/vendor/unity/targets/gcc_64.yml +45 -0
- data/vendor/c_exception/vendor/unity/targets/hitech_picc18.yml +101 -0
- data/vendor/c_exception/vendor/unity/targets/iar_arm_v4.yml +89 -0
- data/vendor/c_exception/vendor/unity/targets/iar_arm_v5.yml +79 -0
- data/vendor/c_exception/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
- data/vendor/c_exception/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
- data/vendor/c_exception/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
- data/vendor/c_exception/vendor/unity/targets/iar_msp430.yml +94 -0
- data/vendor/c_exception/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +57 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +53 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +79 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +75 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +88 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +88 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +76 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +88 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +88 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +89 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +63 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +66 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +54 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +63 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +66 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +67 -0
- data/vendor/c_exception/vendor/unity/test/test_generate_test_runner.rb +88 -0
- data/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -0
- data/vendor/c_exception/vendor/unity/test/testdata/sample.yml +9 -0
- data/vendor/c_exception/vendor/unity/test/testdata/testsample.c +51 -0
- data/vendor/c_exception/vendor/unity/test/testparameterized.c +101 -0
- data/vendor/c_exception/vendor/unity/test/testunity.c +3447 -0
- data/vendor/cmock/README.md +1 -1
- data/vendor/cmock/Rakefile +106 -104
- data/vendor/cmock/config/production_environment.rb +14 -14
- data/vendor/cmock/config/test_environment.rb +16 -16
- data/vendor/cmock/docs/CMock_Summary.md +9 -0
- data/vendor/cmock/docs/license.txt +2 -2
- data/vendor/cmock/examples/make_example/Makefile +30 -0
- data/vendor/cmock/examples/make_example/src/foo.c +5 -0
- data/vendor/cmock/examples/make_example/src/foo.h +5 -0
- data/vendor/cmock/examples/make_example/src/main.c +15 -0
- data/vendor/cmock/examples/make_example/test/test_foo.c +17 -0
- data/vendor/cmock/examples/make_example/test/test_main.c +15 -0
- data/vendor/cmock/examples/{gcc.yml → temp_sensor/gcc.yml} +43 -43
- data/vendor/cmock/examples/{iar_v4.yml → temp_sensor/iar_v4.yml} +91 -91
- data/vendor/cmock/examples/{iar_v5.yml → temp_sensor/iar_v5.yml} +80 -80
- data/vendor/cmock/examples/{rakefile.rb → temp_sensor/rakefile.rb} +32 -32
- data/vendor/cmock/examples/{rakefile_helper.rb → temp_sensor/rakefile_helper.rb} +270 -270
- data/vendor/cmock/examples/{src → temp_sensor/src}/AT91SAM7X256.h +2556 -2556
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcConductor.c +42 -42
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcConductor.h +11 -11
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcHardware.c +27 -27
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcHardware.h +9 -9
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcHardwareConfigurator.c +18 -18
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcHardwareConfigurator.h +10 -10
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcModel.c +33 -33
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcModel.h +13 -13
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcTemperatureSensor.c +51 -51
- data/vendor/cmock/examples/{src → temp_sensor/src}/AdcTemperatureSensor.h +10 -10
- data/vendor/cmock/examples/{src → temp_sensor/src}/Executor.c +25 -25
- data/vendor/cmock/examples/{src → temp_sensor/src}/Executor.h +9 -9
- data/vendor/cmock/examples/{src → temp_sensor/src}/IntrinsicsWrapper.c +18 -18
- data/vendor/cmock/examples/{src → temp_sensor/src}/IntrinsicsWrapper.h +7 -7
- data/vendor/cmock/examples/{src → temp_sensor/src}/Main.c +46 -46
- data/vendor/cmock/examples/{src → temp_sensor/src}/Main.h +7 -7
- data/vendor/cmock/examples/{src → temp_sensor/src}/Model.c +10 -10
- data/vendor/cmock/examples/{src → temp_sensor/src}/Model.h +8 -8
- data/vendor/cmock/examples/{src → temp_sensor/src}/ModelConfig.h +7 -7
- data/vendor/cmock/examples/{src → temp_sensor/src}/TaskScheduler.c +72 -72
- data/vendor/cmock/examples/{src → temp_sensor/src}/TaskScheduler.h +11 -11
- data/vendor/cmock/examples/{src → temp_sensor/src}/TemperatureCalculator.c +27 -27
- data/vendor/cmock/examples/{src → temp_sensor/src}/TemperatureCalculator.h +6 -6
- data/vendor/cmock/examples/{src → temp_sensor/src}/TemperatureFilter.c +39 -39
- data/vendor/cmock/examples/{src → temp_sensor/src}/TemperatureFilter.h +10 -10
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerConductor.c +15 -15
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerConductor.h +9 -9
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerConfigurator.c +51 -51
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerConfigurator.h +15 -15
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerHardware.c +15 -15
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerHardware.h +8 -8
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerInterruptConfigurator.c +55 -55
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerInterruptConfigurator.h +13 -13
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerInterruptHandler.c +25 -25
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerInterruptHandler.h +10 -10
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerModel.c +9 -9
- data/vendor/cmock/examples/{src → temp_sensor/src}/TimerModel.h +8 -8
- data/vendor/cmock/examples/{src → temp_sensor/src}/Types.h +103 -103
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartBaudRateRegisterCalculator.c +18 -18
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartBaudRateRegisterCalculator.h +6 -6
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartConductor.c +21 -21
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartConductor.h +7 -7
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartConfigurator.c +39 -39
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartConfigurator.h +13 -13
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartHardware.c +22 -22
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartHardware.h +9 -9
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartModel.c +34 -34
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartModel.h +10 -10
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartPutChar.c +16 -16
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartPutChar.h +8 -8
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartTransmitBufferStatus.c +7 -7
- data/vendor/cmock/examples/{src → temp_sensor/src}/UsartTransmitBufferStatus.h +8 -8
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcConductor.c +121 -121
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcHardware.c +44 -44
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcHardwareConfigurator.c +43 -43
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcModel.c +33 -33
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcTemperatureSensor.c +47 -47
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestExecutor.c +36 -36
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestMain.c +24 -24
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestModel.c +20 -20
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTaskScheduler.c +104 -104
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTemperatureCalculator.c +33 -33
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTemperatureFilter.c +69 -69
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerConductor.c +32 -32
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerConfigurator.c +112 -112
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerHardware.c +26 -26
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerInterruptConfigurator.c +78 -78
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerInterruptHandler.c +66 -66
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerModel.c +18 -18
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartBaudRateRegisterCalculator.c +21 -21
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartConductor.c +40 -40
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartConfigurator.c +77 -77
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartHardware.c +37 -37
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartModel.c +36 -36
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartPutChar.c +43 -43
- data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartTransmitBufferStatus.c +22 -22
- data/vendor/cmock/iar/iar_v4/Resource/at91SAM7X256_FLASH.xcl +185 -185
- data/vendor/cmock/iar/iar_v4/Resource/at91SAM7X256_RAM.xcl +185 -185
- data/vendor/cmock/iar/iar_v4/Resource/ioat91sam7x256.ddf +2259 -2259
- data/vendor/cmock/iar/iar_v4/cmock_demo.dep +3691 -3691
- data/vendor/cmock/iar/iar_v4/cmock_demo.ewp +2581 -2581
- data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X-EK.h +61 -61
- data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.inc +2314 -2314
- data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.rdf +4704 -4704
- data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.tcl +3407 -3407
- data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256_inc.h +2268 -2268
- data/vendor/cmock/iar/iar_v4/incIAR/ioat91sam7x256.h +4380 -4380
- data/vendor/cmock/iar/iar_v4/incIAR/lib_AT91SAM7X256.h +4211 -4211
- data/vendor/cmock/iar/iar_v4/settings/cmock_demo.cspy.bat +32 -32
- data/vendor/cmock/iar/iar_v4/srcIAR/Cstartup.s79 +265 -265
- data/vendor/cmock/iar/iar_v4/srcIAR/Cstartup_SAM7.c +98 -98
- data/vendor/cmock/iar/iar_v5/Resource/at91SAM7X256_FLASH.icf +43 -43
- data/vendor/cmock/iar/iar_v5/Resource/at91SAM7X256_RAM.icf +42 -42
- data/vendor/cmock/iar/iar_v5/cmock_demo.dep +4204 -4204
- data/vendor/cmock/iar/iar_v5/cmock_demo.ewp +2426 -2426
- data/vendor/cmock/iar/iar_v5/incIAR/AT91SAM7X-EK.h +61 -61
- data/vendor/cmock/iar/iar_v5/incIAR/AT91SAM7X256_inc.h +2268 -2268
- data/vendor/cmock/iar/iar_v5/incIAR/lib_AT91SAM7X256.h +4211 -4211
- data/vendor/cmock/iar/iar_v5/incIAR/project.h +30 -30
- data/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +33 -33
- data/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +12 -12
- data/vendor/cmock/iar/iar_v5/settings/cmock_demo.cspy.bat +33 -33
- data/vendor/cmock/iar/iar_v5/settings/cmock_demo_Binary.jlink +12 -12
- data/vendor/cmock/iar/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +12 -12
- data/vendor/cmock/iar/iar_v5/settings/cmock_demo_RAM_Debug.jlink +12 -12
- data/vendor/cmock/iar/iar_v5/srcIAR/Cstartup.s +299 -299
- data/vendor/cmock/iar/iar_v5/srcIAR/Cstartup_SAM7.c +98 -98
- data/vendor/cmock/lib/cmock.rb +89 -89
- data/vendor/cmock/lib/cmock_config.rb +134 -133
- data/vendor/cmock/lib/cmock_file_writer.rb +40 -33
- data/vendor/cmock/lib/cmock_generator.rb +234 -215
- data/vendor/cmock/lib/cmock_generator_plugin_array.rb +63 -63
- data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +96 -78
- data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +52 -51
- data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +104 -86
- data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +68 -68
- data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +72 -71
- data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +1 -1
- data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +2 -2
- data/vendor/cmock/lib/cmock_generator_utils.rb +228 -213
- data/vendor/cmock/lib/cmock_header_parser.rb +1 -1
- data/vendor/cmock/lib/cmock_plugin_manager.rb +40 -40
- data/vendor/cmock/lib/cmock_unityhelper_parser.rb +75 -75
- data/vendor/cmock/rakefile_helper.rb +381 -381
- data/vendor/cmock/release/build.info +1 -1
- data/vendor/cmock/release/version.info +1 -1
- data/vendor/cmock/scripts/create_makefile.rb +161 -0
- data/vendor/cmock/scripts/create_mock.rb +8 -0
- data/vendor/cmock/scripts/create_runner.rb +20 -0
- data/vendor/cmock/scripts/test_summary.rb +11 -0
- data/vendor/cmock/src/cmock.c +203 -192
- data/vendor/cmock/src/cmock.h +38 -36
- data/vendor/cmock/src/cmock_internals.h +11 -1
- data/vendor/cmock/targets/clang_strict.yml +90 -85
- data/vendor/cmock/targets/gcc.yml +58 -55
- data/vendor/cmock/targets/gcc_64.yml +58 -55
- data/vendor/cmock/targets/gcc_tiny.yml +80 -0
- data/vendor/cmock/targets/iar_arm_v4.yml +110 -108
- data/vendor/cmock/targets/iar_arm_v5.yml +95 -93
- data/vendor/cmock/test/c/TestCMockC.c +323 -323
- data/vendor/cmock/test/c/TestCMockC.yml +1 -0
- data/vendor/cmock/test/c/TestCMockCDynamic.c +186 -186
- data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +36 -36
- data/vendor/cmock/test/c/TestCMockC_Runner.c +39 -39
- data/vendor/cmock/test/system/systest_generator.rb +194 -194
- data/vendor/cmock/test/system/test_compilation/callingconv.h +11 -11
- data/vendor/cmock/test/system/test_compilation/osek.h +275 -275
- data/vendor/cmock/test/system/test_compilation/parsing.h +2 -0
- data/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +375 -375
- data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +459 -389
- data/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +62 -0
- data/vendor/cmock/test/system/test_interactions/doesnt_leave_details_behind.yml +308 -0
- data/vendor/cmock/test/system/test_interactions/enforce_strict_ordering.yml +23 -23
- data/vendor/cmock/test/system/test_interactions/out_of_memory.yml +65 -0
- data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +38 -20
- data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return_with_plugins.yml +280 -0
- data/vendor/cmock/test/test_helper.rb +47 -47
- data/vendor/cmock/test/unit/cmock_config_test.rb +118 -118
- data/vendor/cmock/test/unit/cmock_config_test.yml +5 -5
- data/vendor/cmock/test/unit/cmock_file_writer_test.rb +27 -27
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +507 -489
- data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +133 -133
- data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +257 -189
- data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +96 -93
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +186 -0
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +60 -81
- data/vendor/cmock/test/unit/{cmock_generator_plugin_expect_test.rb → cmock_generator_plugin_expect_b_test.rb} +202 -205
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +116 -116
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +105 -103
- data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +134 -134
- data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +377 -334
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +1381 -1337
- data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +95 -95
- data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +223 -223
- data/vendor/cmock/vendor/c_exception/Gemfile +4 -0
- data/vendor/cmock/vendor/c_exception/Gemfile.lock +12 -0
- data/vendor/cmock/vendor/c_exception/LICENSE.txt +30 -0
- data/vendor/cmock/vendor/c_exception/README.md +146 -0
- data/vendor/cmock/vendor/c_exception/Rakefile +42 -0
- 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 +242 -0
- data/vendor/cmock/vendor/c_exception/lib/CException.c +46 -0
- data/vendor/cmock/vendor/c_exception/lib/CException.h +86 -0
- data/vendor/cmock/vendor/c_exception/makefile +24 -0
- data/vendor/cmock/vendor/c_exception/release/build.info +2 -0
- data/vendor/cmock/vendor/c_exception/release/version.info +2 -0
- data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +46 -0
- data/vendor/cmock/vendor/c_exception/test/TestException.c +342 -0
- data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +74 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile +4 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile.lock +12 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +115 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +320 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parseOutput.rb +189 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +23 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +139 -0
- 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 +216 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +31 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +41 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +5 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +9 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +46 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +50 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +45 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +5 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +9 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/makefile +41 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +44 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +256 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +19 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +9 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +46 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +50 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +37 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +9 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +387 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +82 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +341 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +41 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/makefile +37 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/rakefile.rb +61 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/rakefile_helper.rb +249 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +1145 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +307 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +620 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/clang_strict.yml +83 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/gcc_32.yml +44 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/gcc_64.yml +45 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/hitech_picc18.yml +101 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v4.yml +89 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v5.yml +79 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_msp430.yml +94 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +57 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +53 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +79 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +75 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +88 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +88 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +76 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +88 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +88 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +89 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +63 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +66 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +54 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +63 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +66 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +67 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/test_generate_test_runner.rb +88 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/sample.yml +9 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testsample.c +51 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testparameterized.c +101 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testunity.c +3447 -0
- data/vendor/cmock/vendor/unity/README.md +211 -0
- data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +115 -0
- data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -0
- data/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -0
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +202 -0
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +374 -0
- data/vendor/cmock/vendor/unity/auto/parseOutput.rb +191 -0
- data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +23 -0
- data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +8 -0
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +135 -0
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +148 -0
- data/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/Unity Summary.txt +224 -0
- data/vendor/cmock/vendor/unity/docs/license.txt +21 -0
- data/vendor/{unity/examples/example_3 → cmock/vendor/unity/examples/example_1}/makefile +9 -5
- data/vendor/cmock/vendor/unity/examples/example_1/readme.txt +5 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
- data/vendor/cmock/vendor/unity/examples/example_2/makefile +71 -0
- data/vendor/cmock/vendor/unity/examples/example_2/readme.txt +5 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +43 -0
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +256 -0
- data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +19 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
- data/vendor/cmock/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +48 -0
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +179 -0
- data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +9 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +423 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +78 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +46 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +45 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +19 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +373 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +43 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +57 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
- data/vendor/cmock/vendor/unity/release/build.info +2 -0
- data/vendor/cmock/vendor/unity/release/version.info +2 -0
- data/vendor/cmock/vendor/unity/src/unity.c +1324 -0
- data/vendor/cmock/vendor/unity/src/unity.h +285 -0
- data/vendor/cmock/vendor/unity/src/unity_internals.h +758 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +57 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +53 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +51 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +12 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +76 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +11 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +77 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +63 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +66 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +54 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +63 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +66 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +67 -0
- data/vendor/cmock/vendor/unity/test/rakefile +60 -0
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +255 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +84 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +84 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +50 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +51 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +47 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_sizeof.yml +48 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +59 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +47 -0
- data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +101 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +89 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +79 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +79 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +83 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +94 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +85 -0
- data/vendor/cmock/vendor/unity/test/testdata/mocksample.c +51 -0
- data/vendor/cmock/vendor/unity/test/testdata/sample.yml +9 -0
- data/vendor/cmock/vendor/unity/test/testdata/testsample.c +51 -0
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +102 -0
- data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +104 -0
- data/vendor/cmock/vendor/unity/test/tests/testunity.c +3656 -0
- data/vendor/unity/README.md +211 -203
- data/vendor/unity/auto/colour_reporter.rb +38 -38
- data/vendor/unity/auto/generate_config.yml +36 -36
- data/vendor/unity/auto/generate_module.rb +202 -202
- data/vendor/unity/auto/generate_test_runner.rb +389 -347
- data/vendor/unity/auto/parseOutput.rb +2 -0
- data/vendor/unity/auto/unity_test_summary.py +135 -135
- data/vendor/unity/auto/unity_test_summary.rb +148 -139
- data/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/unity/docs/Unity Summary.txt +224 -216
- data/vendor/unity/docs/license.txt +21 -21
- data/vendor/unity/examples/example_1/makefile +7 -3
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +29 -9
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +26 -6
- data/vendor/unity/examples/example_2/makefile +7 -4
- data/vendor/unity/extras/fixture/rakefile.rb +48 -48
- data/vendor/unity/extras/fixture/rakefile_helper.rb +179 -179
- data/vendor/unity/extras/fixture/src/unity_fixture.c +123 -78
- data/vendor/unity/extras/fixture/src/unity_fixture.h +6 -14
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -15
- data/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +25 -0
- data/vendor/unity/extras/fixture/test/Makefile +35 -0
- data/vendor/unity/extras/fixture/test/main/AllTests.c +2 -1
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +99 -4
- data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +10 -0
- data/vendor/unity/extras/fixture/test/unity_output_Spy.c +3 -1
- data/vendor/unity/release/build.info +1 -1
- data/vendor/unity/release/version.info +1 -1
- data/vendor/unity/src/unity.c +1324 -1177
- data/vendor/unity/src/unity.h +285 -272
- data/vendor/unity/src/unity_internals.h +758 -692
- data/vendor/unity/test/expectdata/testsample_head1.c +51 -0
- data/vendor/unity/test/expectdata/testsample_head1.h +12 -0
- data/vendor/unity/test/expectdata/testsample_mock_cmd.c +1 -0
- data/vendor/unity/test/expectdata/testsample_mock_def.c +1 -0
- data/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
- data/vendor/unity/test/expectdata/testsample_mock_head1.h +11 -0
- data/vendor/unity/test/expectdata/testsample_mock_new1.c +3 -2
- data/vendor/unity/test/expectdata/testsample_mock_new2.c +1 -0
- data/vendor/unity/test/expectdata/testsample_mock_param.c +1 -0
- data/vendor/unity/test/expectdata/testsample_mock_run1.c +3 -2
- data/vendor/unity/test/expectdata/testsample_mock_run2.c +1 -0
- data/vendor/unity/test/expectdata/testsample_mock_yaml.c +4 -3
- data/vendor/unity/test/expectdata/testsample_new1.c +2 -2
- data/vendor/unity/test/expectdata/testsample_run1.c +2 -2
- data/vendor/unity/test/expectdata/testsample_yaml.c +3 -3
- data/vendor/unity/test/rakefile +60 -60
- data/vendor/unity/test/rakefile_helper.rb +255 -249
- data/vendor/unity/test/targets/clang_file.yml +83 -0
- data/vendor/unity/test/targets/clang_strict.yml +83 -83
- data/vendor/unity/test/targets/gcc_32.yml +49 -49
- data/vendor/unity/test/targets/gcc_64.yml +50 -50
- data/vendor/unity/test/targets/gcc_auto_limits.yml +46 -46
- data/vendor/unity/test/targets/gcc_auto_sizeof.yml +47 -47
- data/vendor/unity/test/targets/gcc_auto_stdint.yml +58 -58
- data/vendor/unity/test/targets/gcc_manual_math.yml +46 -0
- data/vendor/unity/test/targets/hitech_picc18.yml +101 -101
- data/vendor/unity/test/targets/iar_arm_v4.yml +89 -89
- data/vendor/unity/test/targets/iar_arm_v5.yml +79 -79
- data/vendor/unity/test/targets/iar_arm_v5_3.yml +79 -79
- data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -93
- data/vendor/unity/test/targets/iar_cortexm3_v5.yml +83 -83
- data/vendor/unity/test/targets/iar_msp430.yml +94 -94
- data/vendor/unity/test/targets/iar_sh2a_v6.yml +85 -85
- data/vendor/unity/test/testdata/mocksample.c +51 -51
- data/vendor/unity/test/testdata/sample.yml +8 -8
- data/vendor/unity/test/testdata/testsample.c +51 -51
- data/vendor/unity/test/tests/test_generate_test_runner.rb +102 -88
- data/vendor/unity/test/tests/testparameterized.c +104 -101
- data/vendor/unity/test/tests/testunity.c +3676 -3447
- metadata +549 -191
|
@@ -8,6 +8,31 @@
|
|
|
8
8
|
#ifndef UNITY_FIXTURE_MALLOC_OVERRIDES_H_
|
|
9
9
|
#define UNITY_FIXTURE_MALLOC_OVERRIDES_H_
|
|
10
10
|
|
|
11
|
+
#include <stddef.h>
|
|
12
|
+
|
|
13
|
+
#ifdef UNITY_EXCLUDE_STDLIB_MALLOC
|
|
14
|
+
// Define this macro to remove the use of stdlib.h, malloc, and free.
|
|
15
|
+
// Many embedded systems do not have a heap or malloc/free by default.
|
|
16
|
+
// This internal unity_malloc() provides allocated memory deterministically from
|
|
17
|
+
// the end of an array only, unity_free() only releases from end-of-array,
|
|
18
|
+
// blocks are not coalesced, and memory not freed in LIFO order is stranded.
|
|
19
|
+
#ifndef UNITY_INTERNAL_HEAP_SIZE_BYTES
|
|
20
|
+
#define UNITY_INTERNAL_HEAP_SIZE_BYTES 256
|
|
21
|
+
#endif
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
// These functions are used by the Unity Fixture to allocate and release memory
|
|
25
|
+
// on the heap and can be overridden with platform-specific implementations.
|
|
26
|
+
// For example, when using FreeRTOS UNITY_FIXTURE_MALLOC becomes pvPortMalloc()
|
|
27
|
+
// and UNITY_FIXTURE_FREE becomes vPortFree().
|
|
28
|
+
#if !defined(UNITY_FIXTURE_MALLOC) || !defined(UNITY_FIXTURE_FREE)
|
|
29
|
+
#define UNITY_FIXTURE_MALLOC(size) malloc(size)
|
|
30
|
+
#define UNITY_FIXTURE_FREE(ptr) free(ptr)
|
|
31
|
+
#else
|
|
32
|
+
extern void* UNITY_FIXTURE_MALLOC(size_t size);
|
|
33
|
+
extern void UNITY_FIXTURE_FREE(void* ptr);
|
|
34
|
+
#endif
|
|
35
|
+
|
|
11
36
|
#define malloc unity_malloc
|
|
12
37
|
#define calloc unity_calloc
|
|
13
38
|
#define realloc unity_realloc
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
CC = gcc
|
|
2
|
+
CFLAGS += -Werror
|
|
3
|
+
CFLAGS += -std=c99
|
|
4
|
+
CFLAGS += -pedantic
|
|
5
|
+
CFLAGS += -Wundef
|
|
6
|
+
DEFINES = -D UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar
|
|
7
|
+
SRC = ../src/unity_fixture.c \
|
|
8
|
+
../../../src/unity.c \
|
|
9
|
+
unity_fixture_Test.c \
|
|
10
|
+
unity_fixture_TestRunner.c \
|
|
11
|
+
unity_output_Spy.c \
|
|
12
|
+
main/AllTests.c
|
|
13
|
+
|
|
14
|
+
INC_DIR = -I../src -I../../../src/
|
|
15
|
+
TARGET = fixture_tests.exe
|
|
16
|
+
|
|
17
|
+
all: default noStdlibMalloc 32bits
|
|
18
|
+
|
|
19
|
+
default:
|
|
20
|
+
$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET)
|
|
21
|
+
@ echo "default build"
|
|
22
|
+
./$(TARGET)
|
|
23
|
+
|
|
24
|
+
32bits:
|
|
25
|
+
$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m32
|
|
26
|
+
@ echo "32bits build"
|
|
27
|
+
./$(TARGET)
|
|
28
|
+
|
|
29
|
+
noStdlibMalloc:
|
|
30
|
+
$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_EXCLUDE_STDLIB_MALLOC
|
|
31
|
+
@ echo "build with noStdlibMalloc"
|
|
32
|
+
./$(TARGET)
|
|
33
|
+
|
|
34
|
+
clangEverything:
|
|
35
|
+
$(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m64 -Weverything # || true #prevents make from failing
|
|
@@ -11,7 +11,8 @@ static void runAllTests(void)
|
|
|
11
11
|
{
|
|
12
12
|
RUN_TEST_GROUP(UnityFixture);
|
|
13
13
|
RUN_TEST_GROUP(UnityCommandOptions);
|
|
14
|
-
RUN_TEST_GROUP(LeakDetection)
|
|
14
|
+
RUN_TEST_GROUP(LeakDetection);
|
|
15
|
+
RUN_TEST_GROUP(InternalMalloc);
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
int main(int argc, const char* argv[])
|
|
@@ -79,9 +79,10 @@ TEST(UnityFixture, ReallocLargerNeeded)
|
|
|
79
79
|
{
|
|
80
80
|
void* m1 = malloc(10);
|
|
81
81
|
void* m2;
|
|
82
|
+
CHECK(m1);
|
|
82
83
|
strcpy((char*)m1, "123456789");
|
|
83
84
|
m2 = realloc(m1, 15);
|
|
84
|
-
CHECK(m1 != m2);
|
|
85
|
+
// CHECK(m1 != m2); //Depends on implementation
|
|
85
86
|
STRCMP_EQUAL("123456789", m2);
|
|
86
87
|
free(m2);
|
|
87
88
|
}
|
|
@@ -104,6 +105,7 @@ TEST(UnityFixture, CallocFillsWithZero)
|
|
|
104
105
|
{
|
|
105
106
|
void* m = calloc(3, sizeof(char));
|
|
106
107
|
char* s = (char*)m;
|
|
108
|
+
CHECK(m);
|
|
107
109
|
TEST_ASSERT_BYTES_EQUAL(0, s[0]);
|
|
108
110
|
TEST_ASSERT_BYTES_EQUAL(0, s[1]);
|
|
109
111
|
TEST_ASSERT_BYTES_EQUAL(0, s[2]);
|
|
@@ -132,6 +134,11 @@ TEST(UnityFixture, PointerSet)
|
|
|
132
134
|
TEST_ASSERT_POINTERS_EQUAL(&c2, p2);
|
|
133
135
|
}
|
|
134
136
|
|
|
137
|
+
TEST(UnityFixture, FreeNULLSafety)
|
|
138
|
+
{
|
|
139
|
+
free(NULL);
|
|
140
|
+
}
|
|
141
|
+
|
|
135
142
|
//------------------------------------------------------------
|
|
136
143
|
|
|
137
144
|
TEST_GROUP(UnityCommandOptions);
|
|
@@ -272,6 +279,10 @@ TEST(UnityCommandOptions, UnknownCommandIsIgnored)
|
|
|
272
279
|
TEST_ASSERT_EQUAL(98, UnityFixture.RepeatCount);
|
|
273
280
|
}
|
|
274
281
|
|
|
282
|
+
IGNORE_TEST(UnityCommandOptions, TestShouldBeIgnored)
|
|
283
|
+
{
|
|
284
|
+
TEST_FAIL_MESSAGE("This test should not run!");
|
|
285
|
+
}
|
|
275
286
|
|
|
276
287
|
//------------------------------------------------------------
|
|
277
288
|
|
|
@@ -279,7 +290,11 @@ TEST_GROUP(LeakDetection);
|
|
|
279
290
|
|
|
280
291
|
TEST_SETUP(LeakDetection)
|
|
281
292
|
{
|
|
293
|
+
#ifdef UNITY_EXCLUDE_STDLIB_MALLOC
|
|
294
|
+
UnityOutputCharSpy_Create(200);
|
|
295
|
+
#else
|
|
282
296
|
UnityOutputCharSpy_Create(1000);
|
|
297
|
+
#endif
|
|
283
298
|
}
|
|
284
299
|
|
|
285
300
|
TEST_TEAR_DOWN(LeakDetection)
|
|
@@ -299,22 +314,41 @@ TEST_TEAR_DOWN(LeakDetection)
|
|
|
299
314
|
memcpy(Unity.AbortFrame, TestAbortFrame, sizeof(jmp_buf)); \
|
|
300
315
|
}
|
|
301
316
|
|
|
317
|
+
// This tricky set of defines lets us see if we are using the Spy, returns 1 if true, else 0
|
|
318
|
+
#define USING_SPY_AS(a) EXPAND_AND_USE_2ND(ASSIGN_VALUE(a), 0)
|
|
319
|
+
#define ASSIGN_VALUE(a) VAL_FUNC_##a
|
|
320
|
+
#define VAL_FUNC_UnityOutputCharSpy_OutputChar() 0, 1
|
|
321
|
+
#define EXPAND_AND_USE_2ND(a, b) SECOND_PARAM(a, b, throwaway)
|
|
322
|
+
#define SECOND_PARAM(a, b, ...) b
|
|
323
|
+
#if USING_SPY_AS(UNITY_OUTPUT_CHAR())
|
|
324
|
+
#define USING_OUTPUT_SPY
|
|
325
|
+
#endif
|
|
302
326
|
TEST(LeakDetection, DetectsLeak)
|
|
303
327
|
{
|
|
328
|
+
#ifndef USING_OUTPUT_SPY
|
|
329
|
+
TEST_IGNORE_MESSAGE("Build with '-D UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar' to enable tests");
|
|
330
|
+
#else
|
|
304
331
|
void* m = malloc(10);
|
|
332
|
+
TEST_ASSERT_NOT_NULL(m);
|
|
305
333
|
UnityOutputCharSpy_Enable(1);
|
|
306
334
|
EXPECT_ABORT_BEGIN
|
|
307
335
|
UnityMalloc_EndTest();
|
|
308
336
|
EXPECT_ABORT_END
|
|
309
337
|
UnityOutputCharSpy_Enable(0);
|
|
338
|
+
Unity.CurrentTestFailed = 0;
|
|
310
339
|
CHECK(strstr(UnityOutputCharSpy_Get(), "This test leaks!"));
|
|
311
340
|
free(m);
|
|
312
|
-
|
|
341
|
+
#endif
|
|
313
342
|
}
|
|
314
343
|
|
|
315
344
|
TEST(LeakDetection, BufferOverrunFoundDuringFree)
|
|
316
345
|
{
|
|
346
|
+
#ifndef USING_OUTPUT_SPY
|
|
347
|
+
UNITY_PRINT_EOL();
|
|
348
|
+
TEST_IGNORE();
|
|
349
|
+
#else
|
|
317
350
|
void* m = malloc(10);
|
|
351
|
+
TEST_ASSERT_NOT_NULL(m);
|
|
318
352
|
char* s = (char*)m;
|
|
319
353
|
s[10] = (char)0xFF;
|
|
320
354
|
UnityOutputCharSpy_Enable(1);
|
|
@@ -322,13 +356,19 @@ TEST(LeakDetection, BufferOverrunFoundDuringFree)
|
|
|
322
356
|
free(m);
|
|
323
357
|
EXPECT_ABORT_END
|
|
324
358
|
UnityOutputCharSpy_Enable(0);
|
|
325
|
-
CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during free()"));
|
|
326
359
|
Unity.CurrentTestFailed = 0;
|
|
360
|
+
CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during free()"));
|
|
361
|
+
#endif
|
|
327
362
|
}
|
|
328
363
|
|
|
329
364
|
TEST(LeakDetection, BufferOverrunFoundDuringRealloc)
|
|
330
365
|
{
|
|
366
|
+
#ifndef USING_OUTPUT_SPY
|
|
367
|
+
UNITY_PRINT_EOL();
|
|
368
|
+
TEST_IGNORE();
|
|
369
|
+
#else
|
|
331
370
|
void* m = malloc(10);
|
|
371
|
+
TEST_ASSERT_NOT_NULL(m);
|
|
332
372
|
char* s = (char*)m;
|
|
333
373
|
s[10] = (char)0xFF;
|
|
334
374
|
UnityOutputCharSpy_Enable(1);
|
|
@@ -336,6 +376,61 @@ TEST(LeakDetection, BufferOverrunFoundDuringRealloc)
|
|
|
336
376
|
m = realloc(m, 100);
|
|
337
377
|
EXPECT_ABORT_END
|
|
338
378
|
UnityOutputCharSpy_Enable(0);
|
|
339
|
-
CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during realloc()"));
|
|
340
379
|
Unity.CurrentTestFailed = 0;
|
|
380
|
+
CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during realloc()"));
|
|
381
|
+
#endif
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
TEST_GROUP(InternalMalloc);
|
|
385
|
+
|
|
386
|
+
TEST_SETUP(InternalMalloc) { }
|
|
387
|
+
TEST_TEAR_DOWN(InternalMalloc) { }
|
|
388
|
+
|
|
389
|
+
TEST(InternalMalloc, MallocPastBufferFails)
|
|
390
|
+
{
|
|
391
|
+
#ifdef UNITY_EXCLUDE_STDLIB_MALLOC
|
|
392
|
+
void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
|
|
393
|
+
TEST_ASSERT_NOT_NULL(m);
|
|
394
|
+
void* n = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
|
|
395
|
+
TEST_ASSERT_NULL(n);
|
|
396
|
+
free(m);
|
|
397
|
+
#endif
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
TEST(InternalMalloc, CallocPastBufferFails)
|
|
401
|
+
{
|
|
402
|
+
#ifdef UNITY_EXCLUDE_STDLIB_MALLOC
|
|
403
|
+
void* m = calloc(1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
|
|
404
|
+
TEST_ASSERT_NOT_NULL(m);
|
|
405
|
+
void* n = calloc(1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
|
|
406
|
+
TEST_ASSERT_NULL(n);
|
|
407
|
+
free(m);
|
|
408
|
+
#endif
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
TEST(InternalMalloc, MallocThenReallocGrowsMemoryInPlace)
|
|
412
|
+
{
|
|
413
|
+
#ifdef UNITY_EXCLUDE_STDLIB_MALLOC
|
|
414
|
+
void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
|
|
415
|
+
TEST_ASSERT_NOT_NULL(m);
|
|
416
|
+
void* n = realloc(m, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 9);
|
|
417
|
+
TEST_ASSERT_EQUAL(m, n);
|
|
418
|
+
free(n);
|
|
419
|
+
#endif
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
TEST(InternalMalloc, ReallocFailDoesNotFreeMem)
|
|
423
|
+
{
|
|
424
|
+
#ifdef UNITY_EXCLUDE_STDLIB_MALLOC
|
|
425
|
+
void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
|
|
426
|
+
TEST_ASSERT_NOT_NULL(m);
|
|
427
|
+
void* n1 = malloc(10);
|
|
428
|
+
void* out_of_mem = realloc(n1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
|
|
429
|
+
TEST_ASSERT_NULL(out_of_mem);
|
|
430
|
+
void* n2 = malloc(10);
|
|
431
|
+
TEST_ASSERT_NOT_EQUAL(n2, n1);
|
|
432
|
+
free(n2);
|
|
433
|
+
free(n1);
|
|
434
|
+
free(m);
|
|
435
|
+
#endif
|
|
341
436
|
}
|
|
@@ -18,6 +18,7 @@ TEST_GROUP_RUNNER(UnityFixture)
|
|
|
18
18
|
RUN_TEST_CASE(UnityFixture, ReallocSizeZeroFreesMemAndReturnsNullPointer);
|
|
19
19
|
RUN_TEST_CASE(UnityFixture, CallocFillsWithZero);
|
|
20
20
|
RUN_TEST_CASE(UnityFixture, PointerSet);
|
|
21
|
+
RUN_TEST_CASE(UnityFixture, FreeNULLSafety);
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
TEST_GROUP_RUNNER(UnityCommandOptions)
|
|
@@ -31,6 +32,7 @@ TEST_GROUP_RUNNER(UnityCommandOptions)
|
|
|
31
32
|
RUN_TEST_CASE(UnityCommandOptions, MultipleOptions);
|
|
32
33
|
RUN_TEST_CASE(UnityCommandOptions, MultipleOptionsDashRNotLastAndNoValueSpecified);
|
|
33
34
|
RUN_TEST_CASE(UnityCommandOptions, UnknownCommandIsIgnored);
|
|
35
|
+
RUN_TEST_CASE(UnityCommandOptions, TestShouldBeIgnored);
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
TEST_GROUP_RUNNER(LeakDetection)
|
|
@@ -39,3 +41,11 @@ TEST_GROUP_RUNNER(LeakDetection)
|
|
|
39
41
|
RUN_TEST_CASE(LeakDetection, BufferOverrunFoundDuringFree);
|
|
40
42
|
RUN_TEST_CASE(LeakDetection, BufferOverrunFoundDuringRealloc);
|
|
41
43
|
}
|
|
44
|
+
|
|
45
|
+
TEST_GROUP_RUNNER(InternalMalloc)
|
|
46
|
+
{
|
|
47
|
+
RUN_TEST_CASE(InternalMalloc, MallocPastBufferFails);
|
|
48
|
+
RUN_TEST_CASE(InternalMalloc, CallocPastBufferFails);
|
|
49
|
+
RUN_TEST_CASE(InternalMalloc, MallocThenReallocGrowsMemoryInPlace);
|
|
50
|
+
RUN_TEST_CASE(InternalMalloc, ReallocFailDoesNotFreeMem);
|
|
51
|
+
}
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
#include "unity_output_Spy.h"
|
|
10
|
+
#include "unity_fixture.h"
|
|
11
|
+
|
|
10
12
|
#include <stdio.h>
|
|
11
|
-
#include <stdlib.h>
|
|
12
13
|
#include <string.h>
|
|
13
14
|
|
|
14
15
|
static int size;
|
|
@@ -22,6 +23,7 @@ void UnityOutputCharSpy_Create(int s)
|
|
|
22
23
|
count = 0;
|
|
23
24
|
spy_enable = 0;
|
|
24
25
|
buffer = malloc(size);
|
|
26
|
+
TEST_ASSERT_NOT_NULL_MESSAGE(buffer, "Internal malloc failed in Spy Create():" __FILE__);
|
|
25
27
|
memset(buffer, 0, size);
|
|
26
28
|
}
|
|
27
29
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
119
|
|
2
2
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.3.0
|
|
2
2
|
|
data/vendor/unity/src/unity.c
CHANGED
|
@@ -1,1177 +1,1324 @@
|
|
|
1
|
-
/* =========================================================================
|
|
2
|
-
Unity Project - A Test Framework for C
|
|
3
|
-
Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams
|
|
4
|
-
[Released under MIT License. Please refer to license.txt for details]
|
|
5
|
-
============================================================================ */
|
|
6
|
-
|
|
7
|
-
#include "unity.h"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
#define
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
#define
|
|
14
|
-
|
|
15
|
-
struct _Unity Unity;
|
|
16
|
-
|
|
17
|
-
const char UnityStrOk[] = "OK";
|
|
18
|
-
const char UnityStrPass[] = "PASS";
|
|
19
|
-
const char UnityStrFail[] = "FAIL";
|
|
20
|
-
const char UnityStrIgnore[] = "IGNORE";
|
|
21
|
-
const char UnityStrNull[] = "NULL";
|
|
22
|
-
const char UnityStrSpacer[] = ". ";
|
|
23
|
-
const char UnityStrExpected[] = " Expected ";
|
|
24
|
-
const char UnityStrWas[] = " Was ";
|
|
25
|
-
const char UnityStrTo[] = " To ";
|
|
26
|
-
const char UnityStrElement[] = " Element ";
|
|
27
|
-
const char UnityStrByte[] = " Byte ";
|
|
28
|
-
const char UnityStrMemory[] = " Memory Mismatch.";
|
|
29
|
-
const char UnityStrDelta[] = " Values Not Within Delta ";
|
|
30
|
-
const char UnityStrPointless[] = " You Asked Me To Compare Nothing, Which Was Pointless.";
|
|
31
|
-
const char UnityStrNullPointerForExpected[] = " Expected pointer to be NULL";
|
|
32
|
-
const char UnityStrNullPointerForActual[] = " Actual pointer was NULL";
|
|
33
|
-
const char UnityStrNot[] = "Not ";
|
|
34
|
-
const char UnityStrInf[] = "Infinity";
|
|
35
|
-
const char UnityStrNegInf[] = "Negative Infinity";
|
|
36
|
-
const char UnityStrNaN[] = "NaN";
|
|
37
|
-
const char UnityStrDet[] = "Determinate";
|
|
38
|
-
const char UnityStrErrFloat[] = "Unity Floating Point Disabled";
|
|
39
|
-
const char UnityStrErrDouble[] = "Unity Double Precision Disabled";
|
|
40
|
-
const char UnityStrErr64[] = "Unity 64-bit Support Disabled";
|
|
41
|
-
const char UnityStrBreaker[] = "-----------------------";
|
|
42
|
-
const char UnityStrResultsTests[] = " Tests ";
|
|
43
|
-
const char UnityStrResultsFailures[] = " Failures ";
|
|
44
|
-
const char UnityStrResultsIgnored[] = " Ignored ";
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
static const
|
|
52
|
-
#endif
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
65535u,
|
|
60
|
-
|
|
61
|
-
4294967295u,
|
|
62
|
-
4294967295u,
|
|
63
|
-
4294967295u
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
void
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
UNITY_OUTPUT_CHAR('
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
UNITY_OUTPUT_CHAR('
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
{
|
|
244
|
-
UNITY_OUTPUT_CHAR('
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
{
|
|
265
|
-
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
void
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
UnityPrint(
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
{
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
#
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
}
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
}
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
{
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1
|
+
/* =========================================================================
|
|
2
|
+
Unity Project - A Test Framework for C
|
|
3
|
+
Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams
|
|
4
|
+
[Released under MIT License. Please refer to license.txt for details]
|
|
5
|
+
============================================================================ */
|
|
6
|
+
|
|
7
|
+
#include "unity.h"
|
|
8
|
+
#include <stddef.h>
|
|
9
|
+
|
|
10
|
+
#define UNITY_FAIL_AND_BAIL { Unity.CurrentTestFailed = 1; longjmp(Unity.AbortFrame, 1); }
|
|
11
|
+
#define UNITY_IGNORE_AND_BAIL { Unity.CurrentTestIgnored = 1; longjmp(Unity.AbortFrame, 1); }
|
|
12
|
+
/// return prematurely if we are already in failure or ignore state
|
|
13
|
+
#define UNITY_SKIP_EXECUTION { if ((Unity.CurrentTestFailed != 0) || (Unity.CurrentTestIgnored != 0)) {return;} }
|
|
14
|
+
|
|
15
|
+
struct _Unity Unity;
|
|
16
|
+
|
|
17
|
+
const char UnityStrOk[] = "OK";
|
|
18
|
+
const char UnityStrPass[] = "PASS";
|
|
19
|
+
const char UnityStrFail[] = "FAIL";
|
|
20
|
+
const char UnityStrIgnore[] = "IGNORE";
|
|
21
|
+
const char UnityStrNull[] = "NULL";
|
|
22
|
+
const char UnityStrSpacer[] = ". ";
|
|
23
|
+
const char UnityStrExpected[] = " Expected ";
|
|
24
|
+
const char UnityStrWas[] = " Was ";
|
|
25
|
+
const char UnityStrTo[] = " To ";
|
|
26
|
+
const char UnityStrElement[] = " Element ";
|
|
27
|
+
const char UnityStrByte[] = " Byte ";
|
|
28
|
+
const char UnityStrMemory[] = " Memory Mismatch.";
|
|
29
|
+
const char UnityStrDelta[] = " Values Not Within Delta ";
|
|
30
|
+
const char UnityStrPointless[] = " You Asked Me To Compare Nothing, Which Was Pointless.";
|
|
31
|
+
const char UnityStrNullPointerForExpected[] = " Expected pointer to be NULL";
|
|
32
|
+
const char UnityStrNullPointerForActual[] = " Actual pointer was NULL";
|
|
33
|
+
const char UnityStrNot[] = "Not ";
|
|
34
|
+
const char UnityStrInf[] = "Infinity";
|
|
35
|
+
const char UnityStrNegInf[] = "Negative Infinity";
|
|
36
|
+
const char UnityStrNaN[] = "NaN";
|
|
37
|
+
const char UnityStrDet[] = "Determinate";
|
|
38
|
+
const char UnityStrErrFloat[] = "Unity Floating Point Disabled";
|
|
39
|
+
const char UnityStrErrDouble[] = "Unity Double Precision Disabled";
|
|
40
|
+
const char UnityStrErr64[] = "Unity 64-bit Support Disabled";
|
|
41
|
+
const char UnityStrBreaker[] = "-----------------------";
|
|
42
|
+
const char UnityStrResultsTests[] = " Tests ";
|
|
43
|
+
const char UnityStrResultsFailures[] = " Failures ";
|
|
44
|
+
const char UnityStrResultsIgnored[] = " Ignored ";
|
|
45
|
+
const char UnityStrDetail1Name[] = UNITY_DETAIL1_NAME " ";
|
|
46
|
+
const char UnityStrDetail2Name[] = " " UNITY_DETAIL2_NAME " ";
|
|
47
|
+
|
|
48
|
+
#ifdef UNITY_FLOAT_NEEDS_ZERO
|
|
49
|
+
// Dividing by these constants produces +/- infinity.
|
|
50
|
+
// The rationale is given in UnityAssertFloatIsInf's body.
|
|
51
|
+
static const _UF f_zero = 0.0f;
|
|
52
|
+
#endif
|
|
53
|
+
|
|
54
|
+
// compiler-generic print formatting masks
|
|
55
|
+
const _U_UINT UnitySizeMask[] =
|
|
56
|
+
{
|
|
57
|
+
255u, // 0xFF
|
|
58
|
+
65535u, // 0xFFFF
|
|
59
|
+
65535u,
|
|
60
|
+
4294967295u, // 0xFFFFFFFF
|
|
61
|
+
4294967295u,
|
|
62
|
+
4294967295u,
|
|
63
|
+
4294967295u
|
|
64
|
+
#ifdef UNITY_SUPPORT_64
|
|
65
|
+
,0xFFFFFFFFFFFFFFFF
|
|
66
|
+
#endif
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
void UnityPrintFail(void);
|
|
70
|
+
void UnityPrintOk(void);
|
|
71
|
+
|
|
72
|
+
//-----------------------------------------------
|
|
73
|
+
// Pretty Printers & Test Result Output Handlers
|
|
74
|
+
//-----------------------------------------------
|
|
75
|
+
|
|
76
|
+
void UnityPrint(const char* string)
|
|
77
|
+
{
|
|
78
|
+
const char* pch = string;
|
|
79
|
+
|
|
80
|
+
if (pch != NULL)
|
|
81
|
+
{
|
|
82
|
+
while (*pch)
|
|
83
|
+
{
|
|
84
|
+
// printable characters plus CR & LF are printed
|
|
85
|
+
if ((*pch <= 126) && (*pch >= 32))
|
|
86
|
+
{
|
|
87
|
+
UNITY_OUTPUT_CHAR(*pch);
|
|
88
|
+
}
|
|
89
|
+
//write escaped carriage returns
|
|
90
|
+
else if (*pch == 13)
|
|
91
|
+
{
|
|
92
|
+
UNITY_OUTPUT_CHAR('\\');
|
|
93
|
+
UNITY_OUTPUT_CHAR('r');
|
|
94
|
+
}
|
|
95
|
+
//write escaped line feeds
|
|
96
|
+
else if (*pch == 10)
|
|
97
|
+
{
|
|
98
|
+
UNITY_OUTPUT_CHAR('\\');
|
|
99
|
+
UNITY_OUTPUT_CHAR('n');
|
|
100
|
+
}
|
|
101
|
+
// unprintable characters are shown as codes
|
|
102
|
+
else
|
|
103
|
+
{
|
|
104
|
+
UNITY_OUTPUT_CHAR('\\');
|
|
105
|
+
UnityPrintNumberHex((_U_UINT)*pch, 2);
|
|
106
|
+
}
|
|
107
|
+
pch++;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
void UnityPrintLen(const char* string, const _UU32 length);
|
|
113
|
+
void UnityPrintLen(const char* string, const _UU32 length)
|
|
114
|
+
{
|
|
115
|
+
const char* pch = string;
|
|
116
|
+
|
|
117
|
+
if (pch != NULL)
|
|
118
|
+
{
|
|
119
|
+
while (*pch && (_UU32)(pch - string) < length)
|
|
120
|
+
{
|
|
121
|
+
// printable characters plus CR & LF are printed
|
|
122
|
+
if ((*pch <= 126) && (*pch >= 32))
|
|
123
|
+
{
|
|
124
|
+
UNITY_OUTPUT_CHAR(*pch);
|
|
125
|
+
}
|
|
126
|
+
//write escaped carriage returns
|
|
127
|
+
else if (*pch == 13)
|
|
128
|
+
{
|
|
129
|
+
UNITY_OUTPUT_CHAR('\\');
|
|
130
|
+
UNITY_OUTPUT_CHAR('r');
|
|
131
|
+
}
|
|
132
|
+
//write escaped line feeds
|
|
133
|
+
else if (*pch == 10)
|
|
134
|
+
{
|
|
135
|
+
UNITY_OUTPUT_CHAR('\\');
|
|
136
|
+
UNITY_OUTPUT_CHAR('n');
|
|
137
|
+
}
|
|
138
|
+
// unprintable characters are shown as codes
|
|
139
|
+
else
|
|
140
|
+
{
|
|
141
|
+
UNITY_OUTPUT_CHAR('\\');
|
|
142
|
+
UnityPrintNumberHex((_U_UINT)*pch, 2);
|
|
143
|
+
}
|
|
144
|
+
pch++;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
//-----------------------------------------------
|
|
150
|
+
void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T style)
|
|
151
|
+
{
|
|
152
|
+
if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
|
|
153
|
+
{
|
|
154
|
+
UnityPrintNumber(number);
|
|
155
|
+
}
|
|
156
|
+
else if ((style & UNITY_DISPLAY_RANGE_UINT) == UNITY_DISPLAY_RANGE_UINT)
|
|
157
|
+
{
|
|
158
|
+
UnityPrintNumberUnsigned( (_U_UINT)number & UnitySizeMask[((_U_UINT)style & (_U_UINT)0x0F) - 1] );
|
|
159
|
+
}
|
|
160
|
+
else
|
|
161
|
+
{
|
|
162
|
+
UnityPrintNumberHex((_U_UINT)number, (char)((style & 0x000F) << 1));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
//-----------------------------------------------
|
|
167
|
+
/// basically do an itoa using as little ram as possible
|
|
168
|
+
void UnityPrintNumber(const _U_SINT number_to_print)
|
|
169
|
+
{
|
|
170
|
+
_U_UINT divisor = 1;
|
|
171
|
+
_U_UINT next_divisor;
|
|
172
|
+
_U_UINT number;
|
|
173
|
+
|
|
174
|
+
if (number_to_print < 0)
|
|
175
|
+
{
|
|
176
|
+
//A negative number, including MIN negative
|
|
177
|
+
UNITY_OUTPUT_CHAR('-');
|
|
178
|
+
number = (_U_UINT)(-number_to_print);
|
|
179
|
+
}
|
|
180
|
+
else
|
|
181
|
+
{
|
|
182
|
+
//Non-negative number
|
|
183
|
+
number = (_U_UINT)number_to_print;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// figure out initial divisor
|
|
187
|
+
while (number / divisor > 9)
|
|
188
|
+
{
|
|
189
|
+
next_divisor = divisor * 10;
|
|
190
|
+
if (next_divisor > divisor)
|
|
191
|
+
divisor = next_divisor;
|
|
192
|
+
else
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// now mod and print, then divide divisor
|
|
197
|
+
do
|
|
198
|
+
{
|
|
199
|
+
UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10)));
|
|
200
|
+
divisor /= 10;
|
|
201
|
+
}
|
|
202
|
+
while (divisor > 0);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
//-----------------------------------------------
|
|
206
|
+
/// basically do an itoa using as little ram as possible
|
|
207
|
+
void UnityPrintNumberUnsigned(const _U_UINT number)
|
|
208
|
+
{
|
|
209
|
+
_U_UINT divisor = 1;
|
|
210
|
+
_U_UINT next_divisor;
|
|
211
|
+
|
|
212
|
+
// figure out initial divisor
|
|
213
|
+
while (number / divisor > 9)
|
|
214
|
+
{
|
|
215
|
+
next_divisor = divisor * 10;
|
|
216
|
+
if (next_divisor > divisor)
|
|
217
|
+
divisor = next_divisor;
|
|
218
|
+
else
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// now mod and print, then divide divisor
|
|
223
|
+
do
|
|
224
|
+
{
|
|
225
|
+
UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10)));
|
|
226
|
+
divisor /= 10;
|
|
227
|
+
}
|
|
228
|
+
while (divisor > 0);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
//-----------------------------------------------
|
|
232
|
+
void UnityPrintNumberHex(const _U_UINT number, const char nibbles_to_print)
|
|
233
|
+
{
|
|
234
|
+
_U_UINT nibble;
|
|
235
|
+
char nibbles = nibbles_to_print;
|
|
236
|
+
UNITY_OUTPUT_CHAR('0');
|
|
237
|
+
UNITY_OUTPUT_CHAR('x');
|
|
238
|
+
|
|
239
|
+
while (nibbles > 0)
|
|
240
|
+
{
|
|
241
|
+
nibble = (number >> (--nibbles << 2)) & 0x0000000F;
|
|
242
|
+
if (nibble <= 9)
|
|
243
|
+
{
|
|
244
|
+
UNITY_OUTPUT_CHAR((char)('0' + nibble));
|
|
245
|
+
}
|
|
246
|
+
else
|
|
247
|
+
{
|
|
248
|
+
UNITY_OUTPUT_CHAR((char)('A' - 10 + nibble));
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
//-----------------------------------------------
|
|
254
|
+
void UnityPrintMask(const _U_UINT mask, const _U_UINT number)
|
|
255
|
+
{
|
|
256
|
+
_U_UINT current_bit = (_U_UINT)1 << (UNITY_INT_WIDTH - 1);
|
|
257
|
+
_US32 i;
|
|
258
|
+
|
|
259
|
+
for (i = 0; i < UNITY_INT_WIDTH; i++)
|
|
260
|
+
{
|
|
261
|
+
if (current_bit & mask)
|
|
262
|
+
{
|
|
263
|
+
if (current_bit & number)
|
|
264
|
+
{
|
|
265
|
+
UNITY_OUTPUT_CHAR('1');
|
|
266
|
+
}
|
|
267
|
+
else
|
|
268
|
+
{
|
|
269
|
+
UNITY_OUTPUT_CHAR('0');
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
else
|
|
273
|
+
{
|
|
274
|
+
UNITY_OUTPUT_CHAR('X');
|
|
275
|
+
}
|
|
276
|
+
current_bit = current_bit >> 1;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
//-----------------------------------------------
|
|
281
|
+
#ifdef UNITY_FLOAT_VERBOSE
|
|
282
|
+
#include <stdio.h>
|
|
283
|
+
void UnityPrintFloat(_UF number)
|
|
284
|
+
{
|
|
285
|
+
char TempBuffer[32];
|
|
286
|
+
sprintf(TempBuffer, "%.6f", number);
|
|
287
|
+
UnityPrint(TempBuffer);
|
|
288
|
+
}
|
|
289
|
+
#endif
|
|
290
|
+
|
|
291
|
+
//-----------------------------------------------
|
|
292
|
+
|
|
293
|
+
void UnityPrintFail(void);
|
|
294
|
+
void UnityPrintFail(void)
|
|
295
|
+
{
|
|
296
|
+
UnityPrint(UnityStrFail);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
void UnityPrintOk(void);
|
|
300
|
+
void UnityPrintOk(void)
|
|
301
|
+
{
|
|
302
|
+
UnityPrint(UnityStrOk);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
//-----------------------------------------------
|
|
306
|
+
static void UnityTestResultsBegin(const char* file, const UNITY_LINE_TYPE line);
|
|
307
|
+
static void UnityTestResultsBegin(const char* file, const UNITY_LINE_TYPE line)
|
|
308
|
+
{
|
|
309
|
+
#ifndef UNITY_FIXTURES
|
|
310
|
+
UnityPrint(file);
|
|
311
|
+
UNITY_OUTPUT_CHAR(':');
|
|
312
|
+
UnityPrintNumber((_U_SINT)line);
|
|
313
|
+
UNITY_OUTPUT_CHAR(':');
|
|
314
|
+
UnityPrint(Unity.CurrentTestName);
|
|
315
|
+
UNITY_OUTPUT_CHAR(':');
|
|
316
|
+
#else
|
|
317
|
+
UNITY_UNUSED(file);
|
|
318
|
+
UNITY_UNUSED(line);
|
|
319
|
+
#endif
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
//-----------------------------------------------
|
|
323
|
+
static void UnityTestResultsFailBegin(const UNITY_LINE_TYPE line);
|
|
324
|
+
static void UnityTestResultsFailBegin(const UNITY_LINE_TYPE line)
|
|
325
|
+
{
|
|
326
|
+
#ifndef UNITY_FIXTURES
|
|
327
|
+
UnityTestResultsBegin(Unity.TestFile, line);
|
|
328
|
+
#else
|
|
329
|
+
UNITY_UNUSED(line);
|
|
330
|
+
#endif
|
|
331
|
+
UnityPrint(UnityStrFail);
|
|
332
|
+
UNITY_OUTPUT_CHAR(':');
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
//-----------------------------------------------
|
|
336
|
+
void UnityConcludeTest(void)
|
|
337
|
+
{
|
|
338
|
+
if (Unity.CurrentTestIgnored)
|
|
339
|
+
{
|
|
340
|
+
Unity.TestIgnores++;
|
|
341
|
+
}
|
|
342
|
+
else if (!Unity.CurrentTestFailed)
|
|
343
|
+
{
|
|
344
|
+
UnityTestResultsBegin(Unity.TestFile, Unity.CurrentTestLineNumber);
|
|
345
|
+
UnityPrint(UnityStrPass);
|
|
346
|
+
}
|
|
347
|
+
else
|
|
348
|
+
{
|
|
349
|
+
Unity.TestFailures++;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
Unity.CurrentTestFailed = 0;
|
|
353
|
+
Unity.CurrentTestIgnored = 0;
|
|
354
|
+
UNITY_PRINT_EOL();
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
//-----------------------------------------------
|
|
358
|
+
static void UnityAddMsgIfSpecified(const char* msg);
|
|
359
|
+
static void UnityAddMsgIfSpecified(const char* msg)
|
|
360
|
+
{
|
|
361
|
+
if (msg)
|
|
362
|
+
{
|
|
363
|
+
UnityPrint(UnityStrSpacer);
|
|
364
|
+
#ifndef UNITY_EXCLUDE_DETAILS
|
|
365
|
+
if (Unity.CurrentDetail1)
|
|
366
|
+
{
|
|
367
|
+
UnityPrint(UnityStrDetail1Name);
|
|
368
|
+
UnityPrint(Unity.CurrentDetail1);
|
|
369
|
+
if (Unity.CurrentDetail2)
|
|
370
|
+
{
|
|
371
|
+
UnityPrint(UnityStrDetail2Name);
|
|
372
|
+
UnityPrint(Unity.CurrentDetail2);
|
|
373
|
+
}
|
|
374
|
+
UnityPrint(UnityStrSpacer);
|
|
375
|
+
}
|
|
376
|
+
#endif
|
|
377
|
+
UnityPrint(msg);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
//-----------------------------------------------
|
|
382
|
+
static void UnityPrintExpectedAndActualStrings(const char* expected, const char* actual);
|
|
383
|
+
static void UnityPrintExpectedAndActualStrings(const char* expected, const char* actual)
|
|
384
|
+
{
|
|
385
|
+
UnityPrint(UnityStrExpected);
|
|
386
|
+
if (expected != NULL)
|
|
387
|
+
{
|
|
388
|
+
UNITY_OUTPUT_CHAR('\'');
|
|
389
|
+
UnityPrint(expected);
|
|
390
|
+
UNITY_OUTPUT_CHAR('\'');
|
|
391
|
+
}
|
|
392
|
+
else
|
|
393
|
+
{
|
|
394
|
+
UnityPrint(UnityStrNull);
|
|
395
|
+
}
|
|
396
|
+
UnityPrint(UnityStrWas);
|
|
397
|
+
if (actual != NULL)
|
|
398
|
+
{
|
|
399
|
+
UNITY_OUTPUT_CHAR('\'');
|
|
400
|
+
UnityPrint(actual);
|
|
401
|
+
UNITY_OUTPUT_CHAR('\'');
|
|
402
|
+
}
|
|
403
|
+
else
|
|
404
|
+
{
|
|
405
|
+
UnityPrint(UnityStrNull);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
//-----------------------------------------------
|
|
410
|
+
static void UnityPrintExpectedAndActualStringsLen(const char* expected, const char* actual, const _UU32 length)
|
|
411
|
+
{
|
|
412
|
+
UnityPrint(UnityStrExpected);
|
|
413
|
+
if (expected != NULL)
|
|
414
|
+
{
|
|
415
|
+
UNITY_OUTPUT_CHAR('\'');
|
|
416
|
+
UnityPrintLen(expected, length);
|
|
417
|
+
UNITY_OUTPUT_CHAR('\'');
|
|
418
|
+
}
|
|
419
|
+
else
|
|
420
|
+
{
|
|
421
|
+
UnityPrint(UnityStrNull);
|
|
422
|
+
}
|
|
423
|
+
UnityPrint(UnityStrWas);
|
|
424
|
+
if (actual != NULL)
|
|
425
|
+
{
|
|
426
|
+
UNITY_OUTPUT_CHAR('\'');
|
|
427
|
+
UnityPrintLen(actual, length);
|
|
428
|
+
UNITY_OUTPUT_CHAR('\'');
|
|
429
|
+
}
|
|
430
|
+
else
|
|
431
|
+
{
|
|
432
|
+
UnityPrint(UnityStrNull);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
//-----------------------------------------------
|
|
439
|
+
// Assertion & Control Helpers
|
|
440
|
+
//-----------------------------------------------
|
|
441
|
+
|
|
442
|
+
static int UnityCheckArraysForNull(UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_LINE_TYPE lineNumber, const char* msg)
|
|
443
|
+
{
|
|
444
|
+
//return true if they are both NULL
|
|
445
|
+
if ((expected == NULL) && (actual == NULL))
|
|
446
|
+
return 1;
|
|
447
|
+
|
|
448
|
+
//throw error if just expected is NULL
|
|
449
|
+
if (expected == NULL)
|
|
450
|
+
{
|
|
451
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
452
|
+
UnityPrint(UnityStrNullPointerForExpected);
|
|
453
|
+
UnityAddMsgIfSpecified(msg);
|
|
454
|
+
UNITY_FAIL_AND_BAIL;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
//throw error if just actual is NULL
|
|
458
|
+
if (actual == NULL)
|
|
459
|
+
{
|
|
460
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
461
|
+
UnityPrint(UnityStrNullPointerForActual);
|
|
462
|
+
UnityAddMsgIfSpecified(msg);
|
|
463
|
+
UNITY_FAIL_AND_BAIL;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
//return false if neither is NULL
|
|
467
|
+
return 0;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
//-----------------------------------------------
|
|
471
|
+
// Assertion Functions
|
|
472
|
+
//-----------------------------------------------
|
|
473
|
+
|
|
474
|
+
void UnityAssertBits(const _U_SINT mask,
|
|
475
|
+
const _U_SINT expected,
|
|
476
|
+
const _U_SINT actual,
|
|
477
|
+
const char* msg,
|
|
478
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
479
|
+
{
|
|
480
|
+
UNITY_SKIP_EXECUTION;
|
|
481
|
+
|
|
482
|
+
if ((mask & expected) != (mask & actual))
|
|
483
|
+
{
|
|
484
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
485
|
+
UnityPrint(UnityStrExpected);
|
|
486
|
+
UnityPrintMask((_U_UINT)mask, (_U_UINT)expected);
|
|
487
|
+
UnityPrint(UnityStrWas);
|
|
488
|
+
UnityPrintMask((_U_UINT)mask, (_U_UINT)actual);
|
|
489
|
+
UnityAddMsgIfSpecified(msg);
|
|
490
|
+
UNITY_FAIL_AND_BAIL;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
//-----------------------------------------------
|
|
495
|
+
void UnityAssertEqualNumber(const _U_SINT expected,
|
|
496
|
+
const _U_SINT actual,
|
|
497
|
+
const char* msg,
|
|
498
|
+
const UNITY_LINE_TYPE lineNumber,
|
|
499
|
+
const UNITY_DISPLAY_STYLE_T style)
|
|
500
|
+
{
|
|
501
|
+
UNITY_SKIP_EXECUTION;
|
|
502
|
+
|
|
503
|
+
if (expected != actual)
|
|
504
|
+
{
|
|
505
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
506
|
+
UnityPrint(UnityStrExpected);
|
|
507
|
+
UnityPrintNumberByStyle(expected, style);
|
|
508
|
+
UnityPrint(UnityStrWas);
|
|
509
|
+
UnityPrintNumberByStyle(actual, style);
|
|
510
|
+
UnityAddMsgIfSpecified(msg);
|
|
511
|
+
UNITY_FAIL_AND_BAIL;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
//-----------------------------------------------
|
|
516
|
+
void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
|
|
517
|
+
UNITY_INTERNAL_PTR actual,
|
|
518
|
+
const _UU32 num_elements,
|
|
519
|
+
const char* msg,
|
|
520
|
+
const UNITY_LINE_TYPE lineNumber,
|
|
521
|
+
const UNITY_DISPLAY_STYLE_T style)
|
|
522
|
+
{
|
|
523
|
+
_UU32 elements = num_elements;
|
|
524
|
+
UNITY_INTERNAL_PTR ptr_exp = (UNITY_INTERNAL_PTR)expected;
|
|
525
|
+
UNITY_INTERNAL_PTR ptr_act = (UNITY_INTERNAL_PTR)actual;
|
|
526
|
+
|
|
527
|
+
UNITY_SKIP_EXECUTION;
|
|
528
|
+
|
|
529
|
+
if (elements == 0)
|
|
530
|
+
{
|
|
531
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
532
|
+
UnityPrint(UnityStrPointless);
|
|
533
|
+
UnityAddMsgIfSpecified(msg);
|
|
534
|
+
UNITY_FAIL_AND_BAIL;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
if (UnityCheckArraysForNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg) == 1)
|
|
538
|
+
return;
|
|
539
|
+
|
|
540
|
+
// If style is UNITY_DISPLAY_STYLE_INT, we'll fall into the default case rather than the INT16 or INT32 (etc) case
|
|
541
|
+
// as UNITY_DISPLAY_STYLE_INT includes a flag for UNITY_DISPLAY_RANGE_AUTO, which the width-specific
|
|
542
|
+
// variants do not. Therefore remove this flag.
|
|
543
|
+
switch(style & (UNITY_DISPLAY_STYLE_T)(~UNITY_DISPLAY_RANGE_AUTO))
|
|
544
|
+
{
|
|
545
|
+
case UNITY_DISPLAY_STYLE_HEX8:
|
|
546
|
+
case UNITY_DISPLAY_STYLE_INT8:
|
|
547
|
+
case UNITY_DISPLAY_STYLE_UINT8:
|
|
548
|
+
while (elements--)
|
|
549
|
+
{
|
|
550
|
+
if (*(UNITY_PTR_ATTRIBUTE const _US8*)ptr_exp != *(UNITY_PTR_ATTRIBUTE const _US8*)ptr_act)
|
|
551
|
+
{
|
|
552
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
553
|
+
UnityPrint(UnityStrElement);
|
|
554
|
+
UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
|
|
555
|
+
UnityPrint(UnityStrExpected);
|
|
556
|
+
UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE const _US8*)ptr_exp, style);
|
|
557
|
+
UnityPrint(UnityStrWas);
|
|
558
|
+
UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE const _US8*)ptr_act, style);
|
|
559
|
+
UnityAddMsgIfSpecified(msg);
|
|
560
|
+
UNITY_FAIL_AND_BAIL;
|
|
561
|
+
}
|
|
562
|
+
ptr_exp = (UNITY_INTERNAL_PTR)((_UP)ptr_exp + 1);
|
|
563
|
+
ptr_act = (UNITY_INTERNAL_PTR)((_UP)ptr_act + 1);
|
|
564
|
+
}
|
|
565
|
+
break;
|
|
566
|
+
case UNITY_DISPLAY_STYLE_HEX16:
|
|
567
|
+
case UNITY_DISPLAY_STYLE_INT16:
|
|
568
|
+
case UNITY_DISPLAY_STYLE_UINT16:
|
|
569
|
+
while (elements--)
|
|
570
|
+
{
|
|
571
|
+
if (*(UNITY_PTR_ATTRIBUTE const _US16*)ptr_exp != *(UNITY_PTR_ATTRIBUTE const _US16*)ptr_act)
|
|
572
|
+
{
|
|
573
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
574
|
+
UnityPrint(UnityStrElement);
|
|
575
|
+
UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
|
|
576
|
+
UnityPrint(UnityStrExpected);
|
|
577
|
+
UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE const _US16*)ptr_exp, style);
|
|
578
|
+
UnityPrint(UnityStrWas);
|
|
579
|
+
UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE const _US16*)ptr_act, style);
|
|
580
|
+
UnityAddMsgIfSpecified(msg);
|
|
581
|
+
UNITY_FAIL_AND_BAIL;
|
|
582
|
+
}
|
|
583
|
+
ptr_exp = (UNITY_INTERNAL_PTR)((_UP)ptr_exp + 2);
|
|
584
|
+
ptr_act = (UNITY_INTERNAL_PTR)((_UP)ptr_act + 2);
|
|
585
|
+
}
|
|
586
|
+
break;
|
|
587
|
+
#ifdef UNITY_SUPPORT_64
|
|
588
|
+
case UNITY_DISPLAY_STYLE_HEX64:
|
|
589
|
+
case UNITY_DISPLAY_STYLE_INT64:
|
|
590
|
+
case UNITY_DISPLAY_STYLE_UINT64:
|
|
591
|
+
while (elements--)
|
|
592
|
+
{
|
|
593
|
+
if (*(UNITY_PTR_ATTRIBUTE const _US64*)ptr_exp != *(UNITY_PTR_ATTRIBUTE const _US64*)ptr_act)
|
|
594
|
+
{
|
|
595
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
596
|
+
UnityPrint(UnityStrElement);
|
|
597
|
+
UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
|
|
598
|
+
UnityPrint(UnityStrExpected);
|
|
599
|
+
UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE const _US64*)ptr_exp, style);
|
|
600
|
+
UnityPrint(UnityStrWas);
|
|
601
|
+
UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE const _US64*)ptr_act, style);
|
|
602
|
+
UnityAddMsgIfSpecified(msg);
|
|
603
|
+
UNITY_FAIL_AND_BAIL;
|
|
604
|
+
}
|
|
605
|
+
ptr_exp = (UNITY_INTERNAL_PTR)((_UP)ptr_exp + 8);
|
|
606
|
+
ptr_act = (UNITY_INTERNAL_PTR)((_UP)ptr_act + 8);
|
|
607
|
+
}
|
|
608
|
+
break;
|
|
609
|
+
#endif
|
|
610
|
+
default:
|
|
611
|
+
while (elements--)
|
|
612
|
+
{
|
|
613
|
+
if (*(UNITY_PTR_ATTRIBUTE const _US32*)ptr_exp != *(UNITY_PTR_ATTRIBUTE const _US32*)ptr_act)
|
|
614
|
+
{
|
|
615
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
616
|
+
UnityPrint(UnityStrElement);
|
|
617
|
+
UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
|
|
618
|
+
UnityPrint(UnityStrExpected);
|
|
619
|
+
UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE const _US32*)ptr_exp, style);
|
|
620
|
+
UnityPrint(UnityStrWas);
|
|
621
|
+
UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE const _US32*)ptr_act, style);
|
|
622
|
+
UnityAddMsgIfSpecified(msg);
|
|
623
|
+
UNITY_FAIL_AND_BAIL;
|
|
624
|
+
}
|
|
625
|
+
ptr_exp = (UNITY_INTERNAL_PTR)((_UP)ptr_exp + 4);
|
|
626
|
+
ptr_act = (UNITY_INTERNAL_PTR)((_UP)ptr_act + 4);
|
|
627
|
+
}
|
|
628
|
+
break;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
//-----------------------------------------------
|
|
633
|
+
#ifndef UNITY_EXCLUDE_FLOAT
|
|
634
|
+
void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const _UF* expected,
|
|
635
|
+
UNITY_PTR_ATTRIBUTE const _UF* actual,
|
|
636
|
+
const _UU32 num_elements,
|
|
637
|
+
const char* msg,
|
|
638
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
639
|
+
{
|
|
640
|
+
_UU32 elements = num_elements;
|
|
641
|
+
UNITY_PTR_ATTRIBUTE const _UF* ptr_expected = expected;
|
|
642
|
+
UNITY_PTR_ATTRIBUTE const _UF* ptr_actual = actual;
|
|
643
|
+
_UF diff, tol;
|
|
644
|
+
|
|
645
|
+
UNITY_SKIP_EXECUTION;
|
|
646
|
+
|
|
647
|
+
if (elements == 0)
|
|
648
|
+
{
|
|
649
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
650
|
+
UnityPrint(UnityStrPointless);
|
|
651
|
+
UnityAddMsgIfSpecified(msg);
|
|
652
|
+
UNITY_FAIL_AND_BAIL;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
if (UnityCheckArraysForNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg) == 1)
|
|
656
|
+
return;
|
|
657
|
+
|
|
658
|
+
while (elements--)
|
|
659
|
+
{
|
|
660
|
+
diff = *ptr_expected - *ptr_actual;
|
|
661
|
+
if (diff < 0.0f)
|
|
662
|
+
diff = 0.0f - diff;
|
|
663
|
+
tol = UNITY_FLOAT_PRECISION * *ptr_expected;
|
|
664
|
+
if (tol < 0.0f)
|
|
665
|
+
tol = 0.0f - tol;
|
|
666
|
+
|
|
667
|
+
//This first part of this condition will catch any NaN or Infinite values
|
|
668
|
+
if ((diff * 0.0f != 0.0f) || (diff > tol))
|
|
669
|
+
{
|
|
670
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
671
|
+
UnityPrint(UnityStrElement);
|
|
672
|
+
UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
|
|
673
|
+
#ifdef UNITY_FLOAT_VERBOSE
|
|
674
|
+
UnityPrint(UnityStrExpected);
|
|
675
|
+
UnityPrintFloat(*ptr_expected);
|
|
676
|
+
UnityPrint(UnityStrWas);
|
|
677
|
+
UnityPrintFloat(*ptr_actual);
|
|
678
|
+
#else
|
|
679
|
+
UnityPrint(UnityStrDelta);
|
|
680
|
+
#endif
|
|
681
|
+
UnityAddMsgIfSpecified(msg);
|
|
682
|
+
UNITY_FAIL_AND_BAIL;
|
|
683
|
+
}
|
|
684
|
+
ptr_expected++;
|
|
685
|
+
ptr_actual++;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
//-----------------------------------------------
|
|
690
|
+
void UnityAssertFloatsWithin(const _UF delta,
|
|
691
|
+
const _UF expected,
|
|
692
|
+
const _UF actual,
|
|
693
|
+
const char* msg,
|
|
694
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
695
|
+
{
|
|
696
|
+
_UF diff = actual - expected;
|
|
697
|
+
_UF pos_delta = delta;
|
|
698
|
+
|
|
699
|
+
UNITY_SKIP_EXECUTION;
|
|
700
|
+
|
|
701
|
+
if (diff < 0.0f)
|
|
702
|
+
{
|
|
703
|
+
diff = 0.0f - diff;
|
|
704
|
+
}
|
|
705
|
+
if (pos_delta < 0.0f)
|
|
706
|
+
{
|
|
707
|
+
pos_delta = 0.0f - pos_delta;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
//This first part of this condition will catch any NaN or Infinite values
|
|
711
|
+
if ((diff * 0.0f != 0.0f) || (pos_delta < diff))
|
|
712
|
+
{
|
|
713
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
714
|
+
#ifdef UNITY_FLOAT_VERBOSE
|
|
715
|
+
UnityPrint(UnityStrExpected);
|
|
716
|
+
UnityPrintFloat(expected);
|
|
717
|
+
UnityPrint(UnityStrWas);
|
|
718
|
+
UnityPrintFloat(actual);
|
|
719
|
+
#else
|
|
720
|
+
UnityPrint(UnityStrDelta);
|
|
721
|
+
#endif
|
|
722
|
+
UnityAddMsgIfSpecified(msg);
|
|
723
|
+
UNITY_FAIL_AND_BAIL;
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
//-----------------------------------------------
|
|
728
|
+
void UnityAssertFloatSpecial(const _UF actual,
|
|
729
|
+
const char* msg,
|
|
730
|
+
const UNITY_LINE_TYPE lineNumber,
|
|
731
|
+
const UNITY_FLOAT_TRAIT_T style)
|
|
732
|
+
{
|
|
733
|
+
const char* trait_names[] = { UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet };
|
|
734
|
+
_U_SINT should_be_trait = ((_U_SINT)style & 1);
|
|
735
|
+
_U_SINT is_trait = !should_be_trait;
|
|
736
|
+
_U_SINT trait_index = style >> 1;
|
|
737
|
+
|
|
738
|
+
UNITY_SKIP_EXECUTION;
|
|
739
|
+
|
|
740
|
+
switch(style)
|
|
741
|
+
{
|
|
742
|
+
//To determine Inf / Neg Inf, we compare to an Inf / Neg Inf value we create on the fly
|
|
743
|
+
//We are using a variable to hold the zero value because some compilers complain about dividing by zero otherwise
|
|
744
|
+
case UNITY_FLOAT_IS_INF:
|
|
745
|
+
case UNITY_FLOAT_IS_NOT_INF:
|
|
746
|
+
is_trait = isinf(actual) & ispos(actual);
|
|
747
|
+
break;
|
|
748
|
+
case UNITY_FLOAT_IS_NEG_INF:
|
|
749
|
+
case UNITY_FLOAT_IS_NOT_NEG_INF:
|
|
750
|
+
is_trait = isinf(actual) & isneg(actual);
|
|
751
|
+
break;
|
|
752
|
+
|
|
753
|
+
//NaN is the only floating point value that does NOT equal itself. Therefore if Actual == Actual, then it is NOT NaN.
|
|
754
|
+
case UNITY_FLOAT_IS_NAN:
|
|
755
|
+
case UNITY_FLOAT_IS_NOT_NAN:
|
|
756
|
+
is_trait = isnan(actual);
|
|
757
|
+
break;
|
|
758
|
+
|
|
759
|
+
//A determinate number is non infinite and not NaN. (therefore the opposite of the two above)
|
|
760
|
+
case UNITY_FLOAT_IS_DET:
|
|
761
|
+
case UNITY_FLOAT_IS_NOT_DET:
|
|
762
|
+
if (isinf(actual) | isnan(actual))
|
|
763
|
+
is_trait = 0;
|
|
764
|
+
else
|
|
765
|
+
is_trait = 1;
|
|
766
|
+
break;
|
|
767
|
+
|
|
768
|
+
default:
|
|
769
|
+
break;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
if (is_trait != should_be_trait)
|
|
773
|
+
{
|
|
774
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
775
|
+
UnityPrint(UnityStrExpected);
|
|
776
|
+
if (!should_be_trait)
|
|
777
|
+
UnityPrint(UnityStrNot);
|
|
778
|
+
UnityPrint(trait_names[trait_index]);
|
|
779
|
+
UnityPrint(UnityStrWas);
|
|
780
|
+
#ifdef UNITY_FLOAT_VERBOSE
|
|
781
|
+
UnityPrintFloat(actual);
|
|
782
|
+
#else
|
|
783
|
+
if (should_be_trait)
|
|
784
|
+
UnityPrint(UnityStrNot);
|
|
785
|
+
UnityPrint(trait_names[trait_index]);
|
|
786
|
+
#endif
|
|
787
|
+
UnityAddMsgIfSpecified(msg);
|
|
788
|
+
UNITY_FAIL_AND_BAIL;
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
#endif //not UNITY_EXCLUDE_FLOAT
|
|
793
|
+
|
|
794
|
+
//-----------------------------------------------
|
|
795
|
+
#ifndef UNITY_EXCLUDE_DOUBLE
|
|
796
|
+
void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const _UD* expected,
|
|
797
|
+
UNITY_PTR_ATTRIBUTE const _UD* actual,
|
|
798
|
+
const _UU32 num_elements,
|
|
799
|
+
const char* msg,
|
|
800
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
801
|
+
{
|
|
802
|
+
_UU32 elements = num_elements;
|
|
803
|
+
UNITY_PTR_ATTRIBUTE const _UD* ptr_expected = expected;
|
|
804
|
+
UNITY_PTR_ATTRIBUTE const _UD* ptr_actual = actual;
|
|
805
|
+
_UD diff, tol;
|
|
806
|
+
|
|
807
|
+
UNITY_SKIP_EXECUTION;
|
|
808
|
+
|
|
809
|
+
if (elements == 0)
|
|
810
|
+
{
|
|
811
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
812
|
+
UnityPrint(UnityStrPointless);
|
|
813
|
+
UnityAddMsgIfSpecified(msg);
|
|
814
|
+
UNITY_FAIL_AND_BAIL;
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
if (UnityCheckArraysForNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg) == 1)
|
|
818
|
+
return;
|
|
819
|
+
|
|
820
|
+
while (elements--)
|
|
821
|
+
{
|
|
822
|
+
diff = *ptr_expected - *ptr_actual;
|
|
823
|
+
if (diff < 0.0)
|
|
824
|
+
diff = 0.0 - diff;
|
|
825
|
+
tol = UNITY_DOUBLE_PRECISION * *ptr_expected;
|
|
826
|
+
if (tol < 0.0)
|
|
827
|
+
tol = 0.0 - tol;
|
|
828
|
+
|
|
829
|
+
//This first part of this condition will catch any NaN or Infinite values
|
|
830
|
+
if ((diff * 0.0 != 0.0) || (diff > tol))
|
|
831
|
+
{
|
|
832
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
833
|
+
UnityPrint(UnityStrElement);
|
|
834
|
+
UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
|
|
835
|
+
#ifdef UNITY_DOUBLE_VERBOSE
|
|
836
|
+
UnityPrint(UnityStrExpected);
|
|
837
|
+
UnityPrintFloat((float)(*ptr_expected));
|
|
838
|
+
UnityPrint(UnityStrWas);
|
|
839
|
+
UnityPrintFloat((float)(*ptr_actual));
|
|
840
|
+
#else
|
|
841
|
+
UnityPrint(UnityStrDelta);
|
|
842
|
+
#endif
|
|
843
|
+
UnityAddMsgIfSpecified(msg);
|
|
844
|
+
UNITY_FAIL_AND_BAIL;
|
|
845
|
+
}
|
|
846
|
+
ptr_expected++;
|
|
847
|
+
ptr_actual++;
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
//-----------------------------------------------
|
|
852
|
+
void UnityAssertDoublesWithin(const _UD delta,
|
|
853
|
+
const _UD expected,
|
|
854
|
+
const _UD actual,
|
|
855
|
+
const char* msg,
|
|
856
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
857
|
+
{
|
|
858
|
+
_UD diff = actual - expected;
|
|
859
|
+
_UD pos_delta = delta;
|
|
860
|
+
|
|
861
|
+
UNITY_SKIP_EXECUTION;
|
|
862
|
+
|
|
863
|
+
if (diff < 0.0)
|
|
864
|
+
{
|
|
865
|
+
diff = 0.0 - diff;
|
|
866
|
+
}
|
|
867
|
+
if (pos_delta < 0.0)
|
|
868
|
+
{
|
|
869
|
+
pos_delta = 0.0 - pos_delta;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
//This first part of this condition will catch any NaN or Infinite values
|
|
873
|
+
if ((diff * 0.0 != 0.0) || (pos_delta < diff))
|
|
874
|
+
{
|
|
875
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
876
|
+
#ifdef UNITY_DOUBLE_VERBOSE
|
|
877
|
+
UnityPrint(UnityStrExpected);
|
|
878
|
+
UnityPrintFloat((float)expected);
|
|
879
|
+
UnityPrint(UnityStrWas);
|
|
880
|
+
UnityPrintFloat((float)actual);
|
|
881
|
+
#else
|
|
882
|
+
UnityPrint(UnityStrDelta);
|
|
883
|
+
#endif
|
|
884
|
+
UnityAddMsgIfSpecified(msg);
|
|
885
|
+
UNITY_FAIL_AND_BAIL;
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
//-----------------------------------------------
|
|
890
|
+
|
|
891
|
+
void UnityAssertDoubleSpecial(const _UD actual,
|
|
892
|
+
const char* msg,
|
|
893
|
+
const UNITY_LINE_TYPE lineNumber,
|
|
894
|
+
const UNITY_FLOAT_TRAIT_T style)
|
|
895
|
+
{
|
|
896
|
+
const char* trait_names[] = { UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet };
|
|
897
|
+
_U_SINT should_be_trait = ((_U_SINT)style & 1);
|
|
898
|
+
_U_SINT is_trait = !should_be_trait;
|
|
899
|
+
_U_SINT trait_index = style >> 1;
|
|
900
|
+
|
|
901
|
+
UNITY_SKIP_EXECUTION;
|
|
902
|
+
|
|
903
|
+
switch(style)
|
|
904
|
+
{
|
|
905
|
+
//To determine Inf / Neg Inf, we compare to an Inf / Neg Inf value we create on the fly
|
|
906
|
+
//We are using a variable to hold the zero value because some compilers complain about dividing by zero otherwise
|
|
907
|
+
case UNITY_FLOAT_IS_INF:
|
|
908
|
+
case UNITY_FLOAT_IS_NOT_INF:
|
|
909
|
+
is_trait = isinf(actual) & ispos(actual);
|
|
910
|
+
break;
|
|
911
|
+
case UNITY_FLOAT_IS_NEG_INF:
|
|
912
|
+
case UNITY_FLOAT_IS_NOT_NEG_INF:
|
|
913
|
+
is_trait = isinf(actual) & isneg(actual);
|
|
914
|
+
break;
|
|
915
|
+
|
|
916
|
+
//NaN is the only floating point value that does NOT equal itself. Therefore if Actual == Actual, then it is NOT NaN.
|
|
917
|
+
case UNITY_FLOAT_IS_NAN:
|
|
918
|
+
case UNITY_FLOAT_IS_NOT_NAN:
|
|
919
|
+
is_trait = isnan(actual);
|
|
920
|
+
break;
|
|
921
|
+
|
|
922
|
+
//A determinate number is non infinite and not NaN. (therefore the opposite of the two above)
|
|
923
|
+
case UNITY_FLOAT_IS_DET:
|
|
924
|
+
case UNITY_FLOAT_IS_NOT_DET:
|
|
925
|
+
if (isinf(actual) | isnan(actual))
|
|
926
|
+
is_trait = 0;
|
|
927
|
+
else
|
|
928
|
+
is_trait = 1;
|
|
929
|
+
break;
|
|
930
|
+
|
|
931
|
+
default:
|
|
932
|
+
break;
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
if (is_trait != should_be_trait)
|
|
936
|
+
{
|
|
937
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
938
|
+
UnityPrint(UnityStrExpected);
|
|
939
|
+
if (!should_be_trait)
|
|
940
|
+
UnityPrint(UnityStrNot);
|
|
941
|
+
UnityPrint(trait_names[trait_index]);
|
|
942
|
+
UnityPrint(UnityStrWas);
|
|
943
|
+
#ifdef UNITY_DOUBLE_VERBOSE
|
|
944
|
+
UnityPrintFloat(actual);
|
|
945
|
+
#else
|
|
946
|
+
if (should_be_trait)
|
|
947
|
+
UnityPrint(UnityStrNot);
|
|
948
|
+
UnityPrint(trait_names[trait_index]);
|
|
949
|
+
#endif
|
|
950
|
+
UnityAddMsgIfSpecified(msg);
|
|
951
|
+
UNITY_FAIL_AND_BAIL;
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
#endif // not UNITY_EXCLUDE_DOUBLE
|
|
957
|
+
|
|
958
|
+
//-----------------------------------------------
|
|
959
|
+
void UnityAssertNumbersWithin( const _U_UINT delta,
|
|
960
|
+
const _U_SINT expected,
|
|
961
|
+
const _U_SINT actual,
|
|
962
|
+
const char* msg,
|
|
963
|
+
const UNITY_LINE_TYPE lineNumber,
|
|
964
|
+
const UNITY_DISPLAY_STYLE_T style)
|
|
965
|
+
{
|
|
966
|
+
UNITY_SKIP_EXECUTION;
|
|
967
|
+
|
|
968
|
+
if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
|
|
969
|
+
{
|
|
970
|
+
if (actual > expected)
|
|
971
|
+
Unity.CurrentTestFailed = ((_U_UINT)(actual - expected) > delta);
|
|
972
|
+
else
|
|
973
|
+
Unity.CurrentTestFailed = ((_U_UINT)(expected - actual) > delta);
|
|
974
|
+
}
|
|
975
|
+
else
|
|
976
|
+
{
|
|
977
|
+
if ((_U_UINT)actual > (_U_UINT)expected)
|
|
978
|
+
Unity.CurrentTestFailed = ((_U_UINT)(actual - expected) > delta);
|
|
979
|
+
else
|
|
980
|
+
Unity.CurrentTestFailed = ((_U_UINT)(expected - actual) > delta);
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
if (Unity.CurrentTestFailed)
|
|
984
|
+
{
|
|
985
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
986
|
+
UnityPrint(UnityStrDelta);
|
|
987
|
+
UnityPrintNumberByStyle((_U_SINT)delta, style);
|
|
988
|
+
UnityPrint(UnityStrExpected);
|
|
989
|
+
UnityPrintNumberByStyle(expected, style);
|
|
990
|
+
UnityPrint(UnityStrWas);
|
|
991
|
+
UnityPrintNumberByStyle(actual, style);
|
|
992
|
+
UnityAddMsgIfSpecified(msg);
|
|
993
|
+
UNITY_FAIL_AND_BAIL;
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
//-----------------------------------------------
|
|
998
|
+
void UnityAssertEqualString(const char* expected,
|
|
999
|
+
const char* actual,
|
|
1000
|
+
const char* msg,
|
|
1001
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
1002
|
+
{
|
|
1003
|
+
_UU32 i;
|
|
1004
|
+
|
|
1005
|
+
UNITY_SKIP_EXECUTION;
|
|
1006
|
+
|
|
1007
|
+
// if both pointers not null compare the strings
|
|
1008
|
+
if (expected && actual)
|
|
1009
|
+
{
|
|
1010
|
+
for (i = 0; expected[i] || actual[i]; i++)
|
|
1011
|
+
{
|
|
1012
|
+
if (expected[i] != actual[i])
|
|
1013
|
+
{
|
|
1014
|
+
Unity.CurrentTestFailed = 1;
|
|
1015
|
+
break;
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
else
|
|
1020
|
+
{ // handle case of one pointers being null (if both null, test should pass)
|
|
1021
|
+
if (expected != actual)
|
|
1022
|
+
{
|
|
1023
|
+
Unity.CurrentTestFailed = 1;
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
if (Unity.CurrentTestFailed)
|
|
1028
|
+
{
|
|
1029
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
1030
|
+
UnityPrintExpectedAndActualStrings(expected, actual);
|
|
1031
|
+
UnityAddMsgIfSpecified(msg);
|
|
1032
|
+
UNITY_FAIL_AND_BAIL;
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
//-----------------------------------------------
|
|
1037
|
+
void UnityAssertEqualStringLen(const char* expected,
|
|
1038
|
+
const char* actual,
|
|
1039
|
+
const _UU32 length,
|
|
1040
|
+
const char* msg,
|
|
1041
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
1042
|
+
{
|
|
1043
|
+
_UU32 i;
|
|
1044
|
+
|
|
1045
|
+
UNITY_SKIP_EXECUTION;
|
|
1046
|
+
|
|
1047
|
+
// if both pointers not null compare the strings
|
|
1048
|
+
if (expected && actual)
|
|
1049
|
+
{
|
|
1050
|
+
for (i = 0; (expected[i] || actual[i]) && i < length; i++)
|
|
1051
|
+
{
|
|
1052
|
+
if (expected[i] != actual[i])
|
|
1053
|
+
{
|
|
1054
|
+
Unity.CurrentTestFailed = 1;
|
|
1055
|
+
break;
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
else
|
|
1060
|
+
{ // handle case of one pointers being null (if both null, test should pass)
|
|
1061
|
+
if (expected != actual)
|
|
1062
|
+
{
|
|
1063
|
+
Unity.CurrentTestFailed = 1;
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
if (Unity.CurrentTestFailed)
|
|
1068
|
+
{
|
|
1069
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
1070
|
+
UnityPrintExpectedAndActualStringsLen(expected, actual, length);
|
|
1071
|
+
UnityAddMsgIfSpecified(msg);
|
|
1072
|
+
UNITY_FAIL_AND_BAIL;
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
|
|
1077
|
+
//-----------------------------------------------
|
|
1078
|
+
void UnityAssertEqualStringArray( const char** expected,
|
|
1079
|
+
const char** actual,
|
|
1080
|
+
const _UU32 num_elements,
|
|
1081
|
+
const char* msg,
|
|
1082
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
1083
|
+
{
|
|
1084
|
+
_UU32 i, j = 0;
|
|
1085
|
+
|
|
1086
|
+
UNITY_SKIP_EXECUTION;
|
|
1087
|
+
|
|
1088
|
+
// if no elements, it's an error
|
|
1089
|
+
if (num_elements == 0)
|
|
1090
|
+
{
|
|
1091
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
1092
|
+
UnityPrint(UnityStrPointless);
|
|
1093
|
+
UnityAddMsgIfSpecified(msg);
|
|
1094
|
+
UNITY_FAIL_AND_BAIL;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
if (UnityCheckArraysForNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg) == 1)
|
|
1098
|
+
return;
|
|
1099
|
+
|
|
1100
|
+
do
|
|
1101
|
+
{
|
|
1102
|
+
// if both pointers not null compare the strings
|
|
1103
|
+
if (expected[j] && actual[j])
|
|
1104
|
+
{
|
|
1105
|
+
for (i = 0; expected[j][i] || actual[j][i]; i++)
|
|
1106
|
+
{
|
|
1107
|
+
if (expected[j][i] != actual[j][i])
|
|
1108
|
+
{
|
|
1109
|
+
Unity.CurrentTestFailed = 1;
|
|
1110
|
+
break;
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
else
|
|
1115
|
+
{ // handle case of one pointers being null (if both null, test should pass)
|
|
1116
|
+
if (expected[j] != actual[j])
|
|
1117
|
+
{
|
|
1118
|
+
Unity.CurrentTestFailed = 1;
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
if (Unity.CurrentTestFailed)
|
|
1123
|
+
{
|
|
1124
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
1125
|
+
if (num_elements > 1)
|
|
1126
|
+
{
|
|
1127
|
+
UnityPrint(UnityStrElement);
|
|
1128
|
+
UnityPrintNumberByStyle((j), UNITY_DISPLAY_STYLE_UINT);
|
|
1129
|
+
}
|
|
1130
|
+
UnityPrintExpectedAndActualStrings((const char*)(expected[j]), (const char*)(actual[j]));
|
|
1131
|
+
UnityAddMsgIfSpecified(msg);
|
|
1132
|
+
UNITY_FAIL_AND_BAIL;
|
|
1133
|
+
}
|
|
1134
|
+
} while (++j < num_elements);
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
//-----------------------------------------------
|
|
1138
|
+
void UnityAssertEqualMemory( UNITY_INTERNAL_PTR expected,
|
|
1139
|
+
UNITY_INTERNAL_PTR actual,
|
|
1140
|
+
const _UU32 length,
|
|
1141
|
+
const _UU32 num_elements,
|
|
1142
|
+
const char* msg,
|
|
1143
|
+
const UNITY_LINE_TYPE lineNumber)
|
|
1144
|
+
{
|
|
1145
|
+
UNITY_PTR_ATTRIBUTE const unsigned char* ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected;
|
|
1146
|
+
UNITY_PTR_ATTRIBUTE const unsigned char* ptr_act = (UNITY_PTR_ATTRIBUTE const unsigned char*)actual;
|
|
1147
|
+
_UU32 elements = num_elements;
|
|
1148
|
+
_UU32 bytes;
|
|
1149
|
+
|
|
1150
|
+
UNITY_SKIP_EXECUTION;
|
|
1151
|
+
|
|
1152
|
+
if ((elements == 0) || (length == 0))
|
|
1153
|
+
{
|
|
1154
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
1155
|
+
UnityPrint(UnityStrPointless);
|
|
1156
|
+
UnityAddMsgIfSpecified(msg);
|
|
1157
|
+
UNITY_FAIL_AND_BAIL;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
if (UnityCheckArraysForNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg) == 1)
|
|
1161
|
+
return;
|
|
1162
|
+
|
|
1163
|
+
while (elements--)
|
|
1164
|
+
{
|
|
1165
|
+
/////////////////////////////////////
|
|
1166
|
+
bytes = length;
|
|
1167
|
+
while (bytes--)
|
|
1168
|
+
{
|
|
1169
|
+
if (*ptr_exp != *ptr_act)
|
|
1170
|
+
{
|
|
1171
|
+
UnityTestResultsFailBegin(lineNumber);
|
|
1172
|
+
UnityPrint(UnityStrMemory);
|
|
1173
|
+
if (num_elements > 1)
|
|
1174
|
+
{
|
|
1175
|
+
UnityPrint(UnityStrElement);
|
|
1176
|
+
UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
|
|
1177
|
+
}
|
|
1178
|
+
UnityPrint(UnityStrByte);
|
|
1179
|
+
UnityPrintNumberByStyle((length - bytes - 1), UNITY_DISPLAY_STYLE_UINT);
|
|
1180
|
+
UnityPrint(UnityStrExpected);
|
|
1181
|
+
UnityPrintNumberByStyle(*ptr_exp, UNITY_DISPLAY_STYLE_HEX8);
|
|
1182
|
+
UnityPrint(UnityStrWas);
|
|
1183
|
+
UnityPrintNumberByStyle(*ptr_act, UNITY_DISPLAY_STYLE_HEX8);
|
|
1184
|
+
UnityAddMsgIfSpecified(msg);
|
|
1185
|
+
UNITY_FAIL_AND_BAIL;
|
|
1186
|
+
}
|
|
1187
|
+
ptr_exp = (UNITY_INTERNAL_PTR)((_UP)ptr_exp + 1);
|
|
1188
|
+
ptr_act = (UNITY_INTERNAL_PTR)((_UP)ptr_act + 1);
|
|
1189
|
+
}
|
|
1190
|
+
/////////////////////////////////////
|
|
1191
|
+
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
|
|
1195
|
+
//-----------------------------------------------
|
|
1196
|
+
// Control Functions
|
|
1197
|
+
//-----------------------------------------------
|
|
1198
|
+
|
|
1199
|
+
void UnityFail(const char* msg, const UNITY_LINE_TYPE line)
|
|
1200
|
+
{
|
|
1201
|
+
UNITY_SKIP_EXECUTION;
|
|
1202
|
+
|
|
1203
|
+
UnityTestResultsBegin(Unity.TestFile, line);
|
|
1204
|
+
UnityPrintFail();
|
|
1205
|
+
if (msg != NULL)
|
|
1206
|
+
{
|
|
1207
|
+
UNITY_OUTPUT_CHAR(':');
|
|
1208
|
+
|
|
1209
|
+
#ifndef UNITY_EXCLUDE_DETAILS
|
|
1210
|
+
if (Unity.CurrentDetail1)
|
|
1211
|
+
{
|
|
1212
|
+
UnityPrint(UnityStrDetail1Name);
|
|
1213
|
+
UnityPrint(Unity.CurrentDetail1);
|
|
1214
|
+
if (Unity.CurrentDetail2)
|
|
1215
|
+
{
|
|
1216
|
+
UnityPrint(UnityStrDetail2Name);
|
|
1217
|
+
UnityPrint(Unity.CurrentDetail2);
|
|
1218
|
+
}
|
|
1219
|
+
UnityPrint(UnityStrSpacer);
|
|
1220
|
+
}
|
|
1221
|
+
#endif
|
|
1222
|
+
if (msg[0] != ' ')
|
|
1223
|
+
{
|
|
1224
|
+
UNITY_OUTPUT_CHAR(' ');
|
|
1225
|
+
}
|
|
1226
|
+
UnityPrint(msg);
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
UNITY_FAIL_AND_BAIL;
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
//-----------------------------------------------
|
|
1233
|
+
void UnityIgnore(const char* msg, const UNITY_LINE_TYPE line)
|
|
1234
|
+
{
|
|
1235
|
+
UNITY_SKIP_EXECUTION;
|
|
1236
|
+
|
|
1237
|
+
UnityTestResultsBegin(Unity.TestFile, line);
|
|
1238
|
+
UnityPrint(UnityStrIgnore);
|
|
1239
|
+
if (msg != NULL)
|
|
1240
|
+
{
|
|
1241
|
+
UNITY_OUTPUT_CHAR(':');
|
|
1242
|
+
UNITY_OUTPUT_CHAR(' ');
|
|
1243
|
+
UnityPrint(msg);
|
|
1244
|
+
}
|
|
1245
|
+
UNITY_IGNORE_AND_BAIL;
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
//-----------------------------------------------
|
|
1249
|
+
#if defined(UNITY_WEAK_ATTRIBUTE)
|
|
1250
|
+
void setUp(void);
|
|
1251
|
+
void tearDown(void);
|
|
1252
|
+
UNITY_WEAK_ATTRIBUTE void setUp(void) { }
|
|
1253
|
+
UNITY_WEAK_ATTRIBUTE void tearDown(void) { }
|
|
1254
|
+
#elif defined(UNITY_WEAK_PRAGMA)
|
|
1255
|
+
# pragma weak setUp
|
|
1256
|
+
void setUp(void) { }
|
|
1257
|
+
# pragma weak tearDown
|
|
1258
|
+
void tearDown(void) { }
|
|
1259
|
+
#else
|
|
1260
|
+
void setUp(void);
|
|
1261
|
+
void tearDown(void);
|
|
1262
|
+
#endif
|
|
1263
|
+
//-----------------------------------------------
|
|
1264
|
+
void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum)
|
|
1265
|
+
{
|
|
1266
|
+
Unity.CurrentTestName = FuncName;
|
|
1267
|
+
Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)FuncLineNum;
|
|
1268
|
+
Unity.NumberOfTests++;
|
|
1269
|
+
UNITY_CLR_DETAILS();
|
|
1270
|
+
if (TEST_PROTECT())
|
|
1271
|
+
{
|
|
1272
|
+
setUp();
|
|
1273
|
+
Func();
|
|
1274
|
+
}
|
|
1275
|
+
if (TEST_PROTECT() && !(Unity.CurrentTestIgnored))
|
|
1276
|
+
{
|
|
1277
|
+
tearDown();
|
|
1278
|
+
}
|
|
1279
|
+
UnityConcludeTest();
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
//-----------------------------------------------
|
|
1283
|
+
void UnityBegin(const char* filename)
|
|
1284
|
+
{
|
|
1285
|
+
Unity.TestFile = filename;
|
|
1286
|
+
Unity.CurrentTestName = NULL;
|
|
1287
|
+
Unity.CurrentTestLineNumber = 0;
|
|
1288
|
+
Unity.NumberOfTests = 0;
|
|
1289
|
+
Unity.TestFailures = 0;
|
|
1290
|
+
Unity.TestIgnores = 0;
|
|
1291
|
+
Unity.CurrentTestFailed = 0;
|
|
1292
|
+
Unity.CurrentTestIgnored = 0;
|
|
1293
|
+
|
|
1294
|
+
UNITY_CLR_DETAILS();
|
|
1295
|
+
UNITY_OUTPUT_START();
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
//-----------------------------------------------
|
|
1299
|
+
int UnityEnd(void)
|
|
1300
|
+
{
|
|
1301
|
+
UNITY_PRINT_EOL();
|
|
1302
|
+
UnityPrint(UnityStrBreaker);
|
|
1303
|
+
UNITY_PRINT_EOL();
|
|
1304
|
+
UnityPrintNumber((_U_SINT)(Unity.NumberOfTests));
|
|
1305
|
+
UnityPrint(UnityStrResultsTests);
|
|
1306
|
+
UnityPrintNumber((_U_SINT)(Unity.TestFailures));
|
|
1307
|
+
UnityPrint(UnityStrResultsFailures);
|
|
1308
|
+
UnityPrintNumber((_U_SINT)(Unity.TestIgnores));
|
|
1309
|
+
UnityPrint(UnityStrResultsIgnored);
|
|
1310
|
+
UNITY_PRINT_EOL();
|
|
1311
|
+
if (Unity.TestFailures == 0U)
|
|
1312
|
+
{
|
|
1313
|
+
UnityPrintOk();
|
|
1314
|
+
}
|
|
1315
|
+
else
|
|
1316
|
+
{
|
|
1317
|
+
UnityPrintFail();
|
|
1318
|
+
}
|
|
1319
|
+
UNITY_PRINT_EOL();
|
|
1320
|
+
UNITY_OUTPUT_COMPLETE();
|
|
1321
|
+
return (int)(Unity.TestFailures);
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
//-----------------------------------------------
|