ceedling 0.25.0 → 0.27.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/README.md +1 -1
- data/assets/project_as_gem.yml +13 -0
- data/assets/project_with_guts.yml +13 -0
- data/bin/ceedling +91 -67
- data/docs/CeedlingPacket.md +61 -23
- data/docs/CeedlingPacket.odt +0 -0
- data/docs/CeedlingPacket.pdf +0 -0
- data/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/examples/temp_sensor/test/TestTemperatureCalculator.c +4 -1
- data/lib/ceedling/configurator.rb +14 -1
- data/lib/ceedling/configurator_builder.rb +2 -1
- data/lib/ceedling/configurator_validator.rb +12 -3
- data/lib/ceedling/constants.rb +3 -1
- data/lib/ceedling/defaults.rb +12 -1
- data/lib/ceedling/file_finder.rb +3 -0
- data/lib/ceedling/file_path_utils.rb +1 -1
- data/lib/ceedling/file_wrapper.rb +4 -4
- data/lib/ceedling/generator.rb +12 -3
- data/lib/ceedling/preprocessinator_helper.rb +5 -5
- data/lib/ceedling/preprocessinator_includes_handler.rb +10 -1
- data/lib/ceedling/project_config_manager.rb +1 -2
- data/lib/ceedling/project_file_loader.rb +27 -9
- data/lib/ceedling/rakefile.rb +6 -6
- data/lib/ceedling/release_invoker.rb +21 -6
- data/lib/ceedling/rules_release.rake +9 -5
- data/lib/ceedling/rules_tests.rake +6 -1
- data/lib/ceedling/setupinator.rb +1 -0
- data/lib/ceedling/tasks_base.rake +3 -0
- data/lib/ceedling/tasks_filesystem.rake +10 -7
- data/lib/ceedling/tasks_release.rake +3 -1
- data/lib/ceedling/test_includes_extractor.rb +16 -12
- data/lib/ceedling/test_invoker.rb +40 -0
- data/lib/ceedling/version.rb +3 -3
- data/lib/ceedling/version.rb.erb +1 -1
- data/plugins/command_hooks/lib/command_hooks.rb +1 -1
- data/plugins/fake_function_framework/examples/fff_example/src/bar.h +1 -0
- data/plugins/fake_function_framework/examples/fff_example/src/event_processor.c +1 -0
- data/plugins/fake_function_framework/lib/fff_mock_generator.rb +4 -0
- data/plugins/fake_function_framework/spec/{fff_mock_generator_spec.rb → fff_mock_header_generator_spec.rb} +34 -194
- data/plugins/fake_function_framework/spec/fff_mock_source_generator_spec.rb +149 -0
- data/plugins/fake_function_framework/spec/header_generator.rb +51 -0
- data/plugins/junit_tests_report/lib/junit_tests_report.rb +115 -0
- data/plugins/subprojects/README.md +63 -0
- data/plugins/subprojects/config/defaults.yml +33 -0
- data/plugins/subprojects/lib/subprojects.rb +92 -0
- data/plugins/subprojects/subprojects.rake +78 -0
- data/spec/preprocessinator_includes_handler_spec.rb +15 -5
- data/spec/spec_helper.rb +2 -2
- data/spec/spec_system_helper.rb +49 -1
- data/spec/system/deployment_spec.rb +29 -0
- data/vendor/c_exception/README.md +8 -2
- data/vendor/c_exception/docs/{readme.txt → CException.md} +133 -102
- data/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/c_exception/vendor/unity/README.md +19 -10
- data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +67 -64
- data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +20 -20
- data/vendor/c_exception/vendor/unity/auto/generate_module.rb +149 -142
- data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +234 -232
- data/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -0
- data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +108 -120
- data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +11 -9
- data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +1 -3
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +6 -2
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +45 -57
- data/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -0
- data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
- data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
- data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
- data/vendor/c_exception/vendor/unity/examples/example_1/makefile +22 -17
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/c_exception/vendor/unity/examples/example_2/makefile +16 -17
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +15 -15
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
- data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +4 -10
- data/vendor/c_exception/vendor/unity/examples/unity_config.h +14 -26
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +12 -12
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
- data/vendor/c_exception/vendor/unity/src/unity.c +396 -330
- data/vendor/c_exception/vendor/unity/src/unity.h +50 -4
- data/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -84
- data/vendor/c_exception/vendor/unity/test/Makefile +17 -17
- data/vendor/c_exception/vendor/unity/test/rakefile +63 -3
- data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +108 -105
- data/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -6
- data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +1 -9
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
- data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
- data/vendor/c_exception/vendor/unity/test/tests/testunity.c +1338 -151
- data/vendor/cmock/README.md +10 -1
- data/vendor/cmock/config/test_environment.rb +7 -7
- data/vendor/cmock/docs/CMock_Summary.md +325 -128
- data/vendor/cmock/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/examples/make_example/Makefile +2 -2
- data/vendor/cmock/examples/temp_sensor/gcc.yml +5 -4
- data/vendor/cmock/examples/temp_sensor/iar_v4.yml +5 -4
- data/vendor/cmock/examples/temp_sensor/iar_v5.yml +5 -4
- data/vendor/cmock/examples/temp_sensor/rakefile.rb +11 -1
- data/vendor/cmock/examples/temp_sensor/rakefile_helper.rb +12 -10
- data/vendor/cmock/lib/cmock.rb +0 -3
- data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +6 -2
- data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +2 -1
- data/vendor/cmock/lib/cmock_header_parser.rb +5 -6
- data/vendor/cmock/release/version.info +1 -1
- data/vendor/cmock/scripts/create_makefile.rb +4 -2
- data/vendor/cmock/scripts/test_summary.rb +17 -9
- data/vendor/cmock/src/cmock.c +1 -0
- data/vendor/cmock/src/cmock.h +1 -1
- data/vendor/cmock/src/cmock_internals.h +14 -1
- data/vendor/cmock/test/c/TestCMockC.yml +4 -4
- data/vendor/cmock/test/c/TestCMockCDynamic.yml +4 -4
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_FLASH.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_RAM.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/SAM7_SIM.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/at91SAM7X256_FLASH.xcl +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/at91SAM7X256_RAM.xcl +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/Resource/ioat91sam7x256.ddf +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.dep +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.ewd +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.ewp +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/cmock_demo.eww +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X-EK.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.inc +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.rdf +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256.tcl +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/AT91SAM7X256_inc.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/ioat91sam7x256.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/incIAR/lib_AT91SAM7X256.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.cspy.bat +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.dbgdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.dni +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/settings/cmock_demo.wsdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/srcIAR/Cstartup.s79 +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v4/srcIAR/Cstartup_SAM7.c +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_FLASH.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_RAM.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/SAM7_SIM.mac +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/at91SAM7X256_FLASH.icf +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/Resource/at91SAM7X256_RAM.icf +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.dep +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.ewd +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.ewp +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/cmock_demo.eww +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/AT91SAM7X-EK.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/AT91SAM7X256_inc.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/lib_AT91SAM7X256.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/incIAR/project.h +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.dbgdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.dni +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X.wsdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.cspy.bat +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.dbgdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.dni +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo.wsdt +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_Binary.jlink +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/settings/cmock_demo_RAM_Debug.jlink +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/srcIAR/Cstartup.s +0 -0
- data/vendor/cmock/{iar → test/iar}/iar_v5/srcIAR/Cstartup_SAM7.c +0 -0
- data/vendor/cmock/{Rakefile → test/rakefile} +9 -9
- data/vendor/cmock/{rakefile_helper.rb → test/rakefile_helper.rb} +13 -13
- data/vendor/cmock/test/system/test_compilation/config.yml +4 -4
- data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +2 -0
- data/vendor/cmock/{targets → test/targets}/clang_strict.yml +11 -11
- data/vendor/cmock/{targets → test/targets}/gcc.yml +9 -9
- data/vendor/cmock/{targets → test/targets}/gcc_64.yml +9 -9
- data/vendor/cmock/{targets → test/targets}/gcc_tiny.yml +9 -9
- data/vendor/cmock/{targets → test/targets}/iar_arm_v4.yml +9 -9
- data/vendor/cmock/{targets → test/targets}/iar_arm_v5.yml +10 -10
- data/vendor/cmock/test/test_helper.rb +4 -8
- data/vendor/cmock/test/unit/cmock_config_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_file_writer_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +3 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +1 -1
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +15 -2
- data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +6 -10
- data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +1 -1
- data/vendor/cmock/vendor/c_exception/README.md +8 -2
- data/vendor/cmock/vendor/c_exception/docs/{readme.txt → CException.md} +133 -102
- data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +19 -10
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +67 -64
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +20 -20
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +149 -142
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +234 -232
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +108 -120
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +11 -9
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +1 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +6 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +45 -57
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +22 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +16 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +15 -15
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +4 -10
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +14 -26
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +12 -12
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +396 -330
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +50 -4
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -84
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +17 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +63 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +108 -105
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +1 -9
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +1338 -151
- data/vendor/cmock/vendor/unity/README.md +19 -10
- data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +67 -64
- data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +20 -20
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +149 -142
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +234 -232
- data/vendor/cmock/vendor/unity/auto/parse_output.rb +220 -0
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +108 -120
- data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +11 -9
- data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +1 -3
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +6 -2
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +45 -57
- data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +716 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
- data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
- data/vendor/cmock/vendor/unity/examples/example_1/makefile +22 -17
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/makefile +16 -17
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +15 -15
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
- data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +4 -10
- data/vendor/cmock/vendor/unity/examples/unity_config.h +14 -26
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +12 -12
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
- data/vendor/cmock/vendor/unity/release/version.info +1 -1
- data/vendor/cmock/vendor/unity/src/unity.c +396 -330
- data/vendor/cmock/vendor/unity/src/unity.h +50 -4
- data/vendor/cmock/vendor/unity/src/unity_internals.h +119 -84
- data/vendor/cmock/vendor/unity/test/Makefile +17 -17
- data/vendor/cmock/vendor/unity/test/rakefile +63 -3
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +108 -105
- data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -6
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +1 -9
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
- data/vendor/cmock/vendor/unity/test/tests/testunity.c +1338 -151
- data/vendor/deep_merge/Rakefile +1 -1
- data/vendor/unity/README.md +19 -10
- data/vendor/unity/auto/colour_prompt.rb +67 -64
- data/vendor/unity/auto/colour_reporter.rb +20 -20
- data/vendor/unity/auto/generate_module.rb +149 -142
- data/vendor/unity/auto/generate_test_runner.rb +234 -232
- data/vendor/unity/auto/parse_output.rb +220 -0
- data/vendor/unity/auto/stylize_as_junit.rb +108 -120
- data/vendor/unity/auto/test_file_filter.rb +11 -9
- data/vendor/unity/auto/type_sanitizer.rb +1 -3
- data/vendor/unity/auto/unity_test_summary.py +6 -2
- data/vendor/unity/auto/unity_test_summary.rb +45 -57
- data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/unity/docs/UnityAssertionsReference.md +716 -0
- data/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
- data/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
- data/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
- data/vendor/unity/examples/example_1/makefile +22 -17
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +1 -1
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +1 -1
- data/vendor/unity/examples/example_2/makefile +16 -17
- data/vendor/unity/examples/example_3/rakefile.rb +15 -15
- data/vendor/unity/examples/example_3/rakefile_helper.rb +93 -100
- data/vendor/unity/examples/example_3/readme.txt +4 -10
- data/vendor/unity/examples/unity_config.h +14 -26
- data/vendor/unity/extras/fixture/rakefile.rb +12 -12
- data/vendor/unity/extras/fixture/rakefile_helper.rb +87 -88
- data/vendor/unity/extras/fixture/src/unity_fixture.c +15 -8
- data/vendor/unity/extras/fixture/src/unity_fixture.h +6 -1
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +3 -0
- data/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +1 -0
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +1 -1
- data/vendor/unity/release/version.info +1 -1
- data/vendor/unity/src/unity.c +396 -330
- data/vendor/unity/src/unity.h +50 -4
- data/vendor/unity/src/unity_internals.h +119 -84
- data/vendor/unity/test/Makefile +17 -17
- data/vendor/unity/test/rakefile +63 -3
- data/vendor/unity/test/rakefile_helper.rb +108 -105
- data/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/unity/test/targets/clang_file.yml +0 -6
- data/vendor/unity/test/targets/clang_strict.yml +1 -9
- data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +2 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +2 -2
- data/vendor/unity/test/tests/test_generate_test_runner.rb +5 -5
- data/vendor/unity/test/tests/testunity.c +1338 -151
- metadata +102 -157
- data/test_graveyard/integration/paths.yml +0 -17
- data/test_graveyard/integration/paths_test.rb +0 -80
- data/test_graveyard/integration/rake_rules_aux_dependencies_test.rb +0 -75
- data/test_graveyard/integration/rake_rules_cmock_test.rb +0 -74
- data/test_graveyard/integration/rake_rules_preprocess_test.rb +0 -178
- data/test_graveyard/integration/rake_rules_test.rb +0 -268
- data/test_graveyard/integration/rake_tasks_test.rb +0 -103
- data/test_graveyard/integration_test_helper.rb +0 -34
- data/test_graveyard/rakefile_rules.rb +0 -10
- data/test_graveyard/rakefile_rules_aux_dependencies.rb +0 -10
- data/test_graveyard/rakefile_rules_cmock.rb +0 -10
- data/test_graveyard/rakefile_rules_preprocess.rb +0 -10
- data/test_graveyard/rakefile_tasks.rb +0 -10
- data/test_graveyard/system/file_system_dependencies.yml +0 -20
- data/test_graveyard/system/file_system_kitchen_sink.yml +0 -20
- data/test_graveyard/system/file_system_mocks.yml +0 -20
- data/test_graveyard/system/file_system_preprocess.yml +0 -20
- data/test_graveyard/system/file_system_simple.yml +0 -20
- data/test_graveyard/system/file_system_test.rb +0 -78
- data/test_graveyard/system/mocks/include/a_file.h +0 -2
- data/test_graveyard/system/mocks/include/other_stuff.h +0 -2
- data/test_graveyard/system/mocks/include/stuff.h +0 -3
- data/test_graveyard/system/mocks/source/a_file.c +0 -9
- data/test_graveyard/system/mocks/test/test_a_file.c +0 -41
- data/test_graveyard/system/mocks/test/test_no_file.c +0 -14
- data/test_graveyard/system/project_mocks.yml +0 -43
- data/test_graveyard/system/project_mocks_test.rb +0 -38
- data/test_graveyard/system/project_simple.yml +0 -36
- data/test_graveyard/system/project_simple_test.rb +0 -39
- data/test_graveyard/system/rule_mocks_test.rb +0 -44
- data/test_graveyard/system/rule_runners_test.rb +0 -44
- data/test_graveyard/system/simple/include/other_stuff.h +0 -2
- data/test_graveyard/system/simple/include/stuff.h +0 -3
- data/test_graveyard/system/simple/source/other_stuff.c +0 -6
- data/test_graveyard/system/simple/source/stuff.c +0 -7
- data/test_graveyard/system/simple/test/test_other_stuff.c +0 -30
- data/test_graveyard/system/simple/test/test_stuff.c +0 -51
- data/test_graveyard/system_test_helper.rb +0 -73
- data/test_graveyard/test_helper.rb +0 -93
- data/test_graveyard/unit/busted/configurator_builder_test.rb +0 -569
- data/test_graveyard/unit/busted/configurator_helper_test.rb +0 -234
- data/test_graveyard/unit/busted/configurator_test.rb +0 -232
- data/test_graveyard/unit/busted/configurator_validator_test.rb +0 -169
- data/test_graveyard/unit/busted/deep_merge_fix_test.rb +0 -55
- data/test_graveyard/unit/busted/dependinator_test.rb +0 -129
- data/test_graveyard/unit/busted/file_finder_helper_test.rb +0 -45
- data/test_graveyard/unit/busted/file_finder_test.rb +0 -114
- data/test_graveyard/unit/busted/file_path_utils_test.rb +0 -97
- data/test_graveyard/unit/busted/file_system_utils_test.rb +0 -21
- data/test_graveyard/unit/busted/generator_test.rb +0 -187
- data/test_graveyard/unit/busted/generator_test_results_test.rb +0 -129
- data/test_graveyard/unit/busted/generator_test_runner_test.rb +0 -475
- data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +0 -39
- data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +0 -156
- data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +0 -93
- data/test_graveyard/unit/busted/preprocessinator_test.rb +0 -57
- data/test_graveyard/unit/busted/project_file_loader_test.rb +0 -142
- data/test_graveyard/unit/busted/setupinator_test.rb +0 -45
- data/test_graveyard/unit/busted/streaminator_test.rb +0 -49
- data/test_graveyard/unit/busted/task_invoker_test.rb +0 -69
- data/test_graveyard/unit/busted/test_includes_extractor_test.rb +0 -111
- data/test_graveyard/unit/busted/test_invoker_helper_test.rb +0 -62
- data/test_graveyard/unit/busted/test_invoker_test.rb +0 -47
- data/test_graveyard/unit/busted/tool_executor_helper_test.rb +0 -100
- data/test_graveyard/unit/busted/tool_executor_test.rb +0 -351
- data/test_graveyard/unit/busted/verbosinator_test.rb +0 -65
- data/test_graveyard/unit/preprocessinator_extractor_test.rb +0 -731
- data/test_graveyard/unit_test_helper.rb +0 -16
- data/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
- data/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
- data/vendor/c_exception/vendor/unity/auto/parseOutput.rb +0 -191
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
- data/vendor/cmock/docs/CMock Summary.odt +0 -0
- data/vendor/cmock/docs/CMock Summary.pdf +0 -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/vendor/unity/auto/parseOutput.rb +0 -191
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
- data/vendor/cmock/vendor/unity/auto/parseOutput.rb +0 -191
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
- data/vendor/unity/auto/parseOutput.rb +0 -191
- data/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
- data/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
- data/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
- data/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
|
|
2
|
+
require '../auto/generate_module.rb'
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
|
|
5
|
+
def touch_src(file)
|
|
6
|
+
FileUtils.touch "sandbox/src/#{file}"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def touch_test(file)
|
|
10
|
+
FileUtils.touch "sandbox/test/#{file}"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def create_src_with_known_content(file)
|
|
14
|
+
File.open("sandbox/src/#{file}", "w") {|f| f.write("the original #{file}")}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def create_test_with_known_content(file)
|
|
18
|
+
File.open("sandbox/test/#{file}", "w") {|f| f.write("the original #{file}")}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def expect_src_content_didnt_change(file)
|
|
22
|
+
expect(File.read("sandbox/src/#{file}")).to eq("the original #{file}")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def expect_test_content_didnt_change(file)
|
|
26
|
+
expect(File.read("sandbox/test/#{file}")).to eq("the original #{file}")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def expect_src_file_to_exist(file)
|
|
30
|
+
expect(File.exist?("sandbox/src/#{file}")).to be true
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def expect_test_file_to_exist(file)
|
|
34
|
+
expect(File.exist?("sandbox/test/#{file}")).to be true
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe "UnityModuleGenerator" do
|
|
38
|
+
|
|
39
|
+
before do
|
|
40
|
+
# clean sandbox and setup our "project" folders
|
|
41
|
+
FileUtils.rm_rf "sandbox"
|
|
42
|
+
FileUtils.mkdir_p "sandbox"
|
|
43
|
+
FileUtils.mkdir_p "sandbox/src"
|
|
44
|
+
FileUtils.mkdir_p "sandbox/test"
|
|
45
|
+
|
|
46
|
+
@options = {
|
|
47
|
+
:path_src => "sandbox/src",
|
|
48
|
+
:path_tst => "sandbox/test",
|
|
49
|
+
}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
context "with src pattern" do
|
|
53
|
+
before do
|
|
54
|
+
@options[:pattern] = "src"
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "fails when all files already exist" do
|
|
58
|
+
# create an existing triad of files
|
|
59
|
+
touch_src "meh.c"
|
|
60
|
+
touch_src "meh.h"
|
|
61
|
+
touch_test "Testmeh.c"
|
|
62
|
+
expect {
|
|
63
|
+
UnityModuleGenerator.new(@options).generate("meh")
|
|
64
|
+
}.to raise_error("ERROR: File meh already exists. Exiting.")
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it "creates the test file if the source and header files exist" do
|
|
68
|
+
# Create the existing files.
|
|
69
|
+
touch_src "meh.c"
|
|
70
|
+
touch_src "meh.h"
|
|
71
|
+
|
|
72
|
+
UnityModuleGenerator.new(@options).generate("meh")
|
|
73
|
+
|
|
74
|
+
expect_test_file_to_exist "Testmeh.c"
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "does not alter existing files" do
|
|
78
|
+
# Create some files with known content.
|
|
79
|
+
create_src_with_known_content "meh.c"
|
|
80
|
+
create_src_with_known_content "meh.h"
|
|
81
|
+
|
|
82
|
+
UnityModuleGenerator.new(@options).generate("meh")
|
|
83
|
+
|
|
84
|
+
expect_src_content_didnt_change "meh.c"
|
|
85
|
+
expect_src_content_didnt_change "meh.c"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it "does not alter existing test files" do
|
|
89
|
+
# Create some files with known content.
|
|
90
|
+
create_test_with_known_content "Testmeh.c"
|
|
91
|
+
|
|
92
|
+
UnityModuleGenerator.new(@options).generate("meh")
|
|
93
|
+
|
|
94
|
+
expect_test_content_didnt_change "Testmeh.c"
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
context "with mch pattern" do
|
|
100
|
+
before do
|
|
101
|
+
@options[:pattern] = "mch"
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
it "fails when all files exist" do
|
|
105
|
+
touch_src "meh_model.c"
|
|
106
|
+
touch_src "meh_conductor.c"
|
|
107
|
+
touch_src "meh_hardware.c"
|
|
108
|
+
touch_src "meh_model.h"
|
|
109
|
+
touch_src "meh_conductor.h"
|
|
110
|
+
touch_src "meh_hardware.h"
|
|
111
|
+
touch_test "Testmeh_model.c"
|
|
112
|
+
touch_test "Testmeh_conductor.c"
|
|
113
|
+
touch_test "Testmeh_hardware.c"
|
|
114
|
+
expect {
|
|
115
|
+
UnityModuleGenerator.new(@options).generate("meh")
|
|
116
|
+
}.to raise_error("ERROR: File meh_model already exists. Exiting.")
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
it "creates files that don't exist" do
|
|
120
|
+
touch_src "meh_model.c"
|
|
121
|
+
touch_src "meh_conductor.c"
|
|
122
|
+
touch_src "meh_hardware.c"
|
|
123
|
+
touch_src "meh_model.h"
|
|
124
|
+
touch_src "meh_conductor.h"
|
|
125
|
+
|
|
126
|
+
UnityModuleGenerator.new(@options).generate("meh")
|
|
127
|
+
|
|
128
|
+
expect_src_file_to_exist "meh_hardware.h"
|
|
129
|
+
expect_test_file_to_exist "Testmeh_model.c"
|
|
130
|
+
expect_test_file_to_exist "Testmeh_conductor.c"
|
|
131
|
+
expect_test_file_to_exist "Testmeh_hardware.c"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
it "does not alter existing source files" do
|
|
135
|
+
create_src_with_known_content "meh_model.c"
|
|
136
|
+
create_src_with_known_content "meh_model.c"
|
|
137
|
+
create_src_with_known_content "meh_model.c"
|
|
138
|
+
create_src_with_known_content "meh_model.h"
|
|
139
|
+
create_src_with_known_content "meh_model.c"
|
|
140
|
+
|
|
141
|
+
UnityModuleGenerator.new(@options).generate("meh")
|
|
142
|
+
|
|
143
|
+
expect_src_content_didnt_change "meh_model.c"
|
|
144
|
+
expect_src_content_didnt_change "meh_model.c"
|
|
145
|
+
expect_src_content_didnt_change "meh_model.c"
|
|
146
|
+
expect_src_content_didnt_change "meh_model.c"
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
it "does not alter existing test files" do
|
|
150
|
+
create_test_with_known_content "Testmeh_model.c"
|
|
151
|
+
|
|
152
|
+
UnityModuleGenerator.new(@options).generate("meh")
|
|
153
|
+
|
|
154
|
+
expect_test_content_didnt_change "Testmeh_model.c"
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
end
|
|
158
|
+
end
|
|
@@ -16,13 +16,10 @@ compiler:
|
|
|
16
16
|
- '-Winit-self'
|
|
17
17
|
- '-Winline'
|
|
18
18
|
- '-Winvalid-pch'
|
|
19
|
-
- '-Wmissing-declarations'
|
|
20
19
|
- '-Wmissing-include-dirs'
|
|
21
|
-
- '-Wmissing-prototypes'
|
|
22
20
|
- '-Wnonnull'
|
|
23
21
|
- '-Wpacked'
|
|
24
22
|
- '-Wpointer-arith'
|
|
25
|
-
- '-Wredundant-decls'
|
|
26
23
|
- '-Wswitch-default'
|
|
27
24
|
- '-Wstrict-aliasing'
|
|
28
25
|
- '-Wstrict-overflow=5'
|
|
@@ -33,10 +30,7 @@ compiler:
|
|
|
33
30
|
- '-Wshadow'
|
|
34
31
|
- '-Wundef'
|
|
35
32
|
- '-Wwrite-strings'
|
|
36
|
-
- '-Wno-missing-declarations'
|
|
37
|
-
- '-Wno-missing-prototypes'
|
|
38
33
|
- '-Wno-nested-externs'
|
|
39
|
-
- '-Wno-redundant-decls'
|
|
40
34
|
- '-Wno-unused-parameter'
|
|
41
35
|
- '-Wno-variadic-macros'
|
|
42
36
|
- '-Wbad-function-cast'
|
|
@@ -16,13 +16,10 @@ compiler:
|
|
|
16
16
|
- '-Winit-self'
|
|
17
17
|
- '-Winline'
|
|
18
18
|
- '-Winvalid-pch'
|
|
19
|
-
- '-Wmissing-declarations'
|
|
20
19
|
- '-Wmissing-include-dirs'
|
|
21
|
-
- '-Wmissing-prototypes'
|
|
22
20
|
- '-Wnonnull'
|
|
23
21
|
- '-Wpacked'
|
|
24
22
|
- '-Wpointer-arith'
|
|
25
|
-
- '-Wredundant-decls'
|
|
26
23
|
- '-Wswitch-default'
|
|
27
24
|
- '-Wstrict-aliasing'
|
|
28
25
|
- '-Wstrict-overflow=5'
|
|
@@ -33,16 +30,13 @@ compiler:
|
|
|
33
30
|
- '-Wshadow'
|
|
34
31
|
- '-Wundef'
|
|
35
32
|
- '-Wwrite-strings'
|
|
36
|
-
- '-Wno-missing-declarations'
|
|
37
|
-
- '-Wno-missing-prototypes'
|
|
38
33
|
- '-Wno-nested-externs'
|
|
39
|
-
- '-Wno-redundant-decls'
|
|
40
34
|
- '-Wno-unused-parameter'
|
|
41
35
|
- '-Wno-variadic-macros'
|
|
42
36
|
- '-Wbad-function-cast'
|
|
43
37
|
- '-fms-extensions'
|
|
44
38
|
- '-fno-omit-frame-pointer'
|
|
45
|
-
|
|
39
|
+
#- '-ffloat-store'
|
|
46
40
|
- '-fno-common'
|
|
47
41
|
- '-fstrict-aliasing'
|
|
48
42
|
- '-std=gnu99'
|
|
@@ -61,8 +55,6 @@ compiler:
|
|
|
61
55
|
- UNITY_INCLUDE_DOUBLE
|
|
62
56
|
- UNITY_SUPPORT_TEST_CASES
|
|
63
57
|
- UNITY_SUPPORT_64
|
|
64
|
-
- UNITY_OUTPUT_FLUSH
|
|
65
|
-
- UNITY_OMIT_OUTPUT_FLUSH_HEADER_DECLARATION
|
|
66
58
|
object_files:
|
|
67
59
|
prefix: '-o'
|
|
68
60
|
extension: '.o'
|
|
@@ -183,9 +183,9 @@ void suitetest_ThisTestPassesWhenCustomSuiteSetupAndTeardownRan(void)
|
|
|
183
183
|
|
|
184
184
|
void test_ShouldCallMockInitAndVerifyFunctionsForEachTest(void)
|
|
185
185
|
{
|
|
186
|
-
int
|
|
186
|
+
int passesOrIgnores = (int)(Unity.NumberOfTests - Unity.TestFailures);
|
|
187
187
|
TEST_ASSERT_EQUAL_MESSAGE(Unity.NumberOfTests, mockMock_Init_Counter, "Mock Init Should Be Called Once Per Test Started");
|
|
188
|
-
TEST_ASSERT_EQUAL_MESSAGE(
|
|
188
|
+
TEST_ASSERT_EQUAL_MESSAGE(passesOrIgnores, mockMock_Verify_Counter, "Mock Verify Should Be Called Once Per Test Passed");
|
|
189
189
|
TEST_ASSERT_EQUAL_MESSAGE(Unity.NumberOfTests - 1, mockMock_Destroy_Counter, "Mock Destroy Should Be Called Once Per Test Completed");
|
|
190
190
|
TEST_ASSERT_EQUAL_MESSAGE(0, CMockMemFreeFinalCounter, "Mock MemFreeFinal Should Not Be Called Until End");
|
|
191
191
|
}
|
|
@@ -1170,11 +1170,11 @@ def runner_test(test, runner, expected, test_defines, cmdline_args)
|
|
|
1170
1170
|
simulator = build_simulator_fields
|
|
1171
1171
|
cmdline_args ||= ""
|
|
1172
1172
|
executable = $cfg['linker']['bin_files']['destination'] + test_base + $cfg['linker']['bin_files']['extension'] + " #{cmdline_args}"
|
|
1173
|
-
if simulator.nil?
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1173
|
+
cmd_str = if simulator.nil?
|
|
1174
|
+
executable
|
|
1175
|
+
else
|
|
1176
|
+
"#{simulator[:command]} #{simulator[:pre_support]} #{executable} #{simulator[:post_support]}"
|
|
1177
|
+
end
|
|
1178
1178
|
output = execute(cmd_str, true)
|
|
1179
1179
|
|
|
1180
1180
|
#compare to the expected pass/fail
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
========================================== */
|
|
6
6
|
|
|
7
7
|
#include "unity.h"
|
|
8
|
-
#include <setjmp.h>
|
|
9
8
|
#include <string.h>
|
|
9
|
+
#include <stdint.h>
|
|
10
10
|
|
|
11
11
|
// Dividing by these constants produces +/- infinity.
|
|
12
12
|
// The rationale is given in UnityAssertFloatIsInf's body.
|
|
@@ -59,19 +59,24 @@ static int SetToOneMeanWeAlreadyCheckedThisGuy;
|
|
|
59
59
|
|
|
60
60
|
void setUp(void)
|
|
61
61
|
{
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
SetToOneToFailInTearDown = 0;
|
|
63
|
+
SetToOneMeanWeAlreadyCheckedThisGuy = 0;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
void tearDown(void)
|
|
67
67
|
{
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
endPutcharSpy(); /* Stop suppressing test output */
|
|
69
|
+
if (SetToOneToFailInTearDown == 1)
|
|
70
|
+
{
|
|
71
|
+
/* These will be skipped internally if already failed/ignored */
|
|
72
|
+
TEST_FAIL_MESSAGE("<= Failed in tearDown");
|
|
73
|
+
TEST_IGNORE_MESSAGE("<= Ignored in tearDown");
|
|
74
|
+
}
|
|
75
|
+
if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0))
|
|
76
|
+
{
|
|
77
|
+
UnityPrint(": [[[[ Test Should Have Passed But Did Not ]]]]");
|
|
78
|
+
UNITY_OUTPUT_CHAR('\n');
|
|
79
|
+
}
|
|
75
80
|
}
|
|
76
81
|
|
|
77
82
|
void testUnitySizeInitializationReminder(void)
|
|
@@ -94,7 +99,9 @@ void testUnitySizeInitializationReminder(void)
|
|
|
94
99
|
UNITY_COUNTER_TYPE TestIgnores;
|
|
95
100
|
UNITY_COUNTER_TYPE CurrentTestFailed;
|
|
96
101
|
UNITY_COUNTER_TYPE CurrentTestIgnored;
|
|
102
|
+
#ifndef UNITY_EXCLUDE_SETJMP_H
|
|
97
103
|
jmp_buf AbortFrame;
|
|
104
|
+
#endif
|
|
98
105
|
} _Expected_Unity;
|
|
99
106
|
#else
|
|
100
107
|
struct {
|
|
@@ -108,7 +115,9 @@ void testUnitySizeInitializationReminder(void)
|
|
|
108
115
|
UNITY_COUNTER_TYPE TestIgnores;
|
|
109
116
|
UNITY_COUNTER_TYPE CurrentTestFailed;
|
|
110
117
|
UNITY_COUNTER_TYPE CurrentTestIgnored;
|
|
118
|
+
#ifndef UNITY_EXCLUDE_SETJMP_H
|
|
111
119
|
jmp_buf AbortFrame;
|
|
120
|
+
#endif
|
|
112
121
|
} _Expected_Unity;
|
|
113
122
|
#endif
|
|
114
123
|
|
|
@@ -1510,6 +1519,61 @@ void testNotEqualStringArrayLengthZero(void)
|
|
|
1510
1519
|
VERIFY_FAILS_END
|
|
1511
1520
|
}
|
|
1512
1521
|
|
|
1522
|
+
void testEqualStringEachEqual(void)
|
|
1523
|
+
{
|
|
1524
|
+
const char *testStrings1[] = { "foo", "foo", "foo", "foo" };
|
|
1525
|
+
const char *testStrings2[] = { "boo", "boo", "boo", "zoo" };
|
|
1526
|
+
const char *testStrings3[] = { "", "", "", "" };
|
|
1527
|
+
|
|
1528
|
+
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings1, 4);
|
|
1529
|
+
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings1, 1);
|
|
1530
|
+
TEST_ASSERT_EACH_EQUAL_STRING("boo", testStrings2, 3);
|
|
1531
|
+
TEST_ASSERT_EACH_EQUAL_STRING("", testStrings3, 4);
|
|
1532
|
+
}
|
|
1533
|
+
|
|
1534
|
+
void testNotEqualStringEachEqual1(void)
|
|
1535
|
+
{
|
|
1536
|
+
const char *testStrings[] = { "foo", "foo", "foo", "moo" };
|
|
1537
|
+
|
|
1538
|
+
EXPECT_ABORT_BEGIN
|
|
1539
|
+
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
|
|
1540
|
+
VERIFY_FAILS_END
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1543
|
+
void testNotEqualStringEachEqual2(void)
|
|
1544
|
+
{
|
|
1545
|
+
const char *testStrings[] = { "boo", "foo", "foo", "foo" };
|
|
1546
|
+
|
|
1547
|
+
EXPECT_ABORT_BEGIN
|
|
1548
|
+
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
|
|
1549
|
+
VERIFY_FAILS_END
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
void testNotEqualStringEachEqual3(void)
|
|
1553
|
+
{
|
|
1554
|
+
const char *testStrings[] = { "foo", "foo", "foo", NULL };
|
|
1555
|
+
|
|
1556
|
+
EXPECT_ABORT_BEGIN
|
|
1557
|
+
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
|
|
1558
|
+
VERIFY_FAILS_END
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1561
|
+
void testNotEqualStringEachEqual4(void)
|
|
1562
|
+
{
|
|
1563
|
+
const char *testStrings[] = { "foo", "foo", "woo", "foo" };
|
|
1564
|
+
|
|
1565
|
+
EXPECT_ABORT_BEGIN
|
|
1566
|
+
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
|
|
1567
|
+
VERIFY_FAILS_END
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
void testNotEqualStringEachEqual5(void)
|
|
1571
|
+
{
|
|
1572
|
+
EXPECT_ABORT_BEGIN
|
|
1573
|
+
TEST_ASSERT_EACH_EQUAL_STRING("foo", NULL, 1);
|
|
1574
|
+
VERIFY_FAILS_END
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1513
1577
|
void testEqualMemory(void)
|
|
1514
1578
|
{
|
|
1515
1579
|
const char *testString = "whatever";
|
|
@@ -1632,6 +1696,65 @@ void testNotEqualIntArraysLengthZero(void)
|
|
|
1632
1696
|
VERIFY_FAILS_END
|
|
1633
1697
|
}
|
|
1634
1698
|
|
|
1699
|
+
void testEqualIntEachEqual(void)
|
|
1700
|
+
{
|
|
1701
|
+
int p0[] = {1, 1, 1, 1};
|
|
1702
|
+
int p1[] = {987, 987, 987, 987};
|
|
1703
|
+
int p2[] = {-2, -2, -2, -3};
|
|
1704
|
+
int p3[] = {1, 5, 600, 700};
|
|
1705
|
+
|
|
1706
|
+
TEST_ASSERT_EACH_EQUAL_INT(1, p0, 1);
|
|
1707
|
+
TEST_ASSERT_EACH_EQUAL_INT(1, p0, 4);
|
|
1708
|
+
TEST_ASSERT_EACH_EQUAL_INT(987, p1, 4);
|
|
1709
|
+
TEST_ASSERT_EACH_EQUAL_INT(-2, p2, 3);
|
|
1710
|
+
TEST_ASSERT_EACH_EQUAL_INT(1, p3, 1);
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1713
|
+
void testNotEqualIntEachEqualNullActual(void)
|
|
1714
|
+
{
|
|
1715
|
+
int* p1 = NULL;
|
|
1716
|
+
|
|
1717
|
+
EXPECT_ABORT_BEGIN
|
|
1718
|
+
TEST_ASSERT_EACH_EQUAL_INT(1, p1, 4);
|
|
1719
|
+
VERIFY_FAILS_END
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
void testNotEqualIntEachEqual1(void)
|
|
1723
|
+
{
|
|
1724
|
+
int p0[] = {1, 1, 1, -2};
|
|
1725
|
+
|
|
1726
|
+
EXPECT_ABORT_BEGIN
|
|
1727
|
+
TEST_ASSERT_EACH_EQUAL_INT(1, p0, 4);
|
|
1728
|
+
VERIFY_FAILS_END
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
void testNotEqualIntEachEqual2(void)
|
|
1732
|
+
{
|
|
1733
|
+
int p0[] = {-5, -5, -1, -5};
|
|
1734
|
+
|
|
1735
|
+
EXPECT_ABORT_BEGIN
|
|
1736
|
+
TEST_ASSERT_EACH_EQUAL_INT(-5, p0, 4);
|
|
1737
|
+
VERIFY_FAILS_END
|
|
1738
|
+
}
|
|
1739
|
+
|
|
1740
|
+
void testNotEqualIntEachEqual3(void)
|
|
1741
|
+
{
|
|
1742
|
+
int p0[] = {1, 88, 88, 88};
|
|
1743
|
+
|
|
1744
|
+
EXPECT_ABORT_BEGIN
|
|
1745
|
+
TEST_ASSERT_EACH_EQUAL_INT(88, p0, 4);
|
|
1746
|
+
VERIFY_FAILS_END
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
void testNotEqualEachEqualLengthZero(void)
|
|
1750
|
+
{
|
|
1751
|
+
UNITY_UINT32 p0[1] = {1};
|
|
1752
|
+
|
|
1753
|
+
EXPECT_ABORT_BEGIN
|
|
1754
|
+
TEST_ASSERT_EACH_EQUAL_INT(0, p0, 0);
|
|
1755
|
+
VERIFY_FAILS_END
|
|
1756
|
+
}
|
|
1757
|
+
|
|
1635
1758
|
void testEqualPtrArrays(void)
|
|
1636
1759
|
{
|
|
1637
1760
|
char A = 1;
|
|
@@ -1712,6 +1835,77 @@ void testNotEqualPtrArrays3(void)
|
|
|
1712
1835
|
VERIFY_FAILS_END
|
|
1713
1836
|
}
|
|
1714
1837
|
|
|
1838
|
+
void testEqualPtrEachEqual(void)
|
|
1839
|
+
{
|
|
1840
|
+
char A = 1;
|
|
1841
|
+
char B = 2;
|
|
1842
|
+
char C = 3;
|
|
1843
|
+
char* p0[] = {&A, &A, &A};
|
|
1844
|
+
char* p1[] = {&A, &B, &C, &A};
|
|
1845
|
+
char* p2[] = {&B, &B};
|
|
1846
|
+
char* p3[] = {&C};
|
|
1847
|
+
|
|
1848
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 1);
|
|
1849
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 3);
|
|
1850
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&A, p1, 1);
|
|
1851
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&B, p2, 2);
|
|
1852
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&C, p3, 1);
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
void testNotEqualPtrEachEqualNullExpected(void)
|
|
1856
|
+
{
|
|
1857
|
+
char A = 1;
|
|
1858
|
+
char B = 1;
|
|
1859
|
+
char* p0[] = {&A, &B};
|
|
1860
|
+
|
|
1861
|
+
EXPECT_ABORT_BEGIN
|
|
1862
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 2);
|
|
1863
|
+
VERIFY_FAILS_END
|
|
1864
|
+
}
|
|
1865
|
+
|
|
1866
|
+
void testNotEqualPtrEachEqualNullActual(void)
|
|
1867
|
+
{
|
|
1868
|
+
char A = 1;
|
|
1869
|
+
char** p0 = NULL;
|
|
1870
|
+
|
|
1871
|
+
EXPECT_ABORT_BEGIN
|
|
1872
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 2);
|
|
1873
|
+
VERIFY_FAILS_END
|
|
1874
|
+
}
|
|
1875
|
+
|
|
1876
|
+
void testNotEqualPtrEachEqual1(void)
|
|
1877
|
+
{
|
|
1878
|
+
char A = 1;
|
|
1879
|
+
char B = 1;
|
|
1880
|
+
char* p0[] = {&A, &A, &A, &B};
|
|
1881
|
+
|
|
1882
|
+
EXPECT_ABORT_BEGIN
|
|
1883
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 4);
|
|
1884
|
+
VERIFY_FAILS_END
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
void testNotEqualPtrEachEqual2(void)
|
|
1888
|
+
{
|
|
1889
|
+
char A = 1;
|
|
1890
|
+
char B = 1;
|
|
1891
|
+
char* p0[] = {&B, &B, &A, &B};
|
|
1892
|
+
|
|
1893
|
+
EXPECT_ABORT_BEGIN
|
|
1894
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&B, p0, 4);
|
|
1895
|
+
VERIFY_FAILS_END
|
|
1896
|
+
}
|
|
1897
|
+
|
|
1898
|
+
void testNotEqualPtrEachEqual3(void)
|
|
1899
|
+
{
|
|
1900
|
+
char A = 1;
|
|
1901
|
+
char B = 1;
|
|
1902
|
+
char* p0[] = {&A, &B, &B, &B};
|
|
1903
|
+
|
|
1904
|
+
EXPECT_ABORT_BEGIN
|
|
1905
|
+
TEST_ASSERT_EACH_EQUAL_PTR(&B, p0, 4);
|
|
1906
|
+
VERIFY_FAILS_END
|
|
1907
|
+
}
|
|
1908
|
+
|
|
1715
1909
|
void testEqualInt8Arrays(void)
|
|
1716
1910
|
{
|
|
1717
1911
|
UNITY_INT8 p0[] = {1, 8, 117, -2};
|
|
@@ -1736,6 +1930,29 @@ void testNotEqualInt8Arrays(void)
|
|
|
1736
1930
|
VERIFY_FAILS_END
|
|
1737
1931
|
}
|
|
1738
1932
|
|
|
1933
|
+
void testEqualInt8EachEqual(void)
|
|
1934
|
+
{
|
|
1935
|
+
UNITY_INT8 p0[] = {1, 1, 1, 1};
|
|
1936
|
+
UNITY_INT8 p1[] = {117, 117, 117, -2};
|
|
1937
|
+
UNITY_INT8 p2[] = {-1, -1, 117, 2};
|
|
1938
|
+
UNITY_INT8 p3[] = {1, 50, 60, 70};
|
|
1939
|
+
|
|
1940
|
+
TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 1);
|
|
1941
|
+
TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 4);
|
|
1942
|
+
TEST_ASSERT_EACH_EQUAL_INT8(117, p1, 3);
|
|
1943
|
+
TEST_ASSERT_EACH_EQUAL_INT8(-1, p2, 2);
|
|
1944
|
+
TEST_ASSERT_EACH_EQUAL_INT8(1, p3, 1);
|
|
1945
|
+
}
|
|
1946
|
+
|
|
1947
|
+
void testNotEqualInt8EachEqual(void)
|
|
1948
|
+
{
|
|
1949
|
+
UNITY_INT8 p0[] = {1, 8, 36, -2};
|
|
1950
|
+
|
|
1951
|
+
EXPECT_ABORT_BEGIN
|
|
1952
|
+
TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 2);
|
|
1953
|
+
VERIFY_FAILS_END
|
|
1954
|
+
}
|
|
1955
|
+
|
|
1739
1956
|
void testEqualUIntArrays(void)
|
|
1740
1957
|
{
|
|
1741
1958
|
unsigned int p0[] = {1, 8, 987, 65132u};
|
|
@@ -1780,6 +1997,47 @@ void testNotEqualUIntArrays3(void)
|
|
|
1780
1997
|
VERIFY_FAILS_END
|
|
1781
1998
|
}
|
|
1782
1999
|
|
|
2000
|
+
void testEqualUIntEachEqual(void)
|
|
2001
|
+
{
|
|
2002
|
+
unsigned int p0[] = {1, 1, 1, 1};
|
|
2003
|
+
unsigned int p1[] = {65132u, 65132u, 65132u, 65132u};
|
|
2004
|
+
unsigned int p2[] = {8, 8, 987, 2};
|
|
2005
|
+
unsigned int p3[] = {1, 500, 600, 700};
|
|
2006
|
+
|
|
2007
|
+
TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 1);
|
|
2008
|
+
TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 4);
|
|
2009
|
+
TEST_ASSERT_EACH_EQUAL_UINT(65132u, p1, 4);
|
|
2010
|
+
TEST_ASSERT_EACH_EQUAL_UINT(8, p2, 2);
|
|
2011
|
+
TEST_ASSERT_EACH_EQUAL_UINT(1, p3, 1);
|
|
2012
|
+
}
|
|
2013
|
+
|
|
2014
|
+
void testNotEqualUIntEachEqual1(void)
|
|
2015
|
+
{
|
|
2016
|
+
unsigned int p0[] = {1, 65132u, 65132u, 65132u};
|
|
2017
|
+
|
|
2018
|
+
EXPECT_ABORT_BEGIN
|
|
2019
|
+
TEST_ASSERT_EACH_EQUAL_UINT(65132u, p0, 4);
|
|
2020
|
+
VERIFY_FAILS_END
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
void testNotEqualUIntEachEqual2(void)
|
|
2024
|
+
{
|
|
2025
|
+
unsigned int p0[] = {987, 8, 987, 987};
|
|
2026
|
+
|
|
2027
|
+
EXPECT_ABORT_BEGIN
|
|
2028
|
+
TEST_ASSERT_EACH_EQUAL_UINT(987, p0, 4);
|
|
2029
|
+
VERIFY_FAILS_END
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
void testNotEqualUIntEachEqual3(void)
|
|
2033
|
+
{
|
|
2034
|
+
unsigned int p0[] = {1, 1, 1, 65132u};
|
|
2035
|
+
|
|
2036
|
+
EXPECT_ABORT_BEGIN
|
|
2037
|
+
TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 4);
|
|
2038
|
+
VERIFY_FAILS_END
|
|
2039
|
+
}
|
|
2040
|
+
|
|
1783
2041
|
void testEqualInt16Arrays(void)
|
|
1784
2042
|
{
|
|
1785
2043
|
UNITY_INT16 p0[] = {1, 8, 117, 3};
|
|
@@ -1804,6 +2062,29 @@ void testNotEqualInt16Arrays(void)
|
|
|
1804
2062
|
VERIFY_FAILS_END
|
|
1805
2063
|
}
|
|
1806
2064
|
|
|
2065
|
+
void testEqualInt16EachEqual(void)
|
|
2066
|
+
{
|
|
2067
|
+
UNITY_INT16 p0[] = {1, 1, 1, 1};
|
|
2068
|
+
UNITY_INT16 p1[] = {32111, 32111, 32111, 3};
|
|
2069
|
+
UNITY_INT16 p2[] = {-1, -1, -1, 2};
|
|
2070
|
+
UNITY_INT16 p3[] = {1, 50, 60, 70};
|
|
2071
|
+
|
|
2072
|
+
TEST_ASSERT_EACH_EQUAL_INT16(1, p0, 1);
|
|
2073
|
+
TEST_ASSERT_EACH_EQUAL_INT16(1, p0, 4);
|
|
2074
|
+
TEST_ASSERT_EACH_EQUAL_INT16(32111, p1, 3);
|
|
2075
|
+
TEST_ASSERT_EACH_EQUAL_INT16(-1, p2, 3);
|
|
2076
|
+
TEST_ASSERT_EACH_EQUAL_INT16(1, p3, 1);
|
|
2077
|
+
}
|
|
2078
|
+
|
|
2079
|
+
void testNotEqualInt16EachEqual(void)
|
|
2080
|
+
{
|
|
2081
|
+
UNITY_INT16 p0[] = {127, 127, 127, 3};
|
|
2082
|
+
|
|
2083
|
+
EXPECT_ABORT_BEGIN
|
|
2084
|
+
TEST_ASSERT_EACH_EQUAL_INT16(127, p0, 4);
|
|
2085
|
+
VERIFY_FAILS_END
|
|
2086
|
+
}
|
|
2087
|
+
|
|
1807
2088
|
void testEqualInt32Arrays(void)
|
|
1808
2089
|
{
|
|
1809
2090
|
UNITY_INT32 p0[] = {1, 8, 117, 3};
|
|
@@ -1828,6 +2109,29 @@ void testNotEqualInt32Arrays(void)
|
|
|
1828
2109
|
VERIFY_FAILS_END
|
|
1829
2110
|
}
|
|
1830
2111
|
|
|
2112
|
+
void testEqualInt32EachEqual(void)
|
|
2113
|
+
{
|
|
2114
|
+
UNITY_INT32 p0[] = {8, 8, 8, 8};
|
|
2115
|
+
UNITY_INT32 p1[] = {65537, 65537, 65537, 65537};
|
|
2116
|
+
UNITY_INT32 p2[] = {-3, -3, -3, 2};
|
|
2117
|
+
UNITY_INT32 p3[] = {1, 50, 60, 70};
|
|
2118
|
+
|
|
2119
|
+
TEST_ASSERT_EACH_EQUAL_INT32(8, p0, 1);
|
|
2120
|
+
TEST_ASSERT_EACH_EQUAL_INT32(8, p0, 4);
|
|
2121
|
+
TEST_ASSERT_EACH_EQUAL_INT32(65537, p1, 4);
|
|
2122
|
+
TEST_ASSERT_EACH_EQUAL_INT32(-3, p2, 3);
|
|
2123
|
+
TEST_ASSERT_EACH_EQUAL_INT32(1, p3, 1);
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
void testNotEqualInt32EachEqual(void)
|
|
2127
|
+
{
|
|
2128
|
+
UNITY_INT32 p0[] = {127, 8, 127, 127};
|
|
2129
|
+
|
|
2130
|
+
EXPECT_ABORT_BEGIN
|
|
2131
|
+
TEST_ASSERT_EACH_EQUAL_INT32(127, p0, 4);
|
|
2132
|
+
VERIFY_FAILS_END
|
|
2133
|
+
}
|
|
2134
|
+
|
|
1831
2135
|
void testEqualUINT8Arrays(void)
|
|
1832
2136
|
{
|
|
1833
2137
|
UNITY_UINT8 p0[] = {1, 8, 100, 127};
|
|
@@ -2095,10 +2399,10 @@ void testNotEqualHEX16Arrays3(void)
|
|
|
2095
2399
|
|
|
2096
2400
|
void testEqualHEX8Arrays(void)
|
|
2097
2401
|
{
|
|
2098
|
-
unsigned
|
|
2099
|
-
unsigned
|
|
2100
|
-
unsigned
|
|
2101
|
-
unsigned
|
|
2402
|
+
unsigned char p0[] = {1, 8, 254u, 123};
|
|
2403
|
+
unsigned char p1[] = {1, 8, 254u, 123};
|
|
2404
|
+
unsigned char p2[] = {1, 8, 254u, 2};
|
|
2405
|
+
unsigned char p3[] = {1, 23, 25, 26};
|
|
2102
2406
|
|
|
2103
2407
|
TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p0, 1);
|
|
2104
2408
|
TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p0, 4);
|
|
@@ -2137,115 +2441,467 @@ void testNotEqualHEX8Arrays3(void)
|
|
|
2137
2441
|
VERIFY_FAILS_END
|
|
2138
2442
|
}
|
|
2139
2443
|
|
|
2140
|
-
void
|
|
2444
|
+
void testEqualUINT8EachEqual(void)
|
|
2141
2445
|
{
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2446
|
+
UNITY_UINT8 p0[] = {127u, 127u, 127u, 127u};
|
|
2447
|
+
UNITY_UINT8 p1[] = {1u, 1u, 1u, 1u};
|
|
2448
|
+
UNITY_UINT8 p2[] = {128u, 128u, 128u, 2u};
|
|
2449
|
+
UNITY_UINT8 p3[] = {1u, 50u, 60u, 70u};
|
|
2146
2450
|
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2451
|
+
TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 1);
|
|
2452
|
+
TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 4);
|
|
2453
|
+
TEST_ASSERT_EACH_EQUAL_UINT8(1u, p1, 4);
|
|
2454
|
+
TEST_ASSERT_EACH_EQUAL_UINT8(128u, p2, 3);
|
|
2455
|
+
TEST_ASSERT_EACH_EQUAL_UINT8(1u, p3, 1);
|
|
2152
2456
|
}
|
|
2153
2457
|
|
|
2154
|
-
void
|
|
2458
|
+
void testNotEqualUINT8EachEqual1(void)
|
|
2155
2459
|
{
|
|
2156
|
-
|
|
2157
|
-
int p1[] = {1, 8, 987, 2};
|
|
2460
|
+
unsigned char p0[] = {127u, 127u, 128u, 127u};
|
|
2158
2461
|
|
|
2159
2462
|
EXPECT_ABORT_BEGIN
|
|
2160
|
-
|
|
2463
|
+
TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 4);
|
|
2161
2464
|
VERIFY_FAILS_END
|
|
2162
2465
|
}
|
|
2163
2466
|
|
|
2164
|
-
void
|
|
2467
|
+
void testNotEqualUINT8EachEqual2(void)
|
|
2165
2468
|
{
|
|
2166
|
-
|
|
2167
|
-
int* p1 = NULL;
|
|
2469
|
+
unsigned char p0[] = {1, 1, 1, 127u};
|
|
2168
2470
|
|
|
2169
2471
|
EXPECT_ABORT_BEGIN
|
|
2170
|
-
|
|
2472
|
+
TEST_ASSERT_EACH_EQUAL_UINT8(1, p0, 4);
|
|
2171
2473
|
VERIFY_FAILS_END
|
|
2172
2474
|
}
|
|
2173
2475
|
|
|
2174
|
-
void
|
|
2476
|
+
void testNotEqualUINT8EachEqual3(void)
|
|
2175
2477
|
{
|
|
2176
|
-
|
|
2177
|
-
int p1[] = {1, 8, 987, 2};
|
|
2478
|
+
unsigned char p0[] = {54u, 55u, 55u, 55u};
|
|
2178
2479
|
|
|
2179
2480
|
EXPECT_ABORT_BEGIN
|
|
2180
|
-
|
|
2481
|
+
TEST_ASSERT_EACH_EQUAL_UINT8(55u, p0, 4);
|
|
2181
2482
|
VERIFY_FAILS_END
|
|
2182
2483
|
}
|
|
2183
2484
|
|
|
2184
|
-
void
|
|
2485
|
+
void testEqualUINT16EachEqual(void)
|
|
2185
2486
|
{
|
|
2186
|
-
|
|
2187
|
-
|
|
2487
|
+
unsigned short p0[] = {65132u, 65132u, 65132u, 65132u};
|
|
2488
|
+
unsigned short p1[] = {987, 987, 987, 987};
|
|
2489
|
+
unsigned short p2[] = {1, 1, 1, 2};
|
|
2490
|
+
unsigned short p3[] = {1, 500, 600, 700};
|
|
2491
|
+
|
|
2492
|
+
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 1);
|
|
2493
|
+
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
|
|
2494
|
+
TEST_ASSERT_EACH_EQUAL_UINT16(987, p1, 4);
|
|
2495
|
+
TEST_ASSERT_EACH_EQUAL_UINT16(1, p2, 3);
|
|
2496
|
+
TEST_ASSERT_EACH_EQUAL_UINT16(1, p3, 1);
|
|
2497
|
+
}
|
|
2498
|
+
|
|
2499
|
+
void testNotEqualUINT16EachEqual1(void)
|
|
2500
|
+
{
|
|
2501
|
+
unsigned short p0[] = {1, 65132u, 65132u, 65132u};
|
|
2188
2502
|
|
|
2189
2503
|
EXPECT_ABORT_BEGIN
|
|
2190
|
-
|
|
2504
|
+
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
|
|
2191
2505
|
VERIFY_FAILS_END
|
|
2192
2506
|
}
|
|
2193
2507
|
|
|
2194
|
-
void
|
|
2508
|
+
void testNotEqualUINT16EachEqual2(void)
|
|
2195
2509
|
{
|
|
2196
|
-
|
|
2197
|
-
int p1[] = {1, 8, 986, -2};
|
|
2510
|
+
unsigned short p0[] = {65132u, 65132u, 987, 65132u};
|
|
2198
2511
|
|
|
2199
2512
|
EXPECT_ABORT_BEGIN
|
|
2200
|
-
|
|
2513
|
+
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
|
|
2201
2514
|
VERIFY_FAILS_END
|
|
2202
2515
|
}
|
|
2203
2516
|
|
|
2204
|
-
void
|
|
2517
|
+
void testNotEqualUINT16EachEqual3(void)
|
|
2205
2518
|
{
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
if (TEST_PROTECT())
|
|
2209
|
-
{
|
|
2210
|
-
mask |= 1;
|
|
2211
|
-
TEST_ABORT();
|
|
2212
|
-
}
|
|
2213
|
-
else
|
|
2214
|
-
{
|
|
2215
|
-
Unity.CurrentTestFailed = 0;
|
|
2216
|
-
mask |= 2;
|
|
2217
|
-
}
|
|
2519
|
+
unsigned short p0[] = {65132u, 65132u, 65132u, 65133u};
|
|
2218
2520
|
|
|
2219
|
-
|
|
2521
|
+
EXPECT_ABORT_BEGIN
|
|
2522
|
+
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
|
|
2523
|
+
VERIFY_FAILS_END
|
|
2220
2524
|
}
|
|
2221
2525
|
|
|
2222
|
-
void
|
|
2526
|
+
void testEqualUINT32EachEqual(void)
|
|
2223
2527
|
{
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
}
|
|
2528
|
+
UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
|
|
2529
|
+
UNITY_UINT32 p1[] = {987, 987, 987, 987};
|
|
2530
|
+
UNITY_UINT32 p2[] = {8, 8, 8, 2};
|
|
2531
|
+
UNITY_UINT32 p3[] = {1, 500, 600, 700};
|
|
2227
2532
|
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
#if USING_SPY_AS(UNITY_OUTPUT_CHAR)
|
|
2235
|
-
#define USING_OUTPUT_SPY // true only if UNITY_OUTPUT_CHAR = putcharSpy
|
|
2236
|
-
#endif
|
|
2533
|
+
TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 1);
|
|
2534
|
+
TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 4);
|
|
2535
|
+
TEST_ASSERT_EACH_EQUAL_UINT32(987, p1, 4);
|
|
2536
|
+
TEST_ASSERT_EACH_EQUAL_UINT32(8, p2, 3);
|
|
2537
|
+
TEST_ASSERT_EACH_EQUAL_UINT32(1, p3, 1);
|
|
2538
|
+
}
|
|
2237
2539
|
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
static char putcharSpyBuffer[SPY_BUFFER_MAX];
|
|
2242
|
-
#endif
|
|
2243
|
-
static int indexSpyBuffer;
|
|
2244
|
-
static int putcharSpyEnabled;
|
|
2540
|
+
void testNotEqualUINT32EachEqual1(void)
|
|
2541
|
+
{
|
|
2542
|
+
UNITY_UINT32 p0[] = {65132u, 65132u, 987, 65132u};
|
|
2245
2543
|
|
|
2246
|
-
|
|
2544
|
+
EXPECT_ABORT_BEGIN
|
|
2545
|
+
TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 4);
|
|
2546
|
+
VERIFY_FAILS_END
|
|
2547
|
+
}
|
|
2247
2548
|
|
|
2248
|
-
void
|
|
2549
|
+
void testNotEqualUINT32EachEqual2(void)
|
|
2550
|
+
{
|
|
2551
|
+
UNITY_UINT32 p0[] = {1, 987, 987, 987};
|
|
2552
|
+
|
|
2553
|
+
EXPECT_ABORT_BEGIN
|
|
2554
|
+
TEST_ASSERT_EACH_EQUAL_UINT32(987, p0, 4);
|
|
2555
|
+
VERIFY_FAILS_END
|
|
2556
|
+
}
|
|
2557
|
+
|
|
2558
|
+
void testNotEqualUINT32EachEqual3(void)
|
|
2559
|
+
{
|
|
2560
|
+
UNITY_UINT32 p0[] = {1, 1, 1, 65132u};
|
|
2561
|
+
|
|
2562
|
+
EXPECT_ABORT_BEGIN
|
|
2563
|
+
TEST_ASSERT_EACH_EQUAL_UINT32(1, p0, 4);
|
|
2564
|
+
VERIFY_FAILS_END
|
|
2565
|
+
}
|
|
2566
|
+
|
|
2567
|
+
void testEqualHEXEachEqual(void)
|
|
2568
|
+
{
|
|
2569
|
+
UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
|
|
2570
|
+
UNITY_UINT32 p1[] = {987, 987, 987, 987};
|
|
2571
|
+
UNITY_UINT32 p2[] = {8, 8, 8, 2};
|
|
2572
|
+
UNITY_UINT32 p3[] = {1, 500, 600, 700};
|
|
2573
|
+
|
|
2574
|
+
TEST_ASSERT_EACH_EQUAL_HEX(65132u, p0, 1);
|
|
2575
|
+
TEST_ASSERT_EACH_EQUAL_HEX(65132u, p0, 4);
|
|
2576
|
+
TEST_ASSERT_EACH_EQUAL_HEX(987, p1, 4);
|
|
2577
|
+
TEST_ASSERT_EACH_EQUAL_HEX(8, p2, 3);
|
|
2578
|
+
TEST_ASSERT_EACH_EQUAL_HEX(1, p3, 1);
|
|
2579
|
+
}
|
|
2580
|
+
|
|
2581
|
+
void testNotEqualHEXEachEqual1(void)
|
|
2582
|
+
{
|
|
2583
|
+
UNITY_UINT32 p0[] = {1, 65132u, 65132u, 65132u};
|
|
2584
|
+
|
|
2585
|
+
EXPECT_ABORT_BEGIN
|
|
2586
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
|
|
2587
|
+
VERIFY_FAILS_END
|
|
2588
|
+
}
|
|
2589
|
+
|
|
2590
|
+
void testNotEqualHEXEachEqual2(void)
|
|
2591
|
+
{
|
|
2592
|
+
UNITY_UINT32 p0[] = {987, 987, 987, 65132u};
|
|
2593
|
+
|
|
2594
|
+
EXPECT_ABORT_BEGIN
|
|
2595
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(987, p0, 4);
|
|
2596
|
+
VERIFY_FAILS_END
|
|
2597
|
+
}
|
|
2598
|
+
|
|
2599
|
+
void testNotEqualHEXEachEqual3(void)
|
|
2600
|
+
{
|
|
2601
|
+
UNITY_UINT32 p0[] = {8, 8, 987, 8};
|
|
2602
|
+
|
|
2603
|
+
EXPECT_ABORT_BEGIN
|
|
2604
|
+
TEST_ASSERT_EACH_EQUAL_HEX(8, p0, 4);
|
|
2605
|
+
VERIFY_FAILS_END
|
|
2606
|
+
}
|
|
2607
|
+
|
|
2608
|
+
void testEqualHEX32EachEqual(void)
|
|
2609
|
+
{
|
|
2610
|
+
UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
|
|
2611
|
+
UNITY_UINT32 p1[] = {987, 987, 987, 987};
|
|
2612
|
+
UNITY_UINT32 p2[] = {8, 8, 8, 2};
|
|
2613
|
+
UNITY_UINT32 p3[] = {1, 500, 600, 700};
|
|
2614
|
+
|
|
2615
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 1);
|
|
2616
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
|
|
2617
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(987, p1, 4);
|
|
2618
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(8, p2, 3);
|
|
2619
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(1, p3, 1);
|
|
2620
|
+
}
|
|
2621
|
+
|
|
2622
|
+
void testNotEqualHEX32EachEqual1(void)
|
|
2623
|
+
{
|
|
2624
|
+
UNITY_UINT32 p0[] = {65132u, 8, 65132u, 65132u};
|
|
2625
|
+
|
|
2626
|
+
EXPECT_ABORT_BEGIN
|
|
2627
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
|
|
2628
|
+
VERIFY_FAILS_END
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
void testNotEqualHEX32EachEqual2(void)
|
|
2632
|
+
{
|
|
2633
|
+
UNITY_UINT32 p0[] = {1, 987, 987, 987};
|
|
2634
|
+
|
|
2635
|
+
EXPECT_ABORT_BEGIN
|
|
2636
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(987, p0, 4);
|
|
2637
|
+
VERIFY_FAILS_END
|
|
2638
|
+
}
|
|
2639
|
+
|
|
2640
|
+
void testNotEqualHEX32EachEqual3(void)
|
|
2641
|
+
{
|
|
2642
|
+
UNITY_UINT32 p0[] = {8, 8, 8, 65132u};
|
|
2643
|
+
|
|
2644
|
+
EXPECT_ABORT_BEGIN
|
|
2645
|
+
TEST_ASSERT_EACH_EQUAL_HEX32(8, p0, 4);
|
|
2646
|
+
VERIFY_FAILS_END
|
|
2647
|
+
}
|
|
2648
|
+
|
|
2649
|
+
void testEqualHEX16EachEqual(void)
|
|
2650
|
+
{
|
|
2651
|
+
UNITY_UINT16 p0[] = {65132u, 65132u, 65132u, 65132u};
|
|
2652
|
+
UNITY_UINT16 p1[] = {987, 987, 987, 987};
|
|
2653
|
+
UNITY_UINT16 p2[] = {8, 8, 8, 2};
|
|
2654
|
+
UNITY_UINT16 p3[] = {1, 500, 600, 700};
|
|
2655
|
+
|
|
2656
|
+
TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 1);
|
|
2657
|
+
TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 4);
|
|
2658
|
+
TEST_ASSERT_EACH_EQUAL_HEX16(987, p1, 4);
|
|
2659
|
+
TEST_ASSERT_EACH_EQUAL_HEX16(8, p2, 3);
|
|
2660
|
+
TEST_ASSERT_EACH_EQUAL_HEX16(1, p3, 1);
|
|
2661
|
+
}
|
|
2662
|
+
|
|
2663
|
+
void testNotEqualHEX16EachEqual1(void)
|
|
2664
|
+
{
|
|
2665
|
+
unsigned short p0[] = {65132u, 65132u, 987, 65132u};
|
|
2666
|
+
|
|
2667
|
+
EXPECT_ABORT_BEGIN
|
|
2668
|
+
TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 4);
|
|
2669
|
+
VERIFY_FAILS_END
|
|
2670
|
+
}
|
|
2671
|
+
|
|
2672
|
+
void testNotEqualHEX16EachEqual2(void)
|
|
2673
|
+
{
|
|
2674
|
+
unsigned short p0[] = {1, 987, 987, 987};
|
|
2675
|
+
|
|
2676
|
+
EXPECT_ABORT_BEGIN
|
|
2677
|
+
TEST_ASSERT_EACH_EQUAL_HEX16(987, p0, 4);
|
|
2678
|
+
VERIFY_FAILS_END
|
|
2679
|
+
}
|
|
2680
|
+
|
|
2681
|
+
void testNotEqualHEX16EachEqual3(void)
|
|
2682
|
+
{
|
|
2683
|
+
unsigned short p0[] = {8, 8, 8, 65132u};
|
|
2684
|
+
|
|
2685
|
+
EXPECT_ABORT_BEGIN
|
|
2686
|
+
TEST_ASSERT_EACH_EQUAL_HEX16(8, p0, 4);
|
|
2687
|
+
VERIFY_FAILS_END
|
|
2688
|
+
}
|
|
2689
|
+
|
|
2690
|
+
void testEqualHEX8EachEqual(void)
|
|
2691
|
+
{
|
|
2692
|
+
unsigned char p0[] = {254u, 254u, 254u, 254u};
|
|
2693
|
+
unsigned char p1[] = {123, 123, 123, 123};
|
|
2694
|
+
unsigned char p2[] = {8, 8, 8, 2};
|
|
2695
|
+
unsigned char p3[] = {1, 23, 25, 26};
|
|
2696
|
+
|
|
2697
|
+
TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 1);
|
|
2698
|
+
TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 4);
|
|
2699
|
+
TEST_ASSERT_EACH_EQUAL_HEX8(123, p1, 4);
|
|
2700
|
+
TEST_ASSERT_EACH_EQUAL_HEX8(8, p2, 3);
|
|
2701
|
+
TEST_ASSERT_EACH_EQUAL_HEX8(1, p3, 1);
|
|
2702
|
+
}
|
|
2703
|
+
|
|
2704
|
+
void testNotEqualHEX8EachEqual1(void)
|
|
2705
|
+
{
|
|
2706
|
+
unsigned char p0[] = {253u, 253u, 254u, 253u};
|
|
2707
|
+
|
|
2708
|
+
EXPECT_ABORT_BEGIN
|
|
2709
|
+
TEST_ASSERT_EACH_EQUAL_HEX8(253u, p0, 4);
|
|
2710
|
+
VERIFY_FAILS_END
|
|
2711
|
+
}
|
|
2712
|
+
|
|
2713
|
+
void testNotEqualHEX8EachEqual2(void)
|
|
2714
|
+
{
|
|
2715
|
+
unsigned char p0[] = {254u, 254u, 254u, 253u};
|
|
2716
|
+
|
|
2717
|
+
EXPECT_ABORT_BEGIN
|
|
2718
|
+
TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 4);
|
|
2719
|
+
VERIFY_FAILS_END
|
|
2720
|
+
}
|
|
2721
|
+
|
|
2722
|
+
void testNotEqualHEX8EachEqual3(void)
|
|
2723
|
+
{
|
|
2724
|
+
unsigned char p0[] = {1, 8, 8, 8};
|
|
2725
|
+
|
|
2726
|
+
EXPECT_ABORT_BEGIN
|
|
2727
|
+
TEST_ASSERT_EACH_EQUAL_HEX8(8, p0, 4);
|
|
2728
|
+
VERIFY_FAILS_END
|
|
2729
|
+
}
|
|
2730
|
+
|
|
2731
|
+
void testEqualMemoryArrays(void)
|
|
2732
|
+
{
|
|
2733
|
+
int p0[] = {1, 8, 987, -2};
|
|
2734
|
+
int p1[] = {1, 8, 987, -2};
|
|
2735
|
+
int p2[] = {1, 8, 987, 2};
|
|
2736
|
+
int p3[] = {1, 500, 600, 700};
|
|
2737
|
+
|
|
2738
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, sizeof(int), 1);
|
|
2739
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, sizeof(int), 4);
|
|
2740
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
|
|
2741
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p2, sizeof(int), 3);
|
|
2742
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p3, sizeof(int), 1);
|
|
2743
|
+
}
|
|
2744
|
+
|
|
2745
|
+
void testNotEqualMemoryArraysExpectedNull(void)
|
|
2746
|
+
{
|
|
2747
|
+
int* p0 = NULL;
|
|
2748
|
+
int p1[] = {1, 8, 987, 2};
|
|
2749
|
+
|
|
2750
|
+
EXPECT_ABORT_BEGIN
|
|
2751
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
|
|
2752
|
+
VERIFY_FAILS_END
|
|
2753
|
+
}
|
|
2754
|
+
|
|
2755
|
+
void testNotEqualMemoryArraysActualNull(void)
|
|
2756
|
+
{
|
|
2757
|
+
int p0[] = {1, 8, 987, -2};
|
|
2758
|
+
int* p1 = NULL;
|
|
2759
|
+
|
|
2760
|
+
EXPECT_ABORT_BEGIN
|
|
2761
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
|
|
2762
|
+
VERIFY_FAILS_END
|
|
2763
|
+
}
|
|
2764
|
+
|
|
2765
|
+
void testNotEqualMemoryArrays1(void)
|
|
2766
|
+
{
|
|
2767
|
+
int p0[] = {1, 8, 987, -2};
|
|
2768
|
+
int p1[] = {1, 8, 987, 2};
|
|
2769
|
+
|
|
2770
|
+
EXPECT_ABORT_BEGIN
|
|
2771
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
|
|
2772
|
+
VERIFY_FAILS_END
|
|
2773
|
+
}
|
|
2774
|
+
|
|
2775
|
+
void testNotEqualMemoryArrays2(void)
|
|
2776
|
+
{
|
|
2777
|
+
int p0[] = {1, 8, 987, -2};
|
|
2778
|
+
int p1[] = {2, 8, 987, -2};
|
|
2779
|
+
|
|
2780
|
+
EXPECT_ABORT_BEGIN
|
|
2781
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
|
|
2782
|
+
VERIFY_FAILS_END
|
|
2783
|
+
}
|
|
2784
|
+
|
|
2785
|
+
void testNotEqualMemoryArrays3(void)
|
|
2786
|
+
{
|
|
2787
|
+
int p0[] = {1, 8, 987, -2};
|
|
2788
|
+
int p1[] = {1, 8, 986, -2};
|
|
2789
|
+
|
|
2790
|
+
EXPECT_ABORT_BEGIN
|
|
2791
|
+
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
|
|
2792
|
+
VERIFY_FAILS_END
|
|
2793
|
+
}
|
|
2794
|
+
|
|
2795
|
+
void testEqualMemoryEachEqual(void)
|
|
2796
|
+
{
|
|
2797
|
+
int p0[] = {1, 8, 987, -2};
|
|
2798
|
+
int p1[] = {1, 8, 987, -2, 1, 8, 987, -2};
|
|
2799
|
+
int p2[] = {8, 8, 8, 2};
|
|
2800
|
+
int p3[] = {8, 500, 600, 700};
|
|
2801
|
+
int v = 8;
|
|
2802
|
+
|
|
2803
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p0, sizeof(int)*4, 1);
|
|
2804
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 2);
|
|
2805
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 1);
|
|
2806
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(&v, p2, sizeof(int), 3);
|
|
2807
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(&v, p3, sizeof(int), 1);
|
|
2808
|
+
}
|
|
2809
|
+
|
|
2810
|
+
void testNotEqualMemoryEachEqualExpectedNull(void)
|
|
2811
|
+
{
|
|
2812
|
+
int* p0 = NULL;
|
|
2813
|
+
int p1[] = {1, 8, 987, 2};
|
|
2814
|
+
|
|
2815
|
+
EXPECT_ABORT_BEGIN
|
|
2816
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int), 4);
|
|
2817
|
+
VERIFY_FAILS_END
|
|
2818
|
+
}
|
|
2819
|
+
|
|
2820
|
+
void testNotEqualMemoryEachEqualActualNull(void)
|
|
2821
|
+
{
|
|
2822
|
+
int p0[] = {1, 8, 987, -2};
|
|
2823
|
+
int* p1 = NULL;
|
|
2824
|
+
|
|
2825
|
+
EXPECT_ABORT_BEGIN
|
|
2826
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int), 4);
|
|
2827
|
+
VERIFY_FAILS_END
|
|
2828
|
+
}
|
|
2829
|
+
|
|
2830
|
+
void testNotEqualMemoryEachEqual1(void)
|
|
2831
|
+
{
|
|
2832
|
+
int p0[] = {1, 8, 987, -2};
|
|
2833
|
+
int p1[] = {9, 8, 987, -2, 1, 8, 987, -2, 1, 8, 987, -2};
|
|
2834
|
+
|
|
2835
|
+
EXPECT_ABORT_BEGIN
|
|
2836
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
|
|
2837
|
+
VERIFY_FAILS_END
|
|
2838
|
+
}
|
|
2839
|
+
|
|
2840
|
+
void testNotEqualMemoryEachEqual2(void)
|
|
2841
|
+
{
|
|
2842
|
+
int p0[] = {1, 8, 987, -2};
|
|
2843
|
+
int p1[] = {1, 8, 987, -2, 1, 8, 987, -2, 1, 8, 987, 9};
|
|
2844
|
+
|
|
2845
|
+
EXPECT_ABORT_BEGIN
|
|
2846
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
|
|
2847
|
+
VERIFY_FAILS_END
|
|
2848
|
+
}
|
|
2849
|
+
|
|
2850
|
+
void testNotEqualMemoryEachEqual3(void)
|
|
2851
|
+
{
|
|
2852
|
+
int p0[] = {1, 8, 987, -2};
|
|
2853
|
+
int p1[] = {1, 8, 987, -2, 1, 9, 987, -2, 1, 8, 987, -2};
|
|
2854
|
+
|
|
2855
|
+
EXPECT_ABORT_BEGIN
|
|
2856
|
+
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
|
|
2857
|
+
VERIFY_FAILS_END
|
|
2858
|
+
}
|
|
2859
|
+
|
|
2860
|
+
void testProtection(void)
|
|
2861
|
+
{
|
|
2862
|
+
volatile int mask = 0;
|
|
2863
|
+
|
|
2864
|
+
if (TEST_PROTECT())
|
|
2865
|
+
{
|
|
2866
|
+
mask |= 1;
|
|
2867
|
+
TEST_ABORT();
|
|
2868
|
+
}
|
|
2869
|
+
else
|
|
2870
|
+
{
|
|
2871
|
+
Unity.CurrentTestFailed = 0;
|
|
2872
|
+
mask |= 2;
|
|
2873
|
+
}
|
|
2874
|
+
|
|
2875
|
+
TEST_ASSERT_EQUAL(3, mask);
|
|
2876
|
+
}
|
|
2877
|
+
|
|
2878
|
+
void testIgnoredAndThenFailInTearDown(void)
|
|
2879
|
+
{
|
|
2880
|
+
SetToOneToFailInTearDown = 1;
|
|
2881
|
+
TEST_IGNORE();
|
|
2882
|
+
}
|
|
2883
|
+
|
|
2884
|
+
// Tricky series of macros to set USING_OUTPUT_SPY
|
|
2885
|
+
#define USING_SPY_AS(a) EXPAND_AND_USE_2ND(ASSIGN_VALUE(a), 0)
|
|
2886
|
+
#define ASSIGN_VALUE(a) VAL_##a
|
|
2887
|
+
#define VAL_putcharSpy 0, 1
|
|
2888
|
+
#define EXPAND_AND_USE_2ND(a, b) SECOND_PARAM(a, b, throwaway)
|
|
2889
|
+
#define SECOND_PARAM(a, b, ...) b
|
|
2890
|
+
#if USING_SPY_AS(UNITY_OUTPUT_CHAR)
|
|
2891
|
+
#define USING_OUTPUT_SPY // true only if UNITY_OUTPUT_CHAR = putcharSpy
|
|
2892
|
+
#endif
|
|
2893
|
+
|
|
2894
|
+
#ifdef USING_OUTPUT_SPY
|
|
2895
|
+
#include <stdio.h>
|
|
2896
|
+
#define SPY_BUFFER_MAX 40
|
|
2897
|
+
static char putcharSpyBuffer[SPY_BUFFER_MAX];
|
|
2898
|
+
#endif
|
|
2899
|
+
static int indexSpyBuffer;
|
|
2900
|
+
static int putcharSpyEnabled;
|
|
2901
|
+
|
|
2902
|
+
void startPutcharSpy(void) {indexSpyBuffer = 0; putcharSpyEnabled = 1;}
|
|
2903
|
+
|
|
2904
|
+
void endPutcharSpy(void) {putcharSpyEnabled = 0;}
|
|
2249
2905
|
|
|
2250
2906
|
char* getBufferPutcharSpy(void)
|
|
2251
2907
|
{
|
|
@@ -2265,29 +2921,48 @@ void putcharSpy(int c)
|
|
|
2265
2921
|
if (indexSpyBuffer < SPY_BUFFER_MAX - 1)
|
|
2266
2922
|
putcharSpyBuffer[indexSpyBuffer++] = (char)c;
|
|
2267
2923
|
} else
|
|
2268
|
-
|
|
2924
|
+
putchar((char)c);
|
|
2269
2925
|
#endif
|
|
2270
2926
|
}
|
|
2271
2927
|
|
|
2272
2928
|
void testFailureCountIncrementsAndIsReturnedAtEnd(void)
|
|
2273
2929
|
{
|
|
2930
|
+
UNITY_UINT savedFailures = Unity.TestFailures;
|
|
2274
2931
|
Unity.CurrentTestFailed = 1;
|
|
2275
2932
|
startPutcharSpy(); // Suppress output
|
|
2276
2933
|
UnityConcludeTest();
|
|
2277
|
-
|
|
2934
|
+
endPutcharSpy();
|
|
2935
|
+
TEST_ASSERT_EQUAL(savedFailures + 1, Unity.TestFailures);
|
|
2278
2936
|
|
|
2937
|
+
startPutcharSpy(); // Suppress output
|
|
2279
2938
|
int failures = UnityEnd();
|
|
2280
2939
|
Unity.TestFailures--;
|
|
2281
2940
|
endPutcharSpy();
|
|
2282
|
-
TEST_ASSERT_EQUAL(1, failures);
|
|
2941
|
+
TEST_ASSERT_EQUAL(savedFailures + 1, failures);
|
|
2283
2942
|
}
|
|
2284
2943
|
|
|
2285
2944
|
void testCstringsEscapeSequence(void)
|
|
2286
2945
|
{
|
|
2946
|
+
#ifndef USING_OUTPUT_SPY
|
|
2947
|
+
TEST_IGNORE();
|
|
2948
|
+
#else
|
|
2287
2949
|
startPutcharSpy();
|
|
2288
2950
|
UnityPrint("\x16\x10");
|
|
2289
2951
|
endPutcharSpy();
|
|
2290
2952
|
TEST_ASSERT_EQUAL_STRING("\\x16\\x10", getBufferPutcharSpy());
|
|
2953
|
+
#endif
|
|
2954
|
+
}
|
|
2955
|
+
|
|
2956
|
+
void testHexPrintsUpToMaxNumberOfNibbles(void)
|
|
2957
|
+
{
|
|
2958
|
+
#ifndef USING_OUTPUT_SPY
|
|
2959
|
+
TEST_IGNORE();
|
|
2960
|
+
#else
|
|
2961
|
+
startPutcharSpy();
|
|
2962
|
+
UnityPrintNumberHex(0xBEE, 21);
|
|
2963
|
+
endPutcharSpy();
|
|
2964
|
+
TEST_ASSERT_EQUAL_INT(sizeof(UNITY_INT)*2, strlen(getBufferPutcharSpy()));
|
|
2965
|
+
#endif
|
|
2291
2966
|
}
|
|
2292
2967
|
|
|
2293
2968
|
#define TEST_ASSERT_EQUAL_PRINT_NUMBERS(expected, actual) { \
|
|
@@ -3029,201 +3704,520 @@ void testFloatIsNotDeterminate1(void)
|
|
|
3029
3704
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3030
3705
|
TEST_IGNORE();
|
|
3031
3706
|
#else
|
|
3032
|
-
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(1.0f / f_zero);
|
|
3033
|
-
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-1.0f / f_zero);
|
|
3034
|
-
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(0.0f / f_zero);
|
|
3707
|
+
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(1.0f / f_zero);
|
|
3708
|
+
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-1.0f / f_zero);
|
|
3709
|
+
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(0.0f / f_zero);
|
|
3710
|
+
#endif
|
|
3711
|
+
}
|
|
3712
|
+
|
|
3713
|
+
void testFloatIsNotDeterminate2(void)
|
|
3714
|
+
{
|
|
3715
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3716
|
+
TEST_IGNORE();
|
|
3717
|
+
#else
|
|
3718
|
+
EXPECT_ABORT_BEGIN
|
|
3719
|
+
TEST_ASSERT_FLOAT_IS_DETERMINATE(-1.0f / f_zero);
|
|
3720
|
+
VERIFY_FAILS_END
|
|
3721
|
+
#endif
|
|
3722
|
+
}
|
|
3723
|
+
|
|
3724
|
+
void testFloatTraitFailsOnInvalidTrait(void)
|
|
3725
|
+
{
|
|
3726
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3727
|
+
TEST_IGNORE();
|
|
3728
|
+
#else
|
|
3729
|
+
EXPECT_ABORT_BEGIN
|
|
3730
|
+
UnityAssertFloatSpecial(1.0f, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT);
|
|
3731
|
+
VERIFY_FAILS_END
|
|
3732
|
+
#endif
|
|
3733
|
+
}
|
|
3734
|
+
|
|
3735
|
+
|
|
3736
|
+
void testEqualFloatArrays(void)
|
|
3737
|
+
{
|
|
3738
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3739
|
+
TEST_IGNORE();
|
|
3740
|
+
#else
|
|
3741
|
+
float p0[] = {1.0f, -8.0f, 25.4f, -0.123f};
|
|
3742
|
+
float p1[] = {1.0f, -8.0f, 25.4f, -0.123f};
|
|
3743
|
+
float p2[] = {1.0f, -8.0f, 25.4f, -0.2f};
|
|
3744
|
+
float p3[] = {1.0f, -23.0f, 25.0f, -0.26f};
|
|
3745
|
+
|
|
3746
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 1);
|
|
3747
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 4);
|
|
3748
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3749
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p2, 3);
|
|
3750
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p3, 1);
|
|
3751
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(NULL, NULL, 1);
|
|
3752
|
+
#endif
|
|
3753
|
+
}
|
|
3754
|
+
|
|
3755
|
+
void testNotEqualFloatArraysExpectedNull(void)
|
|
3756
|
+
{
|
|
3757
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3758
|
+
TEST_IGNORE();
|
|
3759
|
+
#else
|
|
3760
|
+
float* p0 = NULL;
|
|
3761
|
+
float p1[] = {1.0f, 8.0f, 25.4f, 0.252f};
|
|
3762
|
+
|
|
3763
|
+
EXPECT_ABORT_BEGIN
|
|
3764
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3765
|
+
VERIFY_FAILS_END
|
|
3766
|
+
#endif
|
|
3767
|
+
}
|
|
3768
|
+
|
|
3769
|
+
void testNotEqualFloatArraysActualNull(void)
|
|
3770
|
+
{
|
|
3771
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3772
|
+
TEST_IGNORE();
|
|
3773
|
+
#else
|
|
3774
|
+
float p0[] = {1.0f, 8.0f, 25.4f, 0.253f};
|
|
3775
|
+
float* p1 = NULL;
|
|
3776
|
+
|
|
3777
|
+
EXPECT_ABORT_BEGIN
|
|
3778
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3779
|
+
VERIFY_FAILS_END
|
|
3780
|
+
#endif
|
|
3781
|
+
}
|
|
3782
|
+
|
|
3783
|
+
void testNotEqualFloatArrays1(void)
|
|
3784
|
+
{
|
|
3785
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3786
|
+
TEST_IGNORE();
|
|
3787
|
+
#else
|
|
3788
|
+
float p0[] = {1.0f, 8.0f, 25.4f, 0.253f};
|
|
3789
|
+
float p1[] = {1.0f, 8.0f, 25.4f, 0.252f};
|
|
3790
|
+
|
|
3791
|
+
EXPECT_ABORT_BEGIN
|
|
3792
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3793
|
+
VERIFY_FAILS_END
|
|
3794
|
+
#endif
|
|
3795
|
+
}
|
|
3796
|
+
|
|
3797
|
+
void testNotEqualFloatArrays2(void)
|
|
3798
|
+
{
|
|
3799
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3800
|
+
TEST_IGNORE();
|
|
3801
|
+
#else
|
|
3802
|
+
float p0[] = {1.0f, 8.0f, 25.4f, 0.253f};
|
|
3803
|
+
float p1[] = {2.0f, 8.0f, 25.4f, 0.253f};
|
|
3804
|
+
|
|
3805
|
+
EXPECT_ABORT_BEGIN
|
|
3806
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3807
|
+
VERIFY_FAILS_END
|
|
3808
|
+
#endif
|
|
3809
|
+
}
|
|
3810
|
+
|
|
3811
|
+
void testNotEqualFloatArrays3(void)
|
|
3812
|
+
{
|
|
3813
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3814
|
+
TEST_IGNORE();
|
|
3815
|
+
#else
|
|
3816
|
+
float p0[] = {1.0f, 8.0f, 25.4f, 0.253f};
|
|
3817
|
+
float p1[] = {1.0f, 8.0f, 25.5f, 0.253f};
|
|
3818
|
+
|
|
3819
|
+
EXPECT_ABORT_BEGIN
|
|
3820
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3821
|
+
VERIFY_FAILS_END
|
|
3822
|
+
#endif
|
|
3823
|
+
}
|
|
3824
|
+
|
|
3825
|
+
void testNotEqualFloatArraysNegative1(void)
|
|
3826
|
+
{
|
|
3827
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3828
|
+
TEST_IGNORE();
|
|
3829
|
+
#else
|
|
3830
|
+
float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f};
|
|
3831
|
+
float p1[] = {-1.0f, -8.0f, -25.4f, -0.252f};
|
|
3832
|
+
|
|
3833
|
+
EXPECT_ABORT_BEGIN
|
|
3834
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3835
|
+
VERIFY_FAILS_END
|
|
3836
|
+
#endif
|
|
3837
|
+
}
|
|
3838
|
+
|
|
3839
|
+
void testNotEqualFloatArraysNegative2(void)
|
|
3840
|
+
{
|
|
3841
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3842
|
+
TEST_IGNORE();
|
|
3843
|
+
#else
|
|
3844
|
+
float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f};
|
|
3845
|
+
float p1[] = {-2.0f, -8.0f, -25.4f, -0.253f};
|
|
3846
|
+
|
|
3847
|
+
EXPECT_ABORT_BEGIN
|
|
3848
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3849
|
+
VERIFY_FAILS_END
|
|
3850
|
+
#endif
|
|
3851
|
+
}
|
|
3852
|
+
|
|
3853
|
+
void testNotEqualFloatArraysNegative3(void)
|
|
3854
|
+
{
|
|
3855
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3856
|
+
TEST_IGNORE();
|
|
3857
|
+
#else
|
|
3858
|
+
float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f};
|
|
3859
|
+
float p1[] = {-1.0f, -8.0f, -25.5f, -0.253f};
|
|
3860
|
+
|
|
3861
|
+
EXPECT_ABORT_BEGIN
|
|
3862
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3863
|
+
VERIFY_FAILS_END
|
|
3864
|
+
#endif
|
|
3865
|
+
}
|
|
3866
|
+
|
|
3867
|
+
void testEqualFloatArraysNaN(void)
|
|
3868
|
+
{
|
|
3869
|
+
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3870
|
+
TEST_IGNORE();
|
|
3871
|
+
#else
|
|
3872
|
+
float p0[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
|
|
3873
|
+
float p1[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
|
|
3874
|
+
|
|
3875
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3035
3876
|
#endif
|
|
3036
3877
|
}
|
|
3037
3878
|
|
|
3038
|
-
void
|
|
3879
|
+
void testEqualFloatArraysInf(void)
|
|
3039
3880
|
{
|
|
3040
3881
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3041
3882
|
TEST_IGNORE();
|
|
3042
3883
|
#else
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3884
|
+
float p0[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
|
|
3885
|
+
float p1[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
|
|
3886
|
+
|
|
3887
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3046
3888
|
#endif
|
|
3047
3889
|
}
|
|
3048
3890
|
|
|
3049
|
-
void
|
|
3891
|
+
void testNotEqualFloatArraysLengthZero(void)
|
|
3050
3892
|
{
|
|
3051
3893
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3052
3894
|
TEST_IGNORE();
|
|
3053
3895
|
#else
|
|
3896
|
+
float p0[1] = {0.0f};
|
|
3897
|
+
float p1[1] = {0.0f};
|
|
3898
|
+
|
|
3054
3899
|
EXPECT_ABORT_BEGIN
|
|
3055
|
-
|
|
3900
|
+
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 0);
|
|
3056
3901
|
VERIFY_FAILS_END
|
|
3057
3902
|
#endif
|
|
3058
3903
|
}
|
|
3059
3904
|
|
|
3060
|
-
|
|
3061
|
-
void testEqualFloatArrays(void)
|
|
3905
|
+
void testEqualFloatEachEqual(void)
|
|
3062
3906
|
{
|
|
3063
3907
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3064
3908
|
TEST_IGNORE();
|
|
3065
3909
|
#else
|
|
3066
|
-
float p0[] = {1.0f,
|
|
3067
|
-
float p1[] = {
|
|
3068
|
-
float p2[] = {
|
|
3910
|
+
float p0[] = {1.0f, 1.0f, 1.0f, 1.0f};
|
|
3911
|
+
float p1[] = {-0.123f, -0.123f, -0.123f, -0.123f};
|
|
3912
|
+
float p2[] = {25.4f, 25.4f, 25.4f, -0.2f};
|
|
3069
3913
|
float p3[] = {1.0f, -23.0f, 25.0f, -0.26f};
|
|
3070
3914
|
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
TEST_ASSERT_EQUAL_FLOAT_ARRAY(NULL, NULL, 1);
|
|
3915
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 1);
|
|
3916
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 4);
|
|
3917
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(-0.123f, p1, 4);
|
|
3918
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(25.4f, p2, 3);
|
|
3919
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p3, 1);
|
|
3077
3920
|
#endif
|
|
3078
3921
|
}
|
|
3079
3922
|
|
|
3080
|
-
void
|
|
3923
|
+
void testNotEqualFloatEachEqualActualNull(void)
|
|
3081
3924
|
{
|
|
3082
3925
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3083
3926
|
TEST_IGNORE();
|
|
3084
3927
|
#else
|
|
3085
3928
|
float* p0 = NULL;
|
|
3086
|
-
float p1[] = {1.0f, 8.0f, 25.4f, 0.252f};
|
|
3087
3929
|
|
|
3088
3930
|
EXPECT_ABORT_BEGIN
|
|
3089
|
-
|
|
3931
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(5, p0, 4);
|
|
3090
3932
|
VERIFY_FAILS_END
|
|
3091
3933
|
#endif
|
|
3092
3934
|
}
|
|
3093
3935
|
|
|
3094
|
-
void
|
|
3936
|
+
void testNotEqualFloatEachEqual1(void)
|
|
3095
3937
|
{
|
|
3096
3938
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3097
3939
|
TEST_IGNORE();
|
|
3098
3940
|
#else
|
|
3099
|
-
float p0[] = {
|
|
3100
|
-
float* p1 = NULL;
|
|
3941
|
+
float p0[] = {0.253f, 8.0f, 0.253f, 0.253f};
|
|
3101
3942
|
|
|
3102
3943
|
EXPECT_ABORT_BEGIN
|
|
3103
|
-
|
|
3944
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(0.253f, p0, 4);
|
|
3104
3945
|
VERIFY_FAILS_END
|
|
3105
3946
|
#endif
|
|
3106
3947
|
}
|
|
3107
3948
|
|
|
3108
|
-
void
|
|
3949
|
+
void testNotEqualFloatEachEqual2(void)
|
|
3109
3950
|
{
|
|
3110
3951
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3111
3952
|
TEST_IGNORE();
|
|
3112
3953
|
#else
|
|
3113
|
-
float p0[] = {
|
|
3114
|
-
float p1[] = {1.0f, 8.0f, 25.4f, 0.252f};
|
|
3954
|
+
float p0[] = {8.0f, 8.0f, 8.0f, 0.253f};
|
|
3115
3955
|
|
|
3116
3956
|
EXPECT_ABORT_BEGIN
|
|
3117
|
-
|
|
3957
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(8.0f, p0, 4);
|
|
3118
3958
|
VERIFY_FAILS_END
|
|
3119
3959
|
#endif
|
|
3120
3960
|
}
|
|
3121
3961
|
|
|
3122
|
-
void
|
|
3962
|
+
void testNotEqualFloatEachEqual3(void)
|
|
3123
3963
|
{
|
|
3124
3964
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3125
3965
|
TEST_IGNORE();
|
|
3126
3966
|
#else
|
|
3127
|
-
float p0[] = {1.0f,
|
|
3128
|
-
float p1[] = {2.0f, 8.0f, 25.4f, 0.253f};
|
|
3967
|
+
float p0[] = {1.0f, 1.0f, 1.0f, 0.253f};
|
|
3129
3968
|
|
|
3130
3969
|
EXPECT_ABORT_BEGIN
|
|
3131
|
-
|
|
3970
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 4);
|
|
3132
3971
|
VERIFY_FAILS_END
|
|
3133
3972
|
#endif
|
|
3134
3973
|
}
|
|
3135
3974
|
|
|
3136
|
-
void
|
|
3975
|
+
void testNotEqualFloatEachEqualNegative1(void)
|
|
3137
3976
|
{
|
|
3138
3977
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3139
3978
|
TEST_IGNORE();
|
|
3140
3979
|
#else
|
|
3141
|
-
float p0[] = {1.0f,
|
|
3142
|
-
float p1[] = {1.0f, 8.0f, 25.5f, 0.253f};
|
|
3980
|
+
float p0[] = {-1.0f, -0.253f, -0.253f, -0.253f};
|
|
3143
3981
|
|
|
3144
3982
|
EXPECT_ABORT_BEGIN
|
|
3145
|
-
|
|
3983
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(-0.253f, p0, 4);
|
|
3146
3984
|
VERIFY_FAILS_END
|
|
3147
3985
|
#endif
|
|
3148
3986
|
}
|
|
3149
3987
|
|
|
3150
|
-
void
|
|
3988
|
+
void testNotEqualFloatEachEqualNegative2(void)
|
|
3151
3989
|
{
|
|
3152
3990
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3153
3991
|
TEST_IGNORE();
|
|
3154
3992
|
#else
|
|
3155
|
-
float p0[] = {-
|
|
3156
|
-
float p1[] = {-1.0f, -8.0f, -25.4f, -0.252f};
|
|
3993
|
+
float p0[] = {-25.4f, -8.0f, -25.4f, -25.4f};
|
|
3157
3994
|
|
|
3158
3995
|
EXPECT_ABORT_BEGIN
|
|
3159
|
-
|
|
3996
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(-25.4f, p0, 4);
|
|
3160
3997
|
VERIFY_FAILS_END
|
|
3161
3998
|
#endif
|
|
3162
3999
|
}
|
|
3163
4000
|
|
|
3164
|
-
void
|
|
4001
|
+
void testNotEqualFloatEachEqualNegative3(void)
|
|
3165
4002
|
{
|
|
3166
4003
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3167
4004
|
TEST_IGNORE();
|
|
3168
4005
|
#else
|
|
3169
|
-
float p0[] = {-
|
|
3170
|
-
float p1[] = {-2.0f, -8.0f, -25.4f, -0.253f};
|
|
4006
|
+
float p0[] = {-8.0f, -8.0f, -8.0f, -0.253f};
|
|
3171
4007
|
|
|
3172
4008
|
EXPECT_ABORT_BEGIN
|
|
3173
|
-
|
|
4009
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(-8.0f, p0, 4);
|
|
3174
4010
|
VERIFY_FAILS_END
|
|
3175
4011
|
#endif
|
|
3176
4012
|
}
|
|
3177
4013
|
|
|
3178
|
-
void
|
|
4014
|
+
void testEqualFloatEachEqualNaN(void)
|
|
3179
4015
|
{
|
|
3180
4016
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3181
4017
|
TEST_IGNORE();
|
|
3182
4018
|
#else
|
|
3183
|
-
float p0[] = {
|
|
3184
|
-
float p1[] = {-1.0f, -8.0f, -25.5f, -0.253f};
|
|
4019
|
+
float p0[] = {0.0f / f_zero, 0.0f / f_zero, 0.0f / f_zero, 0.0f / f_zero};
|
|
3185
4020
|
|
|
3186
|
-
|
|
3187
|
-
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
|
3188
|
-
VERIFY_FAILS_END
|
|
4021
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(0.0f / f_zero, p0, 4);
|
|
3189
4022
|
#endif
|
|
3190
4023
|
}
|
|
3191
4024
|
|
|
3192
|
-
void
|
|
4025
|
+
void testEqualFloatEachEqualInf(void)
|
|
3193
4026
|
{
|
|
3194
4027
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3195
4028
|
TEST_IGNORE();
|
|
3196
4029
|
#else
|
|
3197
|
-
float p0[] = {1.0f,
|
|
3198
|
-
float p1[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
|
|
4030
|
+
float p0[] = {1.0f / f_zero, 1.0f / f_zero, 25.4f, 0.253f};
|
|
3199
4031
|
|
|
3200
|
-
|
|
4032
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f / f_zero, p0, 2);
|
|
3201
4033
|
#endif
|
|
3202
4034
|
}
|
|
3203
4035
|
|
|
3204
|
-
void
|
|
4036
|
+
void testNotEqualFloatEachEqualLengthZero(void)
|
|
3205
4037
|
{
|
|
3206
4038
|
#ifdef UNITY_EXCLUDE_FLOAT
|
|
3207
4039
|
TEST_IGNORE();
|
|
3208
4040
|
#else
|
|
3209
|
-
float p0[] = {
|
|
3210
|
-
float p1[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
|
|
4041
|
+
float p0[1] = {0.0f};
|
|
3211
4042
|
|
|
3212
|
-
|
|
4043
|
+
EXPECT_ABORT_BEGIN
|
|
4044
|
+
TEST_ASSERT_EACH_EQUAL_FLOAT(0.0f, p0, 0);
|
|
4045
|
+
VERIFY_FAILS_END
|
|
3213
4046
|
#endif
|
|
3214
4047
|
}
|
|
3215
4048
|
|
|
3216
|
-
|
|
4049
|
+
#define TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, actual) { \
|
|
4050
|
+
startPutcharSpy(); UnityPrintFloat((actual)); endPutcharSpy(); \
|
|
4051
|
+
TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy()); \
|
|
4052
|
+
}
|
|
4053
|
+
|
|
4054
|
+
void testFloatPrinting(void)
|
|
3217
4055
|
{
|
|
3218
|
-
#
|
|
4056
|
+
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || !defined(USING_OUTPUT_SPY)
|
|
3219
4057
|
TEST_IGNORE();
|
|
3220
4058
|
#else
|
|
3221
|
-
|
|
3222
|
-
|
|
4059
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.0", 0.0f);
|
|
4060
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.000000...", 0.000000499f);
|
|
4061
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.000001", 0.00000050000005f);
|
|
4062
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.100469", 0.100469499f);
|
|
4063
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0", 0.9999995f); /*Rounding to int place*/
|
|
4064
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0", 1.0f);
|
|
4065
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.25", 1.25f);
|
|
4066
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("7.999999", 7.999999f); /*Not rounding*/
|
|
4067
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("16.000002", 16.000002f);
|
|
4068
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("16.000004", 16.000004f);
|
|
4069
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("16.000006", 16.000006f);
|
|
4070
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("4294967040.0", 4294967040.0f); /*Last full print integer*/
|
|
4071
|
+
|
|
4072
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.0", -0.0f);
|
|
4073
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.000000...",-0.000000499f);
|
|
4074
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.000001", -0.00000050000005f);
|
|
4075
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.100469", -0.100469499f);
|
|
4076
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.0", -0.9999995f); /*Rounding to int place*/
|
|
4077
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.0", -1.0f);
|
|
4078
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.25", -1.25f);
|
|
4079
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-7.999999", -7.999999f); /*Not rounding*/
|
|
4080
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.000002", -16.000002f);
|
|
4081
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.000004", -16.000004f);
|
|
4082
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.000006", -16.000006f);
|
|
4083
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-4294967040.0",-4294967040.0f); /*Last full print integer*/
|
|
4084
|
+
|
|
4085
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("4.2949673e+09", 4294967296.0f);
|
|
4086
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("5.0e+09", 5000000000.0f);
|
|
4087
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("8.0e+09", 8.0e+09f);
|
|
4088
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("8.3099991e+09", 8309999104.0f);
|
|
4089
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0e+10", 1.0e+10f);
|
|
4090
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0e+10", 10000000000.0f);
|
|
4091
|
+
/* Some compilers have trouble with inexact float constants, a float cast works generally */
|
|
4092
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.00005499e+10", (float)1.000055e+10f);
|
|
4093
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.10000006e+38", (float)1.10000005e+38f);
|
|
4094
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.63529943e+10", 1.63529943e+10f);
|
|
4095
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("3.40282347e+38", 3.40282346638e38f);
|
|
4096
|
+
|
|
4097
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.0e+10", -1.0e+10f);
|
|
4098
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-3.40282347e+38",-3.40282346638e38f);
|
|
4099
|
+
#endif
|
|
4100
|
+
}
|
|
4101
|
+
|
|
4102
|
+
void testFloatPrintingRoundTiesToEven(void)
|
|
4103
|
+
{
|
|
4104
|
+
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || !defined(USING_OUTPUT_SPY)
|
|
4105
|
+
TEST_IGNORE();
|
|
4106
|
+
#else
|
|
4107
|
+
#ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO
|
|
4108
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.007813", 0.0078125f);
|
|
4109
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.976563", 0.9765625f);
|
|
4110
|
+
#else /* Default to Round ties to even */
|
|
4111
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.007182", 0.0071825f);
|
|
4112
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.976562", 0.9765625f);
|
|
4113
|
+
#endif
|
|
4114
|
+
#endif
|
|
4115
|
+
}
|
|
3223
4116
|
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
4117
|
+
void testFloatPrintingInfinityAndNaN(void)
|
|
4118
|
+
{
|
|
4119
|
+
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || !defined(USING_OUTPUT_SPY)
|
|
4120
|
+
TEST_IGNORE();
|
|
4121
|
+
#else
|
|
4122
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("Inf", 1.0f / f_zero);
|
|
4123
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-Inf", -1.0f / f_zero);
|
|
4124
|
+
|
|
4125
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("NaN", 0.0f / f_zero);
|
|
4126
|
+
#endif
|
|
4127
|
+
}
|
|
4128
|
+
|
|
4129
|
+
#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
|
|
4130
|
+
static void AllFloatPrinting_LessThan32Bits(void)
|
|
4131
|
+
{
|
|
4132
|
+
char expected[18];
|
|
4133
|
+
union { float f_value; int32_t int_value; } u;
|
|
4134
|
+
/* Float representations are laid out in integer order, walk up the list */
|
|
4135
|
+
for (u.f_value = 0.00000050000005f; u.f_value <= 4294967040.0f; u.int_value += 1)
|
|
4136
|
+
{
|
|
4137
|
+
startPutcharSpy();
|
|
4138
|
+
|
|
4139
|
+
UnityPrintFloat(u.f_value); /*1.5x as fast as sprintf 5e-7f - 0.01f, 20s vs 30s*/
|
|
4140
|
+
int len = sprintf(expected, "%.6f", u.f_value);
|
|
4141
|
+
|
|
4142
|
+
while (expected[len - 1] == '0' && expected[len - 2] != '.') { len--; }
|
|
4143
|
+
expected[len] = '\0'; /* delete trailing 0's */
|
|
4144
|
+
|
|
4145
|
+
if (strcmp(expected, getBufferPutcharSpy()) != 0)
|
|
4146
|
+
{
|
|
4147
|
+
double six_digits = ((double)u.f_value - (uint32_t)u.f_value)*1000000.0;
|
|
4148
|
+
/* Not a tie (remainder != 0.5) => Can't explain the different strings */
|
|
4149
|
+
if (six_digits - (uint32_t)six_digits != 0.5)
|
|
4150
|
+
{
|
|
4151
|
+
/* Fail with diagnostic printing */
|
|
4152
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, u.f_value);
|
|
4153
|
+
}
|
|
4154
|
+
}
|
|
4155
|
+
}
|
|
4156
|
+
}
|
|
4157
|
+
|
|
4158
|
+
/* Compared to perfect, floats are occasionally rounded wrong. It doesn't affect
|
|
4159
|
+
* correctness, though. Two examples (of 13 total found during testing):
|
|
4160
|
+
* Printed: 6.19256349e+20, Exact: 619256348499999981568.0f <= Eliminated by ROUND_TIES_TO_EVEN
|
|
4161
|
+
* Printed: 2.19012272e+35, Exact: 219012271499999993621766990196637696.0f */
|
|
4162
|
+
static void AllFloatPrinting_Larger(const float start, const float end)
|
|
4163
|
+
{
|
|
4164
|
+
unsigned int wrong = 0;
|
|
4165
|
+
char expected[18];
|
|
4166
|
+
union { float f_value; int32_t int_value; } u;
|
|
4167
|
+
for (u.f_value = start; u.f_value <= end; u.int_value += 1)
|
|
4168
|
+
{
|
|
4169
|
+
startPutcharSpy();
|
|
4170
|
+
|
|
4171
|
+
UnityPrintFloat(u.f_value); /*Twice as fast as sprintf 2**32-1e12, 10s vs 21s*/
|
|
4172
|
+
sprintf(expected, "%.8e", u.f_value);
|
|
4173
|
+
|
|
4174
|
+
int len = 11 - 1; /* 11th char is 'e' in exponential format */
|
|
4175
|
+
while (expected[len - 1] == '0' && expected[len - 2] != '.') { len --; }
|
|
4176
|
+
if (expected[14] != '\0') memmove(&expected[12], &expected[13], 3); /* Two char exponent */
|
|
4177
|
+
memmove(&expected[len], &expected[11 - 1], sizeof "e+09"); /* 5 char length */
|
|
4178
|
+
|
|
4179
|
+
if (strcmp(expected, getBufferPutcharSpy()) != 0)
|
|
4180
|
+
{
|
|
4181
|
+
wrong++;
|
|
4182
|
+
/* endPutcharSpy(); UnityPrint("Expected "); UnityPrint(expected);
|
|
4183
|
+
UnityPrint(" Was "); UnityPrint(getBufferPutcharSpy()); UNITY_OUTPUT_CHAR('\n'); */
|
|
4184
|
+
|
|
4185
|
+
if (wrong > 10 || (wrong > 3 && end <= 1e25f))
|
|
4186
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, u.f_value);
|
|
4187
|
+
/* Empirical values from the current routine, don't be worse when making changes */
|
|
4188
|
+
}
|
|
4189
|
+
}
|
|
4190
|
+
}
|
|
4191
|
+
#endif
|
|
4192
|
+
|
|
4193
|
+
/* Exhaustive testing of all float values we differentiate when printing. Doubles
|
|
4194
|
+
* are not explored here -- too many. These tests confirm that the routine works
|
|
4195
|
+
* for all floats > 5e-7, positives only. Off by default due to test time.
|
|
4196
|
+
* Compares Unity's routine to your sprintf() C lib, tested to pass on 3 platforms.
|
|
4197
|
+
* Part1 takes a long time, around 3 minutes compiled with -O2
|
|
4198
|
+
* Runs through all floats from 0.000001 - 2**32, ~300 million values */
|
|
4199
|
+
void testAllFloatPrintingPart1_LessThan32Bits(void)
|
|
4200
|
+
{
|
|
4201
|
+
#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
|
|
4202
|
+
AllFloatPrinting_LessThan32Bits();
|
|
4203
|
+
#else
|
|
4204
|
+
TEST_IGNORE(); /* Ignore one of three */
|
|
4205
|
+
#endif
|
|
4206
|
+
}
|
|
4207
|
+
|
|
4208
|
+
/* Test takes a long time, around 3.5 minutes compiled with -O2, try ~500 million values */
|
|
4209
|
+
void testAllFloatPrintingPart2_Larger(void)
|
|
4210
|
+
{
|
|
4211
|
+
#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
|
|
4212
|
+
AllFloatPrinting_Larger(4294967296.0f, 1e25f);
|
|
4213
|
+
#endif
|
|
4214
|
+
}
|
|
4215
|
+
|
|
4216
|
+
/* Test takes a long time, around 3.5 minutes compiled with -O2, try ~500 million values */
|
|
4217
|
+
void testAllFloatPrintingPart3_LargerStill(void)
|
|
4218
|
+
{
|
|
4219
|
+
#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
|
|
4220
|
+
AllFloatPrinting_Larger(1e25f, 3.40282347e+38f);
|
|
3227
4221
|
#endif
|
|
3228
4222
|
}
|
|
3229
4223
|
|
|
@@ -3750,6 +4744,199 @@ void testNotEqualDoubleArraysLengthZero(void)
|
|
|
3750
4744
|
#endif
|
|
3751
4745
|
}
|
|
3752
4746
|
|
|
4747
|
+
void testEqualDoubleEachEqual(void)
|
|
4748
|
+
{
|
|
4749
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4750
|
+
TEST_IGNORE();
|
|
4751
|
+
#else
|
|
4752
|
+
double p0[] = {1.0, 1.0, 1.0, 1.0};
|
|
4753
|
+
double p1[] = {-0.123, -0.123, -0.123, -0.123};
|
|
4754
|
+
double p2[] = {25.4, 25.4, 25.4, -0.2};
|
|
4755
|
+
double p3[] = {1.0, -23.0, 25.0, -0.26};
|
|
4756
|
+
|
|
4757
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 1);
|
|
4758
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 4);
|
|
4759
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(-0.123, p1, 4);
|
|
4760
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(25.4, p2, 3);
|
|
4761
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p3, 1);
|
|
4762
|
+
#endif
|
|
4763
|
+
}
|
|
4764
|
+
|
|
4765
|
+
void testNotEqualDoubleEachEqualActualNull(void)
|
|
4766
|
+
{
|
|
4767
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4768
|
+
TEST_IGNORE();
|
|
4769
|
+
#else
|
|
4770
|
+
double* p0 = NULL;
|
|
4771
|
+
|
|
4772
|
+
EXPECT_ABORT_BEGIN
|
|
4773
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(5, p0, 4);
|
|
4774
|
+
VERIFY_FAILS_END
|
|
4775
|
+
#endif
|
|
4776
|
+
}
|
|
4777
|
+
|
|
4778
|
+
void testNotEqualDoubleEachEqual1(void)
|
|
4779
|
+
{
|
|
4780
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4781
|
+
TEST_IGNORE();
|
|
4782
|
+
#else
|
|
4783
|
+
double p0[] = {0.253, 8.0, 0.253, 0.253};
|
|
4784
|
+
|
|
4785
|
+
EXPECT_ABORT_BEGIN
|
|
4786
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(0.253, p0, 4);
|
|
4787
|
+
VERIFY_FAILS_END
|
|
4788
|
+
#endif
|
|
4789
|
+
}
|
|
4790
|
+
|
|
4791
|
+
void testNotEqualDoubleEachEqual2(void)
|
|
4792
|
+
{
|
|
4793
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4794
|
+
TEST_IGNORE();
|
|
4795
|
+
#else
|
|
4796
|
+
double p0[] = {8.0, 8.0, 8.0, 0.253};
|
|
4797
|
+
|
|
4798
|
+
EXPECT_ABORT_BEGIN
|
|
4799
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(8.0, p0, 4);
|
|
4800
|
+
VERIFY_FAILS_END
|
|
4801
|
+
#endif
|
|
4802
|
+
}
|
|
4803
|
+
|
|
4804
|
+
void testNotEqualDoubleEachEqual3(void)
|
|
4805
|
+
{
|
|
4806
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4807
|
+
TEST_IGNORE();
|
|
4808
|
+
#else
|
|
4809
|
+
double p0[] = {1.0, 1.0, 1.0, 0.253};
|
|
4810
|
+
|
|
4811
|
+
EXPECT_ABORT_BEGIN
|
|
4812
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 4);
|
|
4813
|
+
VERIFY_FAILS_END
|
|
4814
|
+
#endif
|
|
4815
|
+
}
|
|
4816
|
+
|
|
4817
|
+
void testNotEqualDoubleEachEqualNegative1(void)
|
|
4818
|
+
{
|
|
4819
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4820
|
+
TEST_IGNORE();
|
|
4821
|
+
#else
|
|
4822
|
+
double p0[] = {-1.0, -0.253, -0.253, -0.253};
|
|
4823
|
+
|
|
4824
|
+
EXPECT_ABORT_BEGIN
|
|
4825
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(-0.253, p0, 4);
|
|
4826
|
+
VERIFY_FAILS_END
|
|
4827
|
+
#endif
|
|
4828
|
+
}
|
|
4829
|
+
|
|
4830
|
+
void testNotEqualDoubleEachEqualNegative2(void)
|
|
4831
|
+
{
|
|
4832
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4833
|
+
TEST_IGNORE();
|
|
4834
|
+
#else
|
|
4835
|
+
double p0[] = {-25.4, -8.0, -25.4, -25.4};
|
|
4836
|
+
|
|
4837
|
+
EXPECT_ABORT_BEGIN
|
|
4838
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(-25.4, p0, 4);
|
|
4839
|
+
VERIFY_FAILS_END
|
|
4840
|
+
#endif
|
|
4841
|
+
}
|
|
4842
|
+
|
|
4843
|
+
void testNotEqualDoubleEachEqualNegative3(void)
|
|
4844
|
+
{
|
|
4845
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4846
|
+
TEST_IGNORE();
|
|
4847
|
+
#else
|
|
4848
|
+
double p0[] = {-8.0, -8.0, -8.0, -0.253};
|
|
4849
|
+
|
|
4850
|
+
EXPECT_ABORT_BEGIN
|
|
4851
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(-8.0, p0, 4);
|
|
4852
|
+
VERIFY_FAILS_END
|
|
4853
|
+
#endif
|
|
4854
|
+
}
|
|
4855
|
+
|
|
4856
|
+
void testEqualDoubleEachEqualNaN(void)
|
|
4857
|
+
{
|
|
4858
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4859
|
+
TEST_IGNORE();
|
|
4860
|
+
#else
|
|
4861
|
+
double p0[] = {0.0 / d_zero, 0.0 / d_zero, 0.0 / d_zero, 0.0 / d_zero};
|
|
4862
|
+
|
|
4863
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(0.0 / d_zero, p0, 4);
|
|
4864
|
+
#endif
|
|
4865
|
+
}
|
|
4866
|
+
|
|
4867
|
+
void testEqualDoubleEachEqualInf(void)
|
|
4868
|
+
{
|
|
4869
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4870
|
+
TEST_IGNORE();
|
|
4871
|
+
#else
|
|
4872
|
+
double p0[] = {1.0 / d_zero, 1.0 / d_zero, 25.4, 0.253};
|
|
4873
|
+
|
|
4874
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0 / d_zero, p0, 2);
|
|
4875
|
+
#endif
|
|
4876
|
+
}
|
|
4877
|
+
|
|
4878
|
+
void testNotEqualDoubleEachEqualLengthZero(void)
|
|
4879
|
+
{
|
|
4880
|
+
#ifdef UNITY_EXCLUDE_DOUBLE
|
|
4881
|
+
TEST_IGNORE();
|
|
4882
|
+
#else
|
|
4883
|
+
double p0[1] = {0.0};
|
|
4884
|
+
|
|
4885
|
+
EXPECT_ABORT_BEGIN
|
|
4886
|
+
TEST_ASSERT_EACH_EQUAL_DOUBLE(0.0, p0, 0);
|
|
4887
|
+
VERIFY_FAILS_END
|
|
4888
|
+
#endif
|
|
4889
|
+
}
|
|
4890
|
+
|
|
4891
|
+
void testDoublePrinting(void)
|
|
4892
|
+
{
|
|
4893
|
+
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
|
|
4894
|
+
TEST_IGNORE();
|
|
4895
|
+
#else
|
|
4896
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.100469", 0.10046949999999999);
|
|
4897
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("4294967295.999999", 4294967295.999999);
|
|
4898
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("4.2949673e+09", 4294967295.9999995);
|
|
4899
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("4.2949673e+09", 4294967296.0);
|
|
4900
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0e+10", 9999999995.0);
|
|
4901
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719925e+15", 9007199254740990.0);
|
|
4902
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("7.0e+100", 7.0e+100);
|
|
4903
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("3.0e+200", 3.0e+200);
|
|
4904
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("9.23456789e+300", 9.23456789e+300);
|
|
4905
|
+
|
|
4906
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.100469", -0.10046949999999999);
|
|
4907
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-4294967295.999999", -4294967295.999999);
|
|
4908
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-4.2949673e+09", -4294967295.9999995);
|
|
4909
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-7.0e+100", -7.0e+100);
|
|
4910
|
+
#endif
|
|
4911
|
+
}
|
|
4912
|
+
|
|
4913
|
+
void testDoublePrintingRoundTiesToEven(void)
|
|
4914
|
+
{
|
|
4915
|
+
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
|
|
4916
|
+
TEST_IGNORE();
|
|
4917
|
+
#else
|
|
4918
|
+
#ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO
|
|
4919
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.00000001e+10", 10000000050.0);
|
|
4920
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719925e+15", 9007199245000000.0);
|
|
4921
|
+
#else /* Default to Round ties to even */
|
|
4922
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0e+10", 10000000050.0);
|
|
4923
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719924e+15", 9007199245000000.0);
|
|
4924
|
+
#endif
|
|
4925
|
+
#endif
|
|
4926
|
+
}
|
|
4927
|
+
|
|
4928
|
+
void testDoublePrintingInfinityAndNaN(void)
|
|
4929
|
+
{
|
|
4930
|
+
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
|
|
4931
|
+
TEST_IGNORE();
|
|
4932
|
+
#else
|
|
4933
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("Inf", 1.0 / d_zero);
|
|
4934
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("-Inf", -1.0 / d_zero);
|
|
4935
|
+
|
|
4936
|
+
TEST_ASSERT_EQUAL_PRINT_FLOATING("NaN", 0.0 / d_zero);
|
|
4937
|
+
#endif
|
|
4938
|
+
}
|
|
4939
|
+
|
|
3753
4940
|
// ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DETAIL SUPPORT ==================
|
|
3754
4941
|
|
|
3755
4942
|
void testThatDetailsCanBeHandleOneDetail(void)
|