ceedling 0.20.3 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/Gemfile.lock +1 -0
- data/Rakefile +1 -0
- data/bin/ceedling +79 -26
- data/lib/ceedling/configurator_plugins.rb +0 -18
- data/lib/ceedling/rules_cmock.rake +1 -1
- data/lib/ceedling/tasks_base.rake +5 -1
- data/lib/ceedling/tasks_tests.rake +12 -9
- data/lib/ceedling/version.rb +1 -1
- data/lib/ceedling/version.rb.erb +1 -1
- data/plugins/fake_function_framework/README.md +250 -0
- data/plugins/fake_function_framework/Rakefile +19 -0
- data/plugins/fake_function_framework/examples/fff_example/project.yml +71 -0
- data/plugins/fake_function_framework/examples/fff_example/rakefile.rb +7 -0
- data/plugins/fake_function_framework/examples/fff_example/src/bar.c +1 -0
- data/plugins/fake_function_framework/examples/fff_example/src/bar.h +13 -0
- data/plugins/fake_function_framework/examples/fff_example/src/custom_types.h +6 -0
- data/plugins/fake_function_framework/examples/fff_example/src/display.c +7 -0
- data/plugins/fake_function_framework/examples/fff_example/src/display.h +16 -0
- data/plugins/fake_function_framework/examples/fff_example/src/event_processor.c +92 -0
- data/plugins/fake_function_framework/examples/fff_example/src/event_processor.h +11 -0
- data/plugins/fake_function_framework/examples/fff_example/src/foo.c +16 -0
- data/plugins/fake_function_framework/examples/fff_example/src/foo.h +8 -0
- data/plugins/fake_function_framework/examples/fff_example/src/subfolder/zzz.c +1 -0
- data/plugins/fake_function_framework/examples/fff_example/src/subfolder/zzz.h +6 -0
- data/plugins/fake_function_framework/examples/fff_example/test/test_event_processor.c +155 -0
- data/plugins/fake_function_framework/examples/fff_example/test/test_foo.c +47 -0
- data/plugins/fake_function_framework/lib/fake_function_framework.rb +87 -0
- data/plugins/fake_function_framework/lib/fff_mock_generator.rb +159 -0
- data/plugins/fake_function_framework/spec/fff_mock_generator_spec.rb +464 -0
- data/plugins/fake_function_framework/spec/spec_helper.rb +96 -0
- data/plugins/fake_function_framework/src/fff_unity_helper.h +33 -0
- data/plugins/fake_function_framework/vendor/fff/LICENSE +25 -0
- data/plugins/fake_function_framework/vendor/fff/Makefile +10 -0
- data/plugins/fake_function_framework/vendor/fff/README.md +454 -0
- data/plugins/fake_function_framework/vendor/fff/buildandtest +15 -0
- data/plugins/fake_function_framework/vendor/fff/examples/Makefile +7 -0
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/Makefile +64 -0
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.c +24 -0
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.h +11 -0
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.test.cpp +50 -0
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.test.fff.cpp +62 -0
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/hardware_abstraction.h +15 -0
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/registers.h +13 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/DISPLAY.h +17 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/Kata.txt +25 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/Makefile +67 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/SYSTEM.h +21 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI.c +48 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI.h +12 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI_test_ansic.c +183 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +136 -0
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/test_suite_template.c +34 -0
- data/plugins/fake_function_framework/vendor/fff/fakegen.rb +420 -0
- data/plugins/fake_function_framework/vendor/fff/fff.h +5112 -0
- data/plugins/fake_function_framework/vendor/fff/gtest/Makefile +22 -0
- data/plugins/fake_function_framework/vendor/fff/gtest/gtest-all.cc +9118 -0
- data/plugins/fake_function_framework/vendor/fff/gtest/gtest-main.cc +6 -0
- data/plugins/fake_function_framework/vendor/fff/gtest/gtest.h +19537 -0
- data/plugins/fake_function_framework/vendor/fff/test/Makefile +81 -0
- data/plugins/fake_function_framework/vendor/fff/test/c_test_framework.h +15 -0
- data/plugins/fake_function_framework/vendor/fff/test/fff_test_c.c +108 -0
- data/plugins/fake_function_framework/vendor/fff/test/fff_test_cpp.cpp +45 -0
- data/plugins/fake_function_framework/vendor/fff/test/fff_test_global_c.c +76 -0
- data/plugins/fake_function_framework/vendor/fff/test/fff_test_global_cpp.cpp +23 -0
- data/plugins/fake_function_framework/vendor/fff/test/global_fakes.c +13 -0
- data/plugins/fake_function_framework/vendor/fff/test/global_fakes.h +37 -0
- data/plugins/fake_function_framework/vendor/fff/test/test_cases.include +276 -0
- data/plugins/gcov/README.md +9 -0
- data/plugins/gcov/{template.erb → assets/template.erb} +1 -1
- data/plugins/gcov/{defaults.yml → config/defaults.yml} +10 -1
- data/plugins/gcov/gcov.rake +20 -8
- data/plugins/gcov/{gcov.rb → lib/gcov.rb} +13 -24
- data/plugins/module_generator/module_generator.rake +3 -3
- data/plugins/warnings_report/lib/warnings_report.rb +69 -0
- data/plugins/xml_tests_report/lib/xml_tests_report.rb +108 -0
- data/spec/spec_system_helper.rb +1 -1
- data/vendor/c_exception/lib/CException.h +1 -1
- data/vendor/c_exception/vendor/unity/auto/generate_module.rb +16 -16
- data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +61 -21
- data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +5 -1
- data/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +146 -0
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- 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/c_exception/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +7 -7
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -2
- data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +14 -14
- data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +2 -2
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +5 -5
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +5 -5
- data/vendor/c_exception/vendor/unity/examples/unity_config.h +257 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +9 -8
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +1 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +28 -8
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +57 -17
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +3 -0
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +2 -3
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +1 -1
- data/vendor/c_exception/vendor/unity/release/version.info +1 -1
- data/vendor/c_exception/vendor/unity/src/unity.c +336 -191
- data/vendor/c_exception/vendor/unity/src/unity.h +73 -69
- data/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -90
- data/vendor/c_exception/vendor/unity/test/Makefile +51 -0
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +5 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +5 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +5 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +6 -6
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +6 -6
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +6 -6
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -6
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +8 -8
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +6 -6
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -6
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +8 -8
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -7
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +5 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -7
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +5 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +5 -5
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -7
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +6 -6
- data/vendor/c_exception/vendor/unity/test/rakefile +5 -0
- data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +9 -7
- data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +3 -0
- data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +1 -0
- data/vendor/c_exception/vendor/unity/test/testdata/CException.h +11 -0
- data/vendor/c_exception/vendor/unity/test/testdata/Defs.h +8 -0
- data/vendor/c_exception/vendor/unity/test/testdata/cmock.h +14 -0
- data/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +13 -0
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +65 -0
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
- data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +1221 -71
- data/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +1 -1
- data/vendor/c_exception/vendor/unity/test/tests/testunity.c +127 -5
- data/vendor/cmock/docs/CMock_Summary.md +1 -1
- data/vendor/cmock/lib/cmock_generator.rb +7 -2
- data/vendor/cmock/lib/cmock_header_parser.rb +29 -9
- data/vendor/cmock/scripts/create_mock.rb +1 -1
- data/vendor/cmock/test/system/test_compilation/const.h +15 -0
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +4 -4
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +136 -73
- data/vendor/cmock/vendor/c_exception/lib/CException.h +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +16 -16
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +61 -21
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +5 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +146 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- 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/c_exception/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +7 -7
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +14 -14
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +2 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +257 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +9 -8
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +28 -8
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +57 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +3 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +2 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +336 -191
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +73 -69
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -90
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +51 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +8 -8
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +8 -8
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -7
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -7
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +5 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -7
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +5 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +9 -7
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +3 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +1 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/CException.h +11 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/Defs.h +8 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/cmock.h +14 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +13 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +65 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +1221 -71
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +127 -5
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +16 -16
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +61 -21
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +5 -1
- data/vendor/cmock/vendor/unity/auto/unity_to_junit.py +146 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- 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/cmock/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +7 -7
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -2
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +14 -14
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +2 -2
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +5 -5
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +5 -5
- data/vendor/cmock/vendor/unity/examples/unity_config.h +257 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +3 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +5 -2
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +1 -2
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +1 -1
- data/vendor/cmock/vendor/unity/src/unity.c +329 -186
- data/vendor/cmock/vendor/unity/src/unity.h +73 -69
- data/vendor/cmock/vendor/unity/src/unity_internals.h +119 -94
- data/vendor/cmock/vendor/unity/test/Makefile +4 -5
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +5 -5
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +5 -5
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +5 -5
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +6 -6
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +6 -6
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +6 -6
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -6
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +8 -8
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +6 -6
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -6
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +8 -8
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -7
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +5 -5
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +7 -7
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +5 -5
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +5 -5
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +7 -7
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +6 -6
- data/vendor/cmock/vendor/unity/test/rakefile +5 -0
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +9 -7
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +3 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_sizeof.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +1 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +1 -0
- data/vendor/cmock/vendor/unity/test/testdata/CException.h +11 -0
- data/vendor/cmock/vendor/unity/test/testdata/Defs.h +8 -0
- data/vendor/cmock/vendor/unity/test/testdata/cmock.h +14 -0
- data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +13 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +65 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +1221 -71
- data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +1 -1
- data/vendor/cmock/vendor/unity/test/tests/testunity.c +104 -7
- data/vendor/deep_merge/README +94 -94
- data/vendor/deep_merge/Rakefile +28 -28
- data/vendor/deep_merge/lib/deep_merge.rb +211 -211
- data/vendor/deep_merge/test/test_deep_merge.rb +553 -553
- data/vendor/unity/auto/generate_module.rb +16 -16
- data/vendor/unity/auto/generate_test_runner.rb +61 -21
- data/vendor/unity/auto/stylize_as_junit.rb +5 -1
- data/vendor/unity/auto/unity_to_junit.py +146 -0
- data/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- 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
- data/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/unity/examples/example_1/src/ProductionCode.c +7 -7
- data/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -2
- data/vendor/unity/examples/example_1/test/TestProductionCode.c +14 -14
- data/vendor/unity/examples/example_1/test/TestProductionCode2.c +2 -2
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +5 -5
- data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +5 -5
- data/vendor/unity/examples/unity_config.h +257 -0
- data/vendor/unity/extras/fixture/src/unity_fixture.c +3 -0
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +5 -2
- data/vendor/unity/extras/fixture/test/unity_output_Spy.c +1 -2
- data/vendor/unity/extras/fixture/test/unity_output_Spy.h +1 -1
- data/vendor/unity/src/unity.c +329 -186
- data/vendor/unity/src/unity.h +73 -69
- data/vendor/unity/src/unity_internals.h +119 -94
- data/vendor/unity/test/Makefile +4 -5
- data/vendor/unity/test/expectdata/testsample_cmd.c +5 -5
- data/vendor/unity/test/expectdata/testsample_def.c +5 -5
- data/vendor/unity/test/expectdata/testsample_head1.c +5 -5
- data/vendor/unity/test/expectdata/testsample_mock_cmd.c +6 -6
- data/vendor/unity/test/expectdata/testsample_mock_def.c +6 -6
- data/vendor/unity/test/expectdata/testsample_mock_head1.c +6 -6
- data/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -6
- data/vendor/unity/test/expectdata/testsample_mock_new2.c +8 -8
- data/vendor/unity/test/expectdata/testsample_mock_param.c +6 -6
- data/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -6
- data/vendor/unity/test/expectdata/testsample_mock_run2.c +8 -8
- data/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -7
- data/vendor/unity/test/expectdata/testsample_new1.c +5 -5
- data/vendor/unity/test/expectdata/testsample_new2.c +7 -7
- data/vendor/unity/test/expectdata/testsample_param.c +5 -5
- data/vendor/unity/test/expectdata/testsample_run1.c +5 -5
- data/vendor/unity/test/expectdata/testsample_run2.c +7 -7
- data/vendor/unity/test/expectdata/testsample_yaml.c +6 -6
- data/vendor/unity/test/rakefile +5 -0
- data/vendor/unity/test/rakefile_helper.rb +9 -7
- data/vendor/unity/test/targets/clang_file.yml +1 -0
- data/vendor/unity/test/targets/clang_strict.yml +3 -0
- data/vendor/unity/test/targets/gcc_32.yml +1 -0
- data/vendor/unity/test/targets/gcc_64.yml +1 -0
- data/vendor/unity/test/targets/gcc_auto_limits.yml +1 -0
- data/vendor/unity/test/targets/gcc_auto_sizeof.yml +1 -0
- data/vendor/unity/test/targets/gcc_auto_stdint.yml +1 -0
- data/vendor/unity/test/targets/gcc_manual_math.yml +1 -0
- data/vendor/unity/test/targets/iar_arm_v4.yml +1 -0
- data/vendor/unity/test/targets/iar_arm_v5.yml +1 -0
- data/vendor/unity/test/targets/iar_arm_v5_3.yml +1 -0
- data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +1 -0
- data/vendor/unity/test/targets/iar_cortexm3_v5.yml +1 -0
- data/vendor/unity/test/targets/iar_msp430.yml +1 -0
- data/vendor/unity/test/targets/iar_sh2a_v6.yml +1 -0
- data/vendor/unity/test/testdata/CException.h +11 -0
- data/vendor/unity/test/testdata/Defs.h +8 -0
- data/vendor/unity/test/testdata/cmock.h +14 -0
- data/vendor/unity/test/testdata/mockMock.h +13 -0
- data/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +65 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
- data/vendor/unity/test/tests/test_generate_test_runner.rb +1221 -71
- data/vendor/unity/test/tests/testparameterized.c +1 -1
- data/vendor/unity/test/tests/testunity.c +104 -7
- metadata +124 -32
- data/plugins/gcov/readme.txt +0 -0
- data/plugins/warnings_report/warnings_report.rb +0 -71
- data/plugins/xml_tests_report/xml_tests_report.rb +0 -110
- data/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +0 -224
- data/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +0 -51
- data/vendor/c_exception/vendor/unity/test/testdata/sample.yml +0 -9
- data/vendor/c_exception/vendor/unity/test/testdata/testsample.c +0 -68
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +0 -224
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +0 -51
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/sample.yml +0 -9
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testsample.c +0 -68
- data/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/Unity Summary.txt +0 -224
- data/vendor/cmock/vendor/unity/test/testdata/mocksample.c +0 -51
- data/vendor/cmock/vendor/unity/test/testdata/sample.yml +0 -9
- data/vendor/cmock/vendor/unity/test/testdata/testsample.c +0 -68
- data/vendor/unity/docs/Unity Summary.odt +0 -0
- data/vendor/unity/docs/Unity Summary.pdf +0 -0
- data/vendor/unity/docs/Unity Summary.txt +0 -224
- data/vendor/unity/test/testdata/mocksample.c +0 -51
- data/vendor/unity/test/testdata/sample.yml +0 -9
- data/vendor/unity/test/testdata/testsample.c +0 -68
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
|
|
2
|
+
BUILD_DIR = ../build
|
|
3
|
+
|
|
4
|
+
FFF_TEST_CPP_OBJS += \
|
|
5
|
+
$(BUILD_DIR)/fff_test_cpp.o \
|
|
6
|
+
$(BUILD_DIR)/gtest-all.o \
|
|
7
|
+
$(BUILD_DIR)/gtest-main.o
|
|
8
|
+
|
|
9
|
+
FFF_TEST_GLOBAL_CPP_OBJS += \
|
|
10
|
+
$(BUILD_DIR)/fff_test_global_cpp.o \
|
|
11
|
+
$(BUILD_DIR)/global_fakes.o \
|
|
12
|
+
$(BUILD_DIR)/gtest-all.o \
|
|
13
|
+
$(BUILD_DIR)/gtest-main.o
|
|
14
|
+
|
|
15
|
+
FFF_TEST_C_OBJS = $(BUILD_DIR)/fff_test_c.o
|
|
16
|
+
|
|
17
|
+
FFF_TEST_GLOBAL_C_OBJS += \
|
|
18
|
+
$(BUILD_DIR)/global_fakes.o \
|
|
19
|
+
$(BUILD_DIR)/fff_test_global_c.o
|
|
20
|
+
|
|
21
|
+
FFF_TEST_CPP_TARGET = $(BUILD_DIR)/fff_test_cpp
|
|
22
|
+
FFF_TEST_C_TARGET = $(BUILD_DIR)/fff_test_c
|
|
23
|
+
FFF_TEST_GLOBAL_C_TARGET = $(BUILD_DIR)/fff_test_glob_c
|
|
24
|
+
FFF_TEST_GLOBAL_CPP_TARGET = $(BUILD_DIR)/fff_test_glob_cpp
|
|
25
|
+
|
|
26
|
+
LIBS := -lpthread
|
|
27
|
+
# All Target
|
|
28
|
+
all: $(FFF_TEST_CPP_TARGET) $(FFF_TEST_C_TARGET) $(FFF_TEST_GLOBAL_C_TARGET) $(FFF_TEST_GLOBAL_CPP_TARGET)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Each subdirectory must supply rules for building sources it contributes
|
|
32
|
+
$(BUILD_DIR)/%.o: %.cpp
|
|
33
|
+
@echo 'Building file: $<'
|
|
34
|
+
@echo 'Invoking: GCC C++ Compiler'
|
|
35
|
+
g++ -I../ -O0 -g3 -Wall -DGTEST_USE_OWN_TR1_TUPLE=1 -c -o "$@" "$<"
|
|
36
|
+
@echo 'Finished building: $<'
|
|
37
|
+
@echo ' '
|
|
38
|
+
|
|
39
|
+
$(BUILD_DIR)/%.o: %.c
|
|
40
|
+
@echo 'Building file: $<'
|
|
41
|
+
@echo 'Invoking: GCC C Compiler'
|
|
42
|
+
gcc -I../ -O0 -g3 -Wall -std=c99 -c -o "$@" "$<"
|
|
43
|
+
@echo 'Finished building: $<'
|
|
44
|
+
@echo ' '
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# Link targets
|
|
48
|
+
$(FFF_TEST_CPP_TARGET): $(FFF_TEST_CPP_OBJS)
|
|
49
|
+
@echo 'Building target: $@'
|
|
50
|
+
@echo 'Invoking: GCC C++ Linker'
|
|
51
|
+
g++ -o "$(FFF_TEST_CPP_TARGET)" $(FFF_TEST_CPP_OBJS) $(LIBS)
|
|
52
|
+
@echo 'Finished building target: $@'
|
|
53
|
+
@echo ' '
|
|
54
|
+
|
|
55
|
+
$(FFF_TEST_C_TARGET): $(FFF_TEST_C_OBJS)
|
|
56
|
+
@echo 'Building target: $@'
|
|
57
|
+
@echo 'Invoking: GCC C Linker'
|
|
58
|
+
gcc -o "$(FFF_TEST_C_TARGET)" $(FFF_TEST_C_OBJS) $(LIBS)
|
|
59
|
+
@echo 'Finished building target: $@'
|
|
60
|
+
@echo ' '
|
|
61
|
+
|
|
62
|
+
$(FFF_TEST_GLOBAL_C_TARGET): $(FFF_TEST_GLOBAL_C_OBJS)
|
|
63
|
+
@echo 'Building target: $@'
|
|
64
|
+
@echo 'Invoking: GCC C++ Linker'
|
|
65
|
+
g++ -o "$(FFF_TEST_GLOBAL_C_TARGET)" $(FFF_TEST_GLOBAL_C_OBJS) $(LIBS)
|
|
66
|
+
@echo 'Finished building target: $@'
|
|
67
|
+
@echo ' '
|
|
68
|
+
|
|
69
|
+
$(FFF_TEST_GLOBAL_CPP_TARGET): $(FFF_TEST_GLOBAL_CPP_OBJS)
|
|
70
|
+
@echo 'Building target: $@'
|
|
71
|
+
@echo 'Invoking: GCC C++ Linker'
|
|
72
|
+
g++ -o "$(FFF_TEST_GLOBAL_CPP_TARGET)" $(FFF_TEST_GLOBAL_CPP_OBJS) $(LIBS)
|
|
73
|
+
@echo 'Finished building target: $@'
|
|
74
|
+
@echo ' '
|
|
75
|
+
|
|
76
|
+
# Other Targets
|
|
77
|
+
clean:
|
|
78
|
+
-$(RM) $(FFF_TEST_CPP_OBJS) $(FFF_TEST_GLOBAL_C_OBJS) $(FFF_TEST_C_OBJS) \
|
|
79
|
+
$(FFF_TEST_CPP_TARGET) $(FFF_TEST_C_TARGET) $(FFF_TEST_GLOBAL_CPP_TARGET) $(FFF_TEST_GLOBAL_C_TARGET)
|
|
80
|
+
-@echo ' '
|
|
81
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifndef C_TEST_FRAMEWORK_H_
|
|
2
|
+
#define C_TEST_FRAMEWORK_H_
|
|
3
|
+
|
|
4
|
+
#include <assert.h>
|
|
5
|
+
#include <stdio.h>
|
|
6
|
+
#include <string.h>
|
|
7
|
+
|
|
8
|
+
/* Test Framework :-) */
|
|
9
|
+
void setup();
|
|
10
|
+
#define TEST_F(SUITE, NAME) void NAME()
|
|
11
|
+
#define RUN_TEST(SUITE, TESTNAME) printf(" Running %s.%s: \n", #SUITE, #TESTNAME); setup(); TESTNAME(); printf(" SUCCESS\n");
|
|
12
|
+
#define ASSERT_EQ(A, B) assert((A) == (B))
|
|
13
|
+
#define ASSERT_TRUE(A) assert((A))
|
|
14
|
+
|
|
15
|
+
#endif /* C_TEST_FRAMEWORK_H_ */
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
|
|
2
|
+
// Want to keep the argument history for 13 calls
|
|
3
|
+
#define OVERRIDE_ARG_HIST_LEN 13u
|
|
4
|
+
#define FFF_ARG_HISTORY_LEN OVERRIDE_ARG_HIST_LEN
|
|
5
|
+
// Want to keep the call sequence history for 17 function calls
|
|
6
|
+
#define OVERRIDE_CALL_HIST_LEN 17u
|
|
7
|
+
#define FFF_CALL_HISTORY_LEN OVERRIDE_CALL_HIST_LEN
|
|
8
|
+
|
|
9
|
+
#include "../fff.h"
|
|
10
|
+
#include "c_test_framework.h"
|
|
11
|
+
|
|
12
|
+
#include <assert.h>
|
|
13
|
+
#include <stdio.h>
|
|
14
|
+
#include <string.h>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
enum MYBOOL { FALSE = 899, TRUE };
|
|
19
|
+
struct MyStruct {
|
|
20
|
+
int x;
|
|
21
|
+
int y;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
FAKE_VOID_FUNC(voidfunc1, int);
|
|
26
|
+
FAKE_VOID_FUNC(voidfunc2, char, char);
|
|
27
|
+
FAKE_VALUE_FUNC(long, longfunc0);
|
|
28
|
+
FAKE_VALUE_FUNC(enum MYBOOL, enumfunc0);
|
|
29
|
+
FAKE_VALUE_FUNC(struct MyStruct, structfunc0);
|
|
30
|
+
FAKE_VOID_FUNC3_VARARG(voidfunc3var, char *, int, ...);
|
|
31
|
+
FAKE_VALUE_FUNC(int, strlcpy3, char* const, const char* const, const size_t);
|
|
32
|
+
FAKE_VOID_FUNC(voidfunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int);
|
|
33
|
+
|
|
34
|
+
void setup()
|
|
35
|
+
{
|
|
36
|
+
RESET_FAKE(voidfunc1);
|
|
37
|
+
RESET_FAKE(voidfunc2);
|
|
38
|
+
RESET_FAKE(longfunc0);
|
|
39
|
+
RESET_FAKE(enumfunc0);
|
|
40
|
+
RESET_FAKE(structfunc0);
|
|
41
|
+
RESET_FAKE(voidfunc3var);
|
|
42
|
+
RESET_FAKE(strlcpy3);
|
|
43
|
+
FFF_RESET_HISTORY();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
#include "test_cases.include"
|
|
48
|
+
|
|
49
|
+
TEST_F(FFFTestSuite, default_constants_can_be_overridden)
|
|
50
|
+
{
|
|
51
|
+
unsigned sizeCallHistory = (sizeof fff.call_history) / (sizeof fff.call_history[0]);
|
|
52
|
+
ASSERT_EQ(OVERRIDE_CALL_HIST_LEN, sizeCallHistory);
|
|
53
|
+
ASSERT_EQ(OVERRIDE_ARG_HIST_LEN, voidfunc2_fake.arg_history_len);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
DEFINE_FFF_GLOBALS;
|
|
57
|
+
int main()
|
|
58
|
+
{
|
|
59
|
+
setbuf(stdout, NULL);
|
|
60
|
+
fprintf(stdout, "-------------\n");
|
|
61
|
+
fprintf(stdout, "Running Tests\n");
|
|
62
|
+
fprintf(stdout, "-------------\n\n");
|
|
63
|
+
fflush(0);
|
|
64
|
+
|
|
65
|
+
/* Run tests */
|
|
66
|
+
RUN_TEST(FFFTestSuite, when_void_func_never_called_then_callcount_is_zero);
|
|
67
|
+
RUN_TEST(FFFTestSuite, when_void_func_called_once_then_callcount_is_one);
|
|
68
|
+
RUN_TEST(FFFTestSuite, when_void_func_called_once_and_reset_then_callcount_is_zero);
|
|
69
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_1_integer_arg_called_then_last_arg_captured);
|
|
70
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_1_integer_arg_called_twice_then_last_arg_captured);
|
|
71
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_1_integer_arg_called_and_reset_then_captured_arg_is_zero);
|
|
72
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_2_char_args_called_then_last_args_captured);
|
|
73
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_2_char_args_called_twice_then_last_args_captured);
|
|
74
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_2_char_args_called_and_reset_then_captured_arg_is_zero);
|
|
75
|
+
RUN_TEST(FFFTestSuite, when_fake_func_called_then_const_arguments_captured);
|
|
76
|
+
|
|
77
|
+
RUN_TEST(FFFTestSuite, when_fake_func_created_default_history_is_fifty_calls);
|
|
78
|
+
RUN_TEST(FFFTestSuite, when_fake_func_called_then_arguments_captured_in_history);
|
|
79
|
+
RUN_TEST(FFFTestSuite, argument_history_is_reset_when_RESET_FAKE_called);
|
|
80
|
+
RUN_TEST(FFFTestSuite, when_fake_func_called_max_times_then_no_argument_histories_dropped);
|
|
81
|
+
RUN_TEST(FFFTestSuite, when_fake_func_called_max_times_plus_one_then_one_argument_history_dropped);
|
|
82
|
+
|
|
83
|
+
RUN_TEST(FFFTestSuite, value_func_will_return_zero_by_default);
|
|
84
|
+
RUN_TEST(FFFTestSuite, value_func_will_return_value_given);
|
|
85
|
+
RUN_TEST(FFFTestSuite, value_func_will_return_zero_after_reset);
|
|
86
|
+
RUN_TEST(FFFTestSuite, register_call_macro_registers_one_call);
|
|
87
|
+
RUN_TEST(FFFTestSuite, register_call_macro_registers_two_calls);
|
|
88
|
+
RUN_TEST(FFFTestSuite, reset_call_history_resets_call_history);
|
|
89
|
+
RUN_TEST(FFFTestSuite, call_history_will_not_write_past_array_bounds);
|
|
90
|
+
RUN_TEST(FFFTestSuite, calling_fake_registers_one_call);
|
|
91
|
+
|
|
92
|
+
RUN_TEST(FFFTestSuite, return_value_sequences_not_exhausted);
|
|
93
|
+
RUN_TEST(FFFTestSuite, return_value_sequences_exhausted);
|
|
94
|
+
RUN_TEST(FFFTestSuite, default_constants_can_be_overridden);
|
|
95
|
+
|
|
96
|
+
RUN_TEST(FFFTestSuite, can_register_custom_fake);
|
|
97
|
+
RUN_TEST(FFFTestSuite, when_value_custom_fake_called_THEN_it_returns_custom_return_value);
|
|
98
|
+
|
|
99
|
+
RUN_TEST(FFFTestSuite, use_vararg_fake_with_different_number_of_arguments);
|
|
100
|
+
|
|
101
|
+
RUN_TEST(FFFTestSuite, can_capture_upto_20_arguments_correctly);
|
|
102
|
+
|
|
103
|
+
printf("\n-------------\n");
|
|
104
|
+
printf("Complete\n");
|
|
105
|
+
printf("-------------\n\n");
|
|
106
|
+
|
|
107
|
+
return 0;
|
|
108
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* fff_test.cpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: Dec 20, 2010
|
|
5
|
+
* Author: mlong
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// Want to keep the argument history for 13 calls
|
|
9
|
+
#define OVERRIDE_ARG_HIST_LEN 13u
|
|
10
|
+
#define FFF_ARG_HISTORY_LEN OVERRIDE_ARG_HIST_LEN
|
|
11
|
+
// Want to keep the call sequence history for 17 function calls
|
|
12
|
+
#define OVERRIDE_CALL_HIST_LEN 17u
|
|
13
|
+
#define FFF_CALL_HISTORY_LEN OVERRIDE_CALL_HIST_LEN
|
|
14
|
+
|
|
15
|
+
#include "../fff.h"
|
|
16
|
+
#include <gtest/gtest.h>
|
|
17
|
+
|
|
18
|
+
DEFINE_FFF_GLOBALS
|
|
19
|
+
|
|
20
|
+
FAKE_VOID_FUNC(voidfunc1, int);
|
|
21
|
+
FAKE_VOID_FUNC(voidfunc2, char, char);
|
|
22
|
+
FAKE_VALUE_FUNC(long, longfunc0);
|
|
23
|
+
FAKE_VOID_FUNC(voidfunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int);
|
|
24
|
+
|
|
25
|
+
class FFFTestSuite: public testing::Test
|
|
26
|
+
{
|
|
27
|
+
public:
|
|
28
|
+
void SetUp()
|
|
29
|
+
{
|
|
30
|
+
RESET_FAKE(voidfunc1);
|
|
31
|
+
RESET_FAKE(voidfunc2);
|
|
32
|
+
RESET_FAKE(longfunc0);
|
|
33
|
+
FFF_RESET_HISTORY();
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
#include "test_cases.include"
|
|
38
|
+
|
|
39
|
+
TEST_F(FFFTestSuite, default_constants_can_be_overridden)
|
|
40
|
+
{
|
|
41
|
+
unsigned sizeCallHistory = (sizeof fff.call_history) / (sizeof fff.call_history[0]);
|
|
42
|
+
ASSERT_EQ(OVERRIDE_CALL_HIST_LEN, sizeCallHistory);
|
|
43
|
+
ASSERT_EQ(OVERRIDE_ARG_HIST_LEN, voidfunc2_fake.arg_history_len);
|
|
44
|
+
}
|
|
45
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
|
|
2
|
+
#include "global_fakes.h"
|
|
3
|
+
#include "c_test_framework.h"
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
DEFINE_FFF_GLOBALS;
|
|
8
|
+
|
|
9
|
+
void setup()
|
|
10
|
+
{
|
|
11
|
+
RESET_FAKE(voidfunc1);
|
|
12
|
+
RESET_FAKE(voidfunc2);
|
|
13
|
+
RESET_FAKE(longfunc0);
|
|
14
|
+
RESET_FAKE(enumfunc0);
|
|
15
|
+
RESET_FAKE(structfunc0);
|
|
16
|
+
RESET_FAKE(voidfunc3var);
|
|
17
|
+
RESET_FAKE(strlcpy3);
|
|
18
|
+
|
|
19
|
+
FFF_RESET_HISTORY();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
#include "test_cases.include"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
int main()
|
|
27
|
+
{
|
|
28
|
+
setbuf(stdout, NULL);
|
|
29
|
+
fprintf(stdout, "-------------\n");
|
|
30
|
+
fprintf(stdout, "Running Tests\n");
|
|
31
|
+
fprintf(stdout, "-------------\n\n");
|
|
32
|
+
fflush(0);
|
|
33
|
+
|
|
34
|
+
/* Run tests */
|
|
35
|
+
RUN_TEST(FFFTestSuite, when_void_func_never_called_then_callcount_is_zero);
|
|
36
|
+
RUN_TEST(FFFTestSuite, when_void_func_called_once_then_callcount_is_one);
|
|
37
|
+
RUN_TEST(FFFTestSuite, when_void_func_called_once_and_reset_then_callcount_is_zero);
|
|
38
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_1_integer_arg_called_then_last_arg_captured);
|
|
39
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_1_integer_arg_called_twice_then_last_arg_captured);
|
|
40
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_1_integer_arg_called_and_reset_then_captured_arg_is_zero);
|
|
41
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_2_char_args_called_then_last_args_captured);
|
|
42
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_2_char_args_called_twice_then_last_args_captured);
|
|
43
|
+
RUN_TEST(FFFTestSuite, when_void_func_with_2_char_args_called_and_reset_then_captured_arg_is_zero);
|
|
44
|
+
RUN_TEST(FFFTestSuite, when_fake_func_called_then_const_arguments_captured);
|
|
45
|
+
|
|
46
|
+
RUN_TEST(FFFTestSuite, when_fake_func_created_default_history_is_fifty_calls);
|
|
47
|
+
RUN_TEST(FFFTestSuite, when_fake_func_called_then_arguments_captured_in_history);
|
|
48
|
+
RUN_TEST(FFFTestSuite, argument_history_is_reset_when_RESET_FAKE_called);
|
|
49
|
+
RUN_TEST(FFFTestSuite, when_fake_func_called_max_times_then_no_argument_histories_dropped);
|
|
50
|
+
RUN_TEST(FFFTestSuite, when_fake_func_called_max_times_plus_one_then_one_argument_history_dropped);
|
|
51
|
+
|
|
52
|
+
RUN_TEST(FFFTestSuite, value_func_will_return_zero_by_default);
|
|
53
|
+
RUN_TEST(FFFTestSuite, value_func_will_return_value_given);
|
|
54
|
+
RUN_TEST(FFFTestSuite, value_func_will_return_zero_after_reset);
|
|
55
|
+
RUN_TEST(FFFTestSuite, register_call_macro_registers_one_call);
|
|
56
|
+
RUN_TEST(FFFTestSuite, register_call_macro_registers_two_calls);
|
|
57
|
+
RUN_TEST(FFFTestSuite, reset_call_history_resets_call_history);
|
|
58
|
+
RUN_TEST(FFFTestSuite, call_history_will_not_write_past_array_bounds);
|
|
59
|
+
RUN_TEST(FFFTestSuite, calling_fake_registers_one_call);
|
|
60
|
+
|
|
61
|
+
RUN_TEST(FFFTestSuite, return_value_sequences_not_exhausted);
|
|
62
|
+
RUN_TEST(FFFTestSuite, return_value_sequences_exhausted);
|
|
63
|
+
|
|
64
|
+
RUN_TEST(FFFTestSuite, can_register_custom_fake);
|
|
65
|
+
RUN_TEST(FFFTestSuite, when_value_custom_fake_called_THEN_it_returns_custom_return_value);
|
|
66
|
+
|
|
67
|
+
RUN_TEST(FFFTestSuite, use_vararg_fake_with_different_number_of_arguments);
|
|
68
|
+
|
|
69
|
+
RUN_TEST(FFFTestSuite, can_capture_upto_20_arguments_correctly);
|
|
70
|
+
|
|
71
|
+
printf("\n-------------\n");
|
|
72
|
+
printf("Complete\n");
|
|
73
|
+
printf("-------------\n\n");
|
|
74
|
+
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
extern "C"{
|
|
3
|
+
#include "global_fakes.h"
|
|
4
|
+
}
|
|
5
|
+
#include <gtest/gtest.h>
|
|
6
|
+
|
|
7
|
+
DEFINE_FFF_GLOBALS;
|
|
8
|
+
|
|
9
|
+
class FFFTestSuite: public testing::Test
|
|
10
|
+
{
|
|
11
|
+
public:
|
|
12
|
+
void SetUp()
|
|
13
|
+
{
|
|
14
|
+
RESET_FAKE(voidfunc1);
|
|
15
|
+
RESET_FAKE(voidfunc2);
|
|
16
|
+
RESET_FAKE(longfunc0);
|
|
17
|
+
FFF_RESET_HISTORY();
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
#include "test_cases.include"
|
|
22
|
+
|
|
23
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#include "global_fakes.h"
|
|
2
|
+
#include <string.h> // for memcpy
|
|
3
|
+
|
|
4
|
+
DEFINE_FAKE_VOID_FUNC1(voidfunc1, int);
|
|
5
|
+
DEFINE_FAKE_VOID_FUNC2(voidfunc2, char, char);
|
|
6
|
+
DEFINE_FAKE_VALUE_FUNC0(long, longfunc0);
|
|
7
|
+
DEFINE_FAKE_VALUE_FUNC0(enum MYBOOL, enumfunc0);
|
|
8
|
+
DEFINE_FAKE_VALUE_FUNC0(struct MyStruct, structfunc0);
|
|
9
|
+
DEFINE_FAKE_VOID_FUNC3_VARARG(voidfunc3var, const char *, int, ...);
|
|
10
|
+
#ifndef __cplusplus
|
|
11
|
+
DEFINE_FAKE_VALUE_FUNC3(int, strlcpy3, char* const, const char* const, const size_t);
|
|
12
|
+
#endif /* __cplusplus */
|
|
13
|
+
DEFINE_FAKE_VOID_FUNC20(voidfunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
#ifndef GLOBAL_FAKES_H_
|
|
3
|
+
#define GLOBAL_FAKES_H_
|
|
4
|
+
|
|
5
|
+
#include "../fff.h"
|
|
6
|
+
#include "string.h"
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
//// Imaginary production code header file ///
|
|
10
|
+
void voidfunc1(int);
|
|
11
|
+
void voidfunc2(char, char);
|
|
12
|
+
long longfunc0();
|
|
13
|
+
void voidfunc3var(const char *fmt, int argc, ...);
|
|
14
|
+
void voidfunc20(int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int);
|
|
15
|
+
|
|
16
|
+
enum MYBOOL { FALSE = 899, TRUE };
|
|
17
|
+
struct MyStruct {
|
|
18
|
+
int x;
|
|
19
|
+
int y;
|
|
20
|
+
};
|
|
21
|
+
enum MYBOOL enumfunc();
|
|
22
|
+
struct MyStruct structfunc();
|
|
23
|
+
//// End Imaginary production code header file ///
|
|
24
|
+
|
|
25
|
+
DECLARE_FAKE_VOID_FUNC1(voidfunc1, int);
|
|
26
|
+
DECLARE_FAKE_VOID_FUNC2(voidfunc2, char, char);
|
|
27
|
+
DECLARE_FAKE_VALUE_FUNC0(long, longfunc0);
|
|
28
|
+
DECLARE_FAKE_VALUE_FUNC0(enum MYBOOL, enumfunc0);
|
|
29
|
+
DECLARE_FAKE_VALUE_FUNC0(struct MyStruct, structfunc0);
|
|
30
|
+
DECLARE_FAKE_VOID_FUNC3_VARARG(voidfunc3var, const char *, int, ...);
|
|
31
|
+
DECLARE_FAKE_VOID_FUNC20(voidfunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int);
|
|
32
|
+
|
|
33
|
+
#ifndef __cplusplus
|
|
34
|
+
int strlcpy3(char* const, const char* const, const size_t);
|
|
35
|
+
DECLARE_FAKE_VALUE_FUNC3(int, strlcpy3, char* const, const char* const, const size_t);
|
|
36
|
+
#endif /* __cplusplus */
|
|
37
|
+
#endif /* GLOBAL_FAKES_H_ */
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
TEST_F(FFFTestSuite, when_void_func_never_called_then_callcount_is_zero)
|
|
4
|
+
{
|
|
5
|
+
ASSERT_EQ(voidfunc1_fake.call_count, 0u);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
TEST_F(FFFTestSuite, when_void_func_called_once_then_callcount_is_one)
|
|
9
|
+
{
|
|
10
|
+
voidfunc1(66);
|
|
11
|
+
ASSERT_EQ(voidfunc1_fake.call_count, 1u);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
TEST_F(FFFTestSuite, when_void_func_called_once_and_reset_then_callcount_is_zero)
|
|
15
|
+
{
|
|
16
|
+
voidfunc1(66);
|
|
17
|
+
RESET_FAKE(voidfunc1);
|
|
18
|
+
ASSERT_EQ(voidfunc1_fake.call_count, 0u);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Single Argument
|
|
22
|
+
TEST_F(FFFTestSuite, when_void_func_with_1_integer_arg_called_then_last_arg_captured)
|
|
23
|
+
{
|
|
24
|
+
voidfunc1(77);
|
|
25
|
+
ASSERT_EQ(voidfunc1_fake.arg0_val, 77);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
TEST_F(FFFTestSuite, when_void_func_with_1_integer_arg_called_twice_then_last_arg_captured)
|
|
29
|
+
{
|
|
30
|
+
voidfunc1(77);
|
|
31
|
+
voidfunc1(12);
|
|
32
|
+
ASSERT_EQ(voidfunc1_fake.arg0_val, 12);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
TEST_F(FFFTestSuite, when_void_func_with_1_integer_arg_called_and_reset_then_captured_arg_is_zero)
|
|
36
|
+
{
|
|
37
|
+
voidfunc1(11);
|
|
38
|
+
RESET_FAKE(voidfunc1);
|
|
39
|
+
ASSERT_EQ(voidfunc1_fake.arg0_val, 0);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Two Arguments
|
|
43
|
+
TEST_F(FFFTestSuite, when_void_func_with_2_char_args_called_then_last_args_captured)
|
|
44
|
+
{
|
|
45
|
+
voidfunc2('a', 'b');
|
|
46
|
+
ASSERT_EQ(voidfunc2_fake.arg0_val, 'a');
|
|
47
|
+
ASSERT_EQ(voidfunc2_fake.arg1_val, 'b');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
TEST_F(FFFTestSuite, when_void_func_with_2_char_args_called_twice_then_last_args_captured)
|
|
51
|
+
{
|
|
52
|
+
voidfunc2('a', 'b');
|
|
53
|
+
voidfunc2('c', 'd');
|
|
54
|
+
ASSERT_EQ(voidfunc2_fake.arg0_val, 'c');
|
|
55
|
+
ASSERT_EQ(voidfunc2_fake.arg1_val, 'd');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
TEST_F(FFFTestSuite, when_void_func_with_2_char_args_called_and_reset_then_captured_arg_is_zero)
|
|
59
|
+
{
|
|
60
|
+
voidfunc2('e', 'f');
|
|
61
|
+
RESET_FAKE(voidfunc2);
|
|
62
|
+
ASSERT_EQ(voidfunc2_fake.arg0_val, 0);
|
|
63
|
+
ASSERT_EQ(voidfunc2_fake.arg1_val, 0);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#ifndef __cplusplus
|
|
67
|
+
TEST_F(FFFTestSuite, when_fake_func_called_then_const_arguments_captured)
|
|
68
|
+
{
|
|
69
|
+
char dst[80];
|
|
70
|
+
strlcpy3(dst, __FUNCTION__, sizeof(__FUNCTION__));
|
|
71
|
+
}
|
|
72
|
+
#endif /* __cplusplus */
|
|
73
|
+
|
|
74
|
+
// Argument history
|
|
75
|
+
TEST_F(FFFTestSuite, when_fake_func_created_default_history_is_fifty_calls)
|
|
76
|
+
{
|
|
77
|
+
ASSERT_EQ(FFF_ARG_HISTORY_LEN, (sizeof voidfunc2_fake.arg0_history) / (sizeof voidfunc2_fake.arg0_history[0]));
|
|
78
|
+
ASSERT_EQ(FFF_ARG_HISTORY_LEN, (sizeof voidfunc2_fake.arg1_history) / (sizeof voidfunc2_fake.arg1_history[0]));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
TEST_F(FFFTestSuite, when_fake_func_called_then_arguments_captured_in_history)
|
|
82
|
+
{
|
|
83
|
+
voidfunc2('g', 'h');
|
|
84
|
+
ASSERT_EQ('g', voidfunc2_fake.arg0_history[0]);
|
|
85
|
+
ASSERT_EQ('h', voidfunc2_fake.arg1_history[0]);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
TEST_F(FFFTestSuite, argument_history_is_reset_when_RESET_FAKE_called)
|
|
89
|
+
{
|
|
90
|
+
//given
|
|
91
|
+
voidfunc2('g', 'h');
|
|
92
|
+
ASSERT_EQ('g', voidfunc2_fake.arg0_history[0]);
|
|
93
|
+
ASSERT_EQ('h', voidfunc2_fake.arg1_history[0]);
|
|
94
|
+
//when
|
|
95
|
+
RESET_FAKE(voidfunc2);
|
|
96
|
+
//then
|
|
97
|
+
ASSERT_EQ('\0', voidfunc2_fake.arg0_history[0]);
|
|
98
|
+
ASSERT_EQ('\0', voidfunc2_fake.arg1_history[0]);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
TEST_F(FFFTestSuite, when_fake_func_called_max_times_then_no_argument_histories_dropped)
|
|
102
|
+
{
|
|
103
|
+
unsigned int i;
|
|
104
|
+
for (i = 0; i < FFF_ARG_HISTORY_LEN; i++)
|
|
105
|
+
{
|
|
106
|
+
voidfunc2('1' + i, '2' + i);
|
|
107
|
+
}
|
|
108
|
+
ASSERT_EQ(0u, voidfunc2_fake.arg_histories_dropped);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
TEST_F(FFFTestSuite, when_fake_func_called_max_times_plus_one_then_one_argument_history_dropped)
|
|
112
|
+
{
|
|
113
|
+
unsigned int i;
|
|
114
|
+
for (i = 0; i < FFF_ARG_HISTORY_LEN; i++)
|
|
115
|
+
{
|
|
116
|
+
voidfunc2('1' + i, '2' + i);
|
|
117
|
+
}
|
|
118
|
+
voidfunc2('1', '2');
|
|
119
|
+
ASSERT_EQ(1u, voidfunc2_fake.arg_histories_dropped);
|
|
120
|
+
// or in other words..
|
|
121
|
+
ASSERT_TRUE(voidfunc2_fake.call_count > voidfunc2_fake.arg_history_len);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Return values
|
|
125
|
+
TEST_F(FFFTestSuite, value_func_will_return_zero_by_default)
|
|
126
|
+
{
|
|
127
|
+
ASSERT_EQ(0l, longfunc0());
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
TEST_F(FFFTestSuite, value_func_will_return_value_given)
|
|
131
|
+
{
|
|
132
|
+
longfunc0_fake.return_val = 99l;
|
|
133
|
+
ASSERT_EQ(99l, longfunc0());
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
TEST_F(FFFTestSuite, value_func_will_return_zero_after_reset)
|
|
137
|
+
{
|
|
138
|
+
longfunc0_fake.return_val = 99l;
|
|
139
|
+
RESET_FAKE(longfunc0);
|
|
140
|
+
ASSERT_EQ(0l, longfunc0());
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
TEST_F(FFFTestSuite, register_call_macro_registers_one_call)
|
|
144
|
+
{
|
|
145
|
+
REGISTER_CALL(longfunc0);
|
|
146
|
+
ASSERT_EQ(fff.call_history[0], (void *)longfunc0);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
TEST_F(FFFTestSuite, register_call_macro_registers_two_calls)
|
|
150
|
+
{
|
|
151
|
+
REGISTER_CALL(longfunc0);
|
|
152
|
+
REGISTER_CALL(voidfunc2);
|
|
153
|
+
|
|
154
|
+
ASSERT_EQ(fff.call_history[0], (void *)longfunc0);
|
|
155
|
+
ASSERT_EQ(fff.call_history[1], (void *)voidfunc2);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
TEST_F(FFFTestSuite, reset_call_history_resets_call_history)
|
|
159
|
+
{
|
|
160
|
+
REGISTER_CALL(longfunc0);
|
|
161
|
+
FFF_RESET_HISTORY();
|
|
162
|
+
REGISTER_CALL(voidfunc2);
|
|
163
|
+
|
|
164
|
+
ASSERT_EQ(1u, fff.call_history_idx);
|
|
165
|
+
ASSERT_EQ(fff.call_history[0], (void *)voidfunc2);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
TEST_F(FFFTestSuite, call_history_will_not_write_past_array_bounds)
|
|
169
|
+
{
|
|
170
|
+
for (unsigned int i = 0; i < FFF_CALL_HISTORY_LEN + 1; i++)
|
|
171
|
+
{
|
|
172
|
+
REGISTER_CALL(longfunc0);
|
|
173
|
+
}
|
|
174
|
+
ASSERT_EQ(FFF_CALL_HISTORY_LEN, fff.call_history_idx);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
TEST_F(FFFTestSuite, calling_fake_registers_one_call)
|
|
178
|
+
{
|
|
179
|
+
longfunc0();
|
|
180
|
+
ASSERT_EQ(fff.call_history_idx, 1u);
|
|
181
|
+
ASSERT_EQ(fff.call_history[0], (void *)longfunc0);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
TEST_F(FFFTestSuite, return_value_sequences_not_exhausted)
|
|
185
|
+
{
|
|
186
|
+
long myReturnVals[3] = { 3, 7, 9 };
|
|
187
|
+
SET_RETURN_SEQ(longfunc0, myReturnVals, 3);
|
|
188
|
+
ASSERT_EQ(myReturnVals[0], longfunc0());
|
|
189
|
+
ASSERT_EQ(myReturnVals[1], longfunc0());
|
|
190
|
+
ASSERT_EQ(myReturnVals[2], longfunc0());
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
TEST_F(FFFTestSuite, return_value_sequences_exhausted)
|
|
195
|
+
{
|
|
196
|
+
long myReturnVals[3] = { 3, 7, 9 };
|
|
197
|
+
SET_RETURN_SEQ(longfunc0, myReturnVals, 3);
|
|
198
|
+
ASSERT_EQ(myReturnVals[0], longfunc0());
|
|
199
|
+
ASSERT_EQ(myReturnVals[1], longfunc0());
|
|
200
|
+
ASSERT_EQ(myReturnVals[2], longfunc0());
|
|
201
|
+
ASSERT_EQ(myReturnVals[2], longfunc0());
|
|
202
|
+
ASSERT_EQ(myReturnVals[2], longfunc0());
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
TEST_F(FFFTestSuite, return_value_sequences_reset)
|
|
206
|
+
{
|
|
207
|
+
long myReturnVals[3] = { 3, 7, 9 };
|
|
208
|
+
SET_RETURN_SEQ(longfunc0, myReturnVals, 3);
|
|
209
|
+
ASSERT_EQ(myReturnVals[0], longfunc0());
|
|
210
|
+
ASSERT_EQ(myReturnVals[1], longfunc0());
|
|
211
|
+
RESET_FAKE(longfunc0);
|
|
212
|
+
ASSERT_EQ(0, longfunc0());
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
static int my_custom_fake_called = 0;
|
|
216
|
+
void my_custom_fake(char a, char b)
|
|
217
|
+
{
|
|
218
|
+
my_custom_fake_called++;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
TEST_F(FFFTestSuite, can_register_custom_fake)
|
|
222
|
+
{
|
|
223
|
+
voidfunc2_fake.custom_fake = my_custom_fake;
|
|
224
|
+
voidfunc2('a', 'b');
|
|
225
|
+
ASSERT_EQ(1, my_custom_fake_called);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
//DECLARE_FAKE_VALUE_FUNC0(long, longfunc0);
|
|
229
|
+
#define MEANING_OF_LIFE 42
|
|
230
|
+
long my_custom_value_fake(void)
|
|
231
|
+
{
|
|
232
|
+
return MEANING_OF_LIFE;
|
|
233
|
+
}
|
|
234
|
+
TEST_F(FFFTestSuite, when_value_custom_fake_called_THEN_it_returns_custom_return_value)
|
|
235
|
+
{
|
|
236
|
+
longfunc0_fake.custom_fake = my_custom_value_fake;
|
|
237
|
+
long retval = longfunc0();
|
|
238
|
+
ASSERT_EQ(MEANING_OF_LIFE, retval);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
#ifndef __cplusplus
|
|
242
|
+
TEST_F(FFFTestSuite, use_vararg_fake_with_different_number_of_arguments)
|
|
243
|
+
{
|
|
244
|
+
voidfunc3var("0 parameters", 0);
|
|
245
|
+
voidfunc3var("1 parameter", 1, 10);
|
|
246
|
+
voidfunc3var("2 parameters", 2, 10, 20);
|
|
247
|
+
voidfunc3var("3 parameters", 3, 10, 20, 30);
|
|
248
|
+
}
|
|
249
|
+
#endif /* __cplusplus */
|
|
250
|
+
|
|
251
|
+
TEST_F(FFFTestSuite, can_capture_upto_20_arguments_correctly)
|
|
252
|
+
{
|
|
253
|
+
voidfunc20(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
|
|
254
|
+
ASSERT_EQ(0, voidfunc20_fake.arg0_val);
|
|
255
|
+
ASSERT_EQ(1, voidfunc20_fake.arg1_val);
|
|
256
|
+
ASSERT_EQ(2, voidfunc20_fake.arg2_val);
|
|
257
|
+
ASSERT_EQ(3, voidfunc20_fake.arg3_val);
|
|
258
|
+
ASSERT_EQ(4, voidfunc20_fake.arg4_val);
|
|
259
|
+
ASSERT_EQ(5, voidfunc20_fake.arg5_val);
|
|
260
|
+
ASSERT_EQ(6, voidfunc20_fake.arg6_val);
|
|
261
|
+
ASSERT_EQ(7, voidfunc20_fake.arg7_val);
|
|
262
|
+
ASSERT_EQ(8, voidfunc20_fake.arg8_val);
|
|
263
|
+
ASSERT_EQ(9, voidfunc20_fake.arg9_val);
|
|
264
|
+
ASSERT_EQ(10, voidfunc20_fake.arg10_val);
|
|
265
|
+
ASSERT_EQ(11, voidfunc20_fake.arg11_val);
|
|
266
|
+
ASSERT_EQ(12, voidfunc20_fake.arg12_val);
|
|
267
|
+
ASSERT_EQ(13, voidfunc20_fake.arg13_val);
|
|
268
|
+
ASSERT_EQ(14, voidfunc20_fake.arg14_val);
|
|
269
|
+
ASSERT_EQ(15, voidfunc20_fake.arg15_val);
|
|
270
|
+
ASSERT_EQ(16, voidfunc20_fake.arg16_val);
|
|
271
|
+
ASSERT_EQ(17, voidfunc20_fake.arg17_val);
|
|
272
|
+
ASSERT_EQ(18, voidfunc20_fake.arg18_val);
|
|
273
|
+
ASSERT_EQ(19, voidfunc20_fake.arg19_val);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
|