ceedling 0.28.1 → 0.28.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/ceedling +3 -2
- data/docs/CeedlingPacket.md +4 -0
- data/lib/ceedling/configurator_builder.rb +26 -0
- data/lib/ceedling/configurator_setup.rb +1 -0
- data/lib/ceedling/file_finder.rb +7 -1
- data/lib/ceedling/flaginator.rb +28 -8
- data/lib/ceedling/rules_release.rake +3 -3
- data/lib/ceedling/rules_release_deep_dependencies.rake +1 -1
- data/lib/ceedling/version.rb +3 -3
- data/plugins/gcov/config/defaults.yml +4 -3
- data/plugins/module_generator/lib/module_generator.rb +1 -1
- data/plugins/subprojects/README.md +63 -63
- data/plugins/subprojects/config/defaults.yml +33 -33
- data/plugins/subprojects/lib/subprojects.rb +92 -92
- data/plugins/subprojects/subprojects.rake +78 -78
- data/vendor/cmock/docs/CMock_Summary.md +75 -60
- data/vendor/cmock/lib/cmock_config.rb +1 -0
- data/vendor/cmock/lib/cmock_generator.rb +13 -1
- data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +1 -1
- data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +0 -14
- data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +4 -0
- data/vendor/cmock/lib/cmock_generator_utils.rb +4 -5
- data/vendor/cmock/lib/cmock_header_parser.rb +26 -28
- data/vendor/cmock/lib/cmock_plugin_manager.rb +27 -12
- data/vendor/cmock/scripts/create_makefile.rb +5 -4
- data/vendor/cmock/scripts/test_summary.rb +1 -1
- data/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +167 -0
- data/vendor/cmock/test/system/test_interactions/ignore_strict_mock_calling.yml +37 -0
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +14 -1
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +25 -24
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +101 -3
- data/vendor/unity/README.md +11 -0
- data/vendor/unity/auto/generate_module.rb +3 -3
- data/vendor/unity/auto/stylize_as_junit.rb +0 -0
- data/vendor/unity/docs/UnityAssertionsReference.md +54 -0
- data/vendor/unity/examples/unity_config.h +6 -4
- data/vendor/unity/extras/fixture/rakefile_helper.rb +1 -1
- data/vendor/unity/extras/fixture/test/Makefile +1 -0
- data/vendor/unity/src/unity.c +121 -73
- data/vendor/unity/src/unity.h +60 -0
- data/vendor/unity/src/unity_internals.h +47 -7
- data/vendor/unity/test/Makefile +1 -0
- data/vendor/unity/test/rakefile_helper.rb +1 -1
- data/vendor/unity/test/tests/testunity.c +508 -164
- metadata +3 -423
- data/out.fail +0 -21
- data/plugins/fake_function_framework/vendor/fff/LICENSE +0 -25
- data/plugins/fake_function_framework/vendor/fff/Makefile +0 -10
- data/plugins/fake_function_framework/vendor/fff/README.md +0 -454
- data/plugins/fake_function_framework/vendor/fff/buildandtest +0 -15
- data/plugins/fake_function_framework/vendor/fff/examples/Makefile +0 -7
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/Makefile +0 -64
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.c +0 -24
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.h +0 -11
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.test.cpp +0 -50
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -62
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -15
- data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/registers.h +0 -13
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -17
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/Makefile +0 -67
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -21
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI.c +0 -48
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI.h +0 -12
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -183
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -136
- data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -34
- data/plugins/fake_function_framework/vendor/fff/fakegen.rb +0 -420
- data/plugins/fake_function_framework/vendor/fff/fff.h +0 -5112
- data/plugins/fake_function_framework/vendor/fff/gtest/Makefile +0 -22
- data/plugins/fake_function_framework/vendor/fff/gtest/gtest-all.cc +0 -9118
- data/plugins/fake_function_framework/vendor/fff/gtest/gtest-main.cc +0 -6
- data/plugins/fake_function_framework/vendor/fff/gtest/gtest.h +0 -19537
- data/plugins/fake_function_framework/vendor/fff/test/Makefile +0 -81
- data/plugins/fake_function_framework/vendor/fff/test/c_test_framework.h +0 -15
- data/plugins/fake_function_framework/vendor/fff/test/fff_test_c.c +0 -108
- data/plugins/fake_function_framework/vendor/fff/test/fff_test_cpp.cpp +0 -45
- data/plugins/fake_function_framework/vendor/fff/test/fff_test_global_c.c +0 -76
- data/plugins/fake_function_framework/vendor/fff/test/fff_test_global_cpp.cpp +0 -23
- data/plugins/fake_function_framework/vendor/fff/test/global_fakes.c +0 -13
- data/plugins/fake_function_framework/vendor/fff/test/global_fakes.h +0 -37
- data/plugins/fake_function_framework/vendor/fff/test/test_cases.include +0 -276
- data/vendor/c_exception/vendor/unity/README.md +0 -220
- data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +0 -118
- data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +0 -39
- data/vendor/c_exception/vendor/unity/auto/generate_config.yml +0 -36
- data/vendor/c_exception/vendor/unity/auto/generate_module.rb +0 -308
- data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +0 -437
- data/vendor/c_exception/vendor/unity/auto/parse_output.rb +0 -220
- data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +0 -252
- data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +0 -25
- data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +0 -6
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +0 -139
- data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +0 -136
- data/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +0 -146
- data/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +0 -207
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +0 -716
- data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +0 -398
- data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +0 -191
- data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +0 -242
- data/vendor/c_exception/vendor/unity/docs/license.txt +0 -21
- data/vendor/c_exception/vendor/unity/examples/example_1/makefile +0 -71
- data/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +0 -5
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +0 -24
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +0 -3
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +0 -11
- data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +0 -2
- data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +0 -62
- data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +0 -31
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -53
- data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -57
- data/vendor/c_exception/vendor/unity/examples/example_2/makefile +0 -70
- data/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +0 -5
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +0 -24
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +0 -3
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +0 -11
- data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +0 -2
- data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +0 -64
- data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +0 -33
- data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +0 -9
- data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +0 -11
- data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +0 -12
- data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +0 -10
- data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +0 -12
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -43
- data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +0 -249
- data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +0 -13
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +0 -24
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +0 -3
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +0 -11
- data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +0 -2
- data/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +0 -46
- data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +0 -62
- data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +0 -31
- data/vendor/c_exception/vendor/unity/examples/unity_config.h +0 -237
- data/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +0 -26
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +0 -48
- data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
- data/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +0 -9
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +0 -432
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +0 -83
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -51
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -47
- data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +0 -74
- data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +0 -22
- data/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +0 -39
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -543
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -57
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -57
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
- data/vendor/c_exception/vendor/unity/release/build.info +0 -2
- data/vendor/c_exception/vendor/unity/release/version.info +0 -2
- data/vendor/c_exception/vendor/unity/src/unity.c +0 -1517
- data/vendor/c_exception/vendor/unity/src/unity.h +0 -339
- data/vendor/c_exception/vendor/unity/src/unity_internals.h +0 -784
- data/vendor/c_exception/vendor/unity/test/Makefile +0 -63
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +0 -61
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +0 -57
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +0 -55
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +0 -15
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -80
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +0 -76
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +0 -75
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +0 -13
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -89
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -89
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +0 -77
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -89
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -89
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -90
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +0 -67
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +0 -70
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +0 -58
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +0 -67
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +0 -70
- data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +0 -71
- data/vendor/c_exception/vendor/unity/test/rakefile +0 -125
- data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +0 -260
- data/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +0 -158
- data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -78
- data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +0 -78
- data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +0 -49
- data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +0 -50
- data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +0 -47
- data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -59
- data/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +0 -47
- data/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +0 -101
- data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +0 -90
- data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +0 -80
- data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -80
- data/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -94
- data/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -84
- data/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +0 -95
- data/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -86
- data/vendor/c_exception/vendor/unity/test/testdata/CException.h +0 -11
- data/vendor/c_exception/vendor/unity/test/testdata/Defs.h +0 -8
- data/vendor/c_exception/vendor/unity/test/testdata/cmock.h +0 -14
- data/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +0 -13
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +0 -183
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +0 -67
- data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +0 -192
- data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +0 -1252
- data/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +0 -110
- data/vendor/c_exception/vendor/unity/test/tests/testunity.c +0 -4993
- data/vendor/cmock/vendor/c_exception/Gemfile +0 -4
- data/vendor/cmock/vendor/c_exception/Gemfile.lock +0 -12
- data/vendor/cmock/vendor/c_exception/LICENSE.txt +0 -30
- data/vendor/cmock/vendor/c_exception/README.md +0 -162
- data/vendor/cmock/vendor/c_exception/Rakefile +0 -42
- data/vendor/cmock/vendor/c_exception/docs/CException.md +0 -292
- data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +0 -207
- data/vendor/cmock/vendor/c_exception/lib/CException.c +0 -46
- data/vendor/cmock/vendor/c_exception/lib/CException.h +0 -110
- data/vendor/cmock/vendor/c_exception/makefile +0 -24
- data/vendor/cmock/vendor/c_exception/release/build.info +0 -2
- data/vendor/cmock/vendor/c_exception/release/version.info +0 -2
- data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +0 -46
- data/vendor/cmock/vendor/c_exception/test/TestException.c +0 -391
- data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +0 -67
- data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +0 -220
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +0 -118
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +0 -39
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +0 -36
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +0 -308
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +0 -437
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parse_output.rb +0 -220
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +0 -252
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +0 -25
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +0 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +0 -139
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +0 -136
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +0 -146
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +0 -207
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +0 -716
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +0 -398
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +0 -191
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +0 -242
- data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +0 -21
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +0 -71
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +0 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +0 -24
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +0 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +0 -11
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +0 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +0 -62
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +0 -31
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -53
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -57
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +0 -70
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +0 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +0 -24
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +0 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +0 -11
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +0 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +0 -64
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +0 -33
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +0 -9
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +0 -11
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +0 -12
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +0 -10
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +0 -12
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -43
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +0 -249
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +0 -13
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +0 -24
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +0 -3
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +0 -11
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +0 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +0 -46
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +0 -62
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +0 -31
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +0 -237
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +0 -26
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +0 -48
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +0 -9
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +0 -432
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +0 -83
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -51
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -47
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +0 -74
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +0 -22
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +0 -39
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -543
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -57
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -57
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +0 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +0 -2
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +0 -1517
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +0 -339
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +0 -784
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +0 -63
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +0 -61
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +0 -57
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +0 -55
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +0 -15
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -80
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +0 -76
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +0 -75
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +0 -13
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -89
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -89
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +0 -77
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -89
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -89
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -90
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +0 -67
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +0 -70
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +0 -58
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +0 -67
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +0 -70
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +0 -71
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +0 -125
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +0 -260
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +0 -158
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +0 -78
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +0 -78
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +0 -49
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +0 -50
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +0 -47
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -59
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +0 -47
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +0 -101
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +0 -90
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +0 -80
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -80
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -94
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -84
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +0 -95
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -86
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/CException.h +0 -11
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/Defs.h +0 -8
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/cmock.h +0 -14
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +0 -13
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +0 -183
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +0 -67
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +0 -192
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +0 -1252
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +0 -110
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +0 -4993
- data/vendor/cmock/vendor/unity/README.md +0 -220
- data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +0 -118
- data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +0 -39
- data/vendor/cmock/vendor/unity/auto/generate_config.yml +0 -36
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +0 -308
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +0 -437
- data/vendor/cmock/vendor/unity/auto/parse_output.rb +0 -220
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +0 -252
- data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +0 -25
- data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +0 -6
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +0 -139
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +0 -136
- data/vendor/cmock/vendor/unity/auto/unity_to_junit.py +0 -146
- data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +0 -207
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +0 -716
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +0 -398
- data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +0 -191
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +0 -242
- data/vendor/cmock/vendor/unity/docs/license.txt +0 -21
- data/vendor/cmock/vendor/unity/examples/example_1/makefile +0 -71
- data/vendor/cmock/vendor/unity/examples/example_1/readme.txt +0 -5
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +0 -24
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +0 -3
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +0 -11
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +0 -2
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +0 -62
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +0 -31
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -53
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -57
- data/vendor/cmock/vendor/unity/examples/example_2/makefile +0 -70
- data/vendor/cmock/vendor/unity/examples/example_2/readme.txt +0 -5
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +0 -24
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +0 -3
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +0 -11
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +0 -2
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +0 -64
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +0 -33
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +0 -9
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +0 -11
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +0 -12
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +0 -10
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +0 -12
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +0 -43
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +0 -249
- data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +0 -13
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +0 -24
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +0 -3
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +0 -11
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +0 -2
- data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +0 -46
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +0 -62
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +0 -31
- data/vendor/cmock/vendor/unity/examples/unity_config.h +0 -237
- data/vendor/cmock/vendor/unity/extras/eclipse/error_parsers.txt +0 -26
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +0 -48
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +0 -178
- data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +0 -9
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +0 -432
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +0 -83
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +0 -51
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +0 -47
- data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +0 -74
- data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +0 -22
- data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +0 -39
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +0 -543
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +0 -57
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +0 -57
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +0 -17
- data/vendor/cmock/vendor/unity/release/build.info +0 -2
- data/vendor/cmock/vendor/unity/release/version.info +0 -2
- data/vendor/cmock/vendor/unity/src/unity.c +0 -1517
- data/vendor/cmock/vendor/unity/src/unity.h +0 -339
- data/vendor/cmock/vendor/unity/src/unity_internals.h +0 -784
- data/vendor/cmock/vendor/unity/test/Makefile +0 -63
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +0 -61
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +0 -57
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +0 -55
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +0 -15
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +0 -80
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +0 -76
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +0 -75
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +0 -13
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +0 -89
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +0 -89
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +0 -77
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +0 -89
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +0 -89
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +0 -90
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +0 -67
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +0 -70
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +0 -58
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +0 -67
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +0 -70
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +0 -71
- data/vendor/cmock/vendor/unity/test/rakefile +0 -125
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +0 -260
- data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +0 -158
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -78
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +0 -78
- data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +0 -49
- data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +0 -50
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +0 -47
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -59
- data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +0 -47
- data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +0 -101
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +0 -90
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +0 -80
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -80
- data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -94
- data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -84
- data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +0 -95
- data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -86
- data/vendor/cmock/vendor/unity/test/testdata/CException.h +0 -11
- data/vendor/cmock/vendor/unity/test/testdata/Defs.h +0 -8
- data/vendor/cmock/vendor/unity/test/testdata/cmock.h +0 -14
- data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +0 -13
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +0 -183
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +0 -67
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +0 -192
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +0 -1252
- data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +0 -110
- data/vendor/cmock/vendor/unity/test/tests/testunity.c +0 -4993
@@ -1,437 +0,0 @@
|
|
1
|
-
# ==========================================
|
2
|
-
# Unity Project - A Test Framework for C
|
3
|
-
# Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
|
4
|
-
# [Released under MIT License. Please refer to license.txt for details]
|
5
|
-
# ==========================================
|
6
|
-
|
7
|
-
File.expand_path(File.join(File.dirname(__FILE__), 'colour_prompt'))
|
8
|
-
|
9
|
-
class UnityTestRunnerGenerator
|
10
|
-
def initialize(options = nil)
|
11
|
-
@options = UnityTestRunnerGenerator.default_options
|
12
|
-
case options
|
13
|
-
when NilClass then @options
|
14
|
-
when String then @options.merge!(UnityTestRunnerGenerator.grab_config(options))
|
15
|
-
when Hash then @options.merge!(options)
|
16
|
-
else raise 'If you specify arguments, it should be a filename or a hash of options'
|
17
|
-
end
|
18
|
-
require "#{File.expand_path(File.dirname(__FILE__))}/type_sanitizer"
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.default_options
|
22
|
-
{
|
23
|
-
includes: [],
|
24
|
-
defines: [],
|
25
|
-
plugins: [],
|
26
|
-
framework: :unity,
|
27
|
-
test_prefix: 'test|spec|should',
|
28
|
-
mock_prefix: 'Mock',
|
29
|
-
setup_name: 'setUp',
|
30
|
-
teardown_name: 'tearDown',
|
31
|
-
main_name: 'main', # set to :auto to automatically generate each time
|
32
|
-
main_export_decl: '',
|
33
|
-
cmdline_args: false,
|
34
|
-
use_param_tests: false
|
35
|
-
}
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.grab_config(config_file)
|
39
|
-
options = default_options
|
40
|
-
unless config_file.nil? || config_file.empty?
|
41
|
-
require 'yaml'
|
42
|
-
yaml_guts = YAML.load_file(config_file)
|
43
|
-
options.merge!(yaml_guts[:unity] || yaml_guts[:cmock])
|
44
|
-
raise "No :unity or :cmock section found in #{config_file}" unless options
|
45
|
-
end
|
46
|
-
options
|
47
|
-
end
|
48
|
-
|
49
|
-
def run(input_file, output_file, options = nil)
|
50
|
-
@options.merge!(options) unless options.nil?
|
51
|
-
|
52
|
-
# pull required data from source file
|
53
|
-
source = File.read(input_file)
|
54
|
-
source = source.force_encoding('ISO-8859-1').encode('utf-8', replace: nil)
|
55
|
-
tests = find_tests(source)
|
56
|
-
headers = find_includes(source)
|
57
|
-
testfile_includes = (headers[:local] + headers[:system])
|
58
|
-
used_mocks = find_mocks(testfile_includes)
|
59
|
-
testfile_includes = (testfile_includes - used_mocks)
|
60
|
-
testfile_includes.delete_if { |inc| inc =~ /(unity|cmock)/ }
|
61
|
-
|
62
|
-
# build runner file
|
63
|
-
generate(input_file, output_file, tests, used_mocks, testfile_includes)
|
64
|
-
|
65
|
-
# determine which files were used to return them
|
66
|
-
all_files_used = [input_file, output_file]
|
67
|
-
all_files_used += testfile_includes.map { |filename| filename + '.c' } unless testfile_includes.empty?
|
68
|
-
all_files_used += @options[:includes] unless @options[:includes].empty?
|
69
|
-
all_files_used += headers[:linkonly] unless headers[:linkonly].empty?
|
70
|
-
all_files_used.uniq
|
71
|
-
end
|
72
|
-
|
73
|
-
def generate(input_file, output_file, tests, used_mocks, testfile_includes)
|
74
|
-
File.open(output_file, 'w') do |output|
|
75
|
-
create_header(output, used_mocks, testfile_includes)
|
76
|
-
create_externs(output, tests, used_mocks)
|
77
|
-
create_mock_management(output, used_mocks)
|
78
|
-
create_suite_setup(output)
|
79
|
-
create_suite_teardown(output)
|
80
|
-
create_reset(output, used_mocks)
|
81
|
-
create_main(output, input_file, tests, used_mocks)
|
82
|
-
end
|
83
|
-
|
84
|
-
return unless @options[:header_file] && !@options[:header_file].empty?
|
85
|
-
|
86
|
-
File.open(@options[:header_file], 'w') do |output|
|
87
|
-
create_h_file(output, @options[:header_file], tests, testfile_includes, used_mocks)
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
def find_tests(source)
|
92
|
-
tests_and_line_numbers = []
|
93
|
-
|
94
|
-
source_scrubbed = source.clone
|
95
|
-
source_scrubbed = source_scrubbed.gsub(/"[^"\n]*"/, '') # remove things in strings
|
96
|
-
source_scrubbed = source_scrubbed.gsub(/\/\/.*$/, '') # remove line comments
|
97
|
-
source_scrubbed = source_scrubbed.gsub(/\/\*.*?\*\//m, '') # remove block comments
|
98
|
-
lines = source_scrubbed.split(/(^\s*\#.*$) # Treat preprocessor directives as a logical line
|
99
|
-
| (;|\{|\}) /x) # Match ;, {, and } as end of lines
|
100
|
-
|
101
|
-
lines.each_with_index do |line, _index|
|
102
|
-
# find tests
|
103
|
-
next unless line =~ /^((?:\s*TEST_CASE\s*\(.*?\)\s*)*)\s*void\s+((?:#{@options[:test_prefix]}).*)\s*\(\s*(.*)\s*\)/
|
104
|
-
arguments = Regexp.last_match(1)
|
105
|
-
name = Regexp.last_match(2)
|
106
|
-
call = Regexp.last_match(3)
|
107
|
-
params = Regexp.last_match(4)
|
108
|
-
args = nil
|
109
|
-
if @options[:use_param_tests] && !arguments.empty?
|
110
|
-
args = []
|
111
|
-
arguments.scan(/\s*TEST_CASE\s*\((.*)\)\s*$/) { |a| args << a[0] }
|
112
|
-
end
|
113
|
-
tests_and_line_numbers << { test: name, args: args, call: call, params: params, line_number: 0 }
|
114
|
-
end
|
115
|
-
tests_and_line_numbers.uniq! { |v| v[:test] }
|
116
|
-
|
117
|
-
# determine line numbers and create tests to run
|
118
|
-
source_lines = source.split("\n")
|
119
|
-
source_index = 0
|
120
|
-
tests_and_line_numbers.size.times do |i|
|
121
|
-
source_lines[source_index..-1].each_with_index do |line, index|
|
122
|
-
next unless line =~ /#{tests_and_line_numbers[i][:test]}/
|
123
|
-
source_index += index
|
124
|
-
tests_and_line_numbers[i][:line_number] = source_index + 1
|
125
|
-
break
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
tests_and_line_numbers
|
130
|
-
end
|
131
|
-
|
132
|
-
def find_includes(source)
|
133
|
-
# remove comments (block and line, in three steps to ensure correct precedence)
|
134
|
-
source.gsub!(/\/\/(?:.+\/\*|\*(?:$|[^\/])).*$/, '') # remove line comments that comment out the start of blocks
|
135
|
-
source.gsub!(/\/\*.*?\*\//m, '') # remove block comments
|
136
|
-
source.gsub!(/\/\/.*$/, '') # remove line comments (all that remain)
|
137
|
-
|
138
|
-
# parse out includes
|
139
|
-
includes = {
|
140
|
-
local: source.scan(/^\s*#include\s+\"\s*(.+)\.[hH]\s*\"/).flatten,
|
141
|
-
system: source.scan(/^\s*#include\s+<\s*(.+)\s*>/).flatten.map { |inc| "<#{inc}>" },
|
142
|
-
linkonly: source.scan(/^TEST_FILE\(\s*\"\s*(.+)\.[cC]\w*\s*\"/).flatten
|
143
|
-
}
|
144
|
-
includes
|
145
|
-
end
|
146
|
-
|
147
|
-
def find_mocks(includes)
|
148
|
-
mock_headers = []
|
149
|
-
includes.each do |include_path|
|
150
|
-
include_file = File.basename(include_path)
|
151
|
-
mock_headers << include_path if include_file =~ /^#{@options[:mock_prefix]}/i
|
152
|
-
end
|
153
|
-
mock_headers
|
154
|
-
end
|
155
|
-
|
156
|
-
def create_header(output, mocks, testfile_includes = [])
|
157
|
-
output.puts('/* AUTOGENERATED FILE. DO NOT EDIT. */')
|
158
|
-
create_runtest(output, mocks)
|
159
|
-
output.puts("\n/*=======Automagically Detected Files To Include=====*/")
|
160
|
-
output.puts("#include \"#{@options[:framework]}.h\"")
|
161
|
-
output.puts('#include "cmock.h"') unless mocks.empty?
|
162
|
-
output.puts('#include <setjmp.h>')
|
163
|
-
output.puts('#include <stdio.h>')
|
164
|
-
if @options[:defines] && !@options[:defines].empty?
|
165
|
-
@options[:defines].each { |d| output.puts("#define #{d}") }
|
166
|
-
end
|
167
|
-
if @options[:header_file] && !@options[:header_file].empty?
|
168
|
-
output.puts("#include \"#{File.basename(@options[:header_file])}\"")
|
169
|
-
else
|
170
|
-
@options[:includes].flatten.uniq.compact.each do |inc|
|
171
|
-
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h', '')}.h\""}")
|
172
|
-
end
|
173
|
-
testfile_includes.each do |inc|
|
174
|
-
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h', '')}.h\""}")
|
175
|
-
end
|
176
|
-
end
|
177
|
-
mocks.each do |mock|
|
178
|
-
output.puts("#include \"#{mock.gsub('.h', '')}.h\"")
|
179
|
-
end
|
180
|
-
output.puts('#include "CException.h"') if @options[:plugins].include?(:cexception)
|
181
|
-
|
182
|
-
return unless @options[:enforce_strict_ordering]
|
183
|
-
|
184
|
-
output.puts('')
|
185
|
-
output.puts('int GlobalExpectCount;')
|
186
|
-
output.puts('int GlobalVerifyOrder;')
|
187
|
-
output.puts('char* GlobalOrderError;')
|
188
|
-
end
|
189
|
-
|
190
|
-
def create_externs(output, tests, _mocks)
|
191
|
-
output.puts("\n/*=======External Functions This Runner Calls=====*/")
|
192
|
-
output.puts("extern void #{@options[:setup_name]}(void);")
|
193
|
-
output.puts("extern void #{@options[:teardown_name]}(void);")
|
194
|
-
tests.each do |test|
|
195
|
-
output.puts("extern void #{test[:test]}(#{test[:call] || 'void'});")
|
196
|
-
end
|
197
|
-
output.puts('')
|
198
|
-
end
|
199
|
-
|
200
|
-
def create_mock_management(output, mock_headers)
|
201
|
-
return if mock_headers.empty?
|
202
|
-
|
203
|
-
output.puts("\n/*=======Mock Management=====*/")
|
204
|
-
output.puts('static void CMock_Init(void)')
|
205
|
-
output.puts('{')
|
206
|
-
|
207
|
-
if @options[:enforce_strict_ordering]
|
208
|
-
output.puts(' GlobalExpectCount = 0;')
|
209
|
-
output.puts(' GlobalVerifyOrder = 0;')
|
210
|
-
output.puts(' GlobalOrderError = NULL;')
|
211
|
-
end
|
212
|
-
|
213
|
-
mocks = mock_headers.map { |mock| File.basename(mock) }
|
214
|
-
mocks.each do |mock|
|
215
|
-
mock_clean = TypeSanitizer.sanitize_c_identifier(mock)
|
216
|
-
output.puts(" #{mock_clean}_Init();")
|
217
|
-
end
|
218
|
-
output.puts("}\n")
|
219
|
-
|
220
|
-
output.puts('static void CMock_Verify(void)')
|
221
|
-
output.puts('{')
|
222
|
-
mocks.each do |mock|
|
223
|
-
mock_clean = TypeSanitizer.sanitize_c_identifier(mock)
|
224
|
-
output.puts(" #{mock_clean}_Verify();")
|
225
|
-
end
|
226
|
-
output.puts("}\n")
|
227
|
-
|
228
|
-
output.puts('static void CMock_Destroy(void)')
|
229
|
-
output.puts('{')
|
230
|
-
mocks.each do |mock|
|
231
|
-
mock_clean = TypeSanitizer.sanitize_c_identifier(mock)
|
232
|
-
output.puts(" #{mock_clean}_Destroy();")
|
233
|
-
end
|
234
|
-
output.puts("}\n")
|
235
|
-
end
|
236
|
-
|
237
|
-
def create_suite_setup(output)
|
238
|
-
return if @options[:suite_setup].nil?
|
239
|
-
|
240
|
-
output.puts("\n/*=======Suite Setup=====*/")
|
241
|
-
output.puts('static void suite_setup(void)')
|
242
|
-
output.puts('{')
|
243
|
-
output.puts(@options[:suite_setup])
|
244
|
-
output.puts('}')
|
245
|
-
end
|
246
|
-
|
247
|
-
def create_suite_teardown(output)
|
248
|
-
return if @options[:suite_teardown].nil?
|
249
|
-
|
250
|
-
output.puts("\n/*=======Suite Teardown=====*/")
|
251
|
-
output.puts('static int suite_teardown(int num_failures)')
|
252
|
-
output.puts('{')
|
253
|
-
output.puts(@options[:suite_teardown])
|
254
|
-
output.puts('}')
|
255
|
-
end
|
256
|
-
|
257
|
-
def create_runtest(output, used_mocks)
|
258
|
-
cexception = @options[:plugins].include? :cexception
|
259
|
-
va_args1 = @options[:use_param_tests] ? ', ...' : ''
|
260
|
-
va_args2 = @options[:use_param_tests] ? '__VA_ARGS__' : ''
|
261
|
-
output.puts("\n/*=======Test Runner Used To Run Each Test Below=====*/")
|
262
|
-
output.puts('#define RUN_TEST_NO_ARGS') if @options[:use_param_tests]
|
263
|
-
output.puts("#define RUN_TEST(TestFunc, TestLineNum#{va_args1}) \\")
|
264
|
-
output.puts('{ \\')
|
265
|
-
output.puts(" Unity.CurrentTestName = #TestFunc#{va_args2.empty? ? '' : " \"(\" ##{va_args2} \")\""}; \\")
|
266
|
-
output.puts(' Unity.CurrentTestLineNumber = TestLineNum; \\')
|
267
|
-
output.puts(' if (UnityTestMatches()) { \\') if @options[:cmdline_args]
|
268
|
-
output.puts(' Unity.NumberOfTests++; \\')
|
269
|
-
output.puts(' CMock_Init(); \\') unless used_mocks.empty?
|
270
|
-
output.puts(' UNITY_CLR_DETAILS(); \\') unless used_mocks.empty?
|
271
|
-
output.puts(' if (TEST_PROTECT()) \\')
|
272
|
-
output.puts(' { \\')
|
273
|
-
output.puts(' CEXCEPTION_T e; \\') if cexception
|
274
|
-
output.puts(' Try { \\') if cexception
|
275
|
-
output.puts(" #{@options[:setup_name]}(); \\")
|
276
|
-
output.puts(" TestFunc(#{va_args2}); \\")
|
277
|
-
output.puts(' } Catch(e) { TEST_ASSERT_EQUAL_HEX32_MESSAGE(CEXCEPTION_NONE, e, "Unhandled Exception!"); } \\') if cexception
|
278
|
-
output.puts(' } \\')
|
279
|
-
output.puts(' if (TEST_PROTECT()) \\')
|
280
|
-
output.puts(' { \\')
|
281
|
-
output.puts(" #{@options[:teardown_name]}(); \\")
|
282
|
-
output.puts(' CMock_Verify(); \\') unless used_mocks.empty?
|
283
|
-
output.puts(' } \\')
|
284
|
-
output.puts(' CMock_Destroy(); \\') unless used_mocks.empty?
|
285
|
-
output.puts(' UnityConcludeTest(); \\')
|
286
|
-
output.puts(' } \\') if @options[:cmdline_args]
|
287
|
-
output.puts("}\n")
|
288
|
-
end
|
289
|
-
|
290
|
-
def create_reset(output, used_mocks)
|
291
|
-
output.puts("\n/*=======Test Reset Option=====*/")
|
292
|
-
output.puts('void resetTest(void);')
|
293
|
-
output.puts('void resetTest(void)')
|
294
|
-
output.puts('{')
|
295
|
-
output.puts(' CMock_Verify();') unless used_mocks.empty?
|
296
|
-
output.puts(' CMock_Destroy();') unless used_mocks.empty?
|
297
|
-
output.puts(" #{@options[:teardown_name]}();")
|
298
|
-
output.puts(' CMock_Init();') unless used_mocks.empty?
|
299
|
-
output.puts(" #{@options[:setup_name]}();")
|
300
|
-
output.puts('}')
|
301
|
-
end
|
302
|
-
|
303
|
-
def create_main(output, filename, tests, used_mocks)
|
304
|
-
output.puts("\n\n/*=======MAIN=====*/")
|
305
|
-
main_name = @options[:main_name].to_sym == :auto ? "main_#{filename.gsub('.c', '')}" : (@options[:main_name]).to_s
|
306
|
-
if @options[:cmdline_args]
|
307
|
-
if main_name != 'main'
|
308
|
-
output.puts("#{@options[:main_export_decl]} int #{main_name}(int argc, char** argv);")
|
309
|
-
end
|
310
|
-
output.puts("#{@options[:main_export_decl]} int #{main_name}(int argc, char** argv)")
|
311
|
-
output.puts('{')
|
312
|
-
output.puts(' int parse_status = UnityParseOptions(argc, argv);')
|
313
|
-
output.puts(' if (parse_status != 0)')
|
314
|
-
output.puts(' {')
|
315
|
-
output.puts(' if (parse_status < 0)')
|
316
|
-
output.puts(' {')
|
317
|
-
output.puts(" UnityPrint(\"#{filename.gsub('.c', '')}.\");")
|
318
|
-
output.puts(' UNITY_PRINT_EOL();')
|
319
|
-
if @options[:use_param_tests]
|
320
|
-
tests.each do |test|
|
321
|
-
if test[:args].nil? || test[:args].empty?
|
322
|
-
output.puts(" UnityPrint(\" #{test[:test]}(RUN_TEST_NO_ARGS)\");")
|
323
|
-
output.puts(' UNITY_PRINT_EOL();')
|
324
|
-
else
|
325
|
-
test[:args].each do |args|
|
326
|
-
output.puts(" UnityPrint(\" #{test[:test]}(#{args})\");")
|
327
|
-
output.puts(' UNITY_PRINT_EOL();')
|
328
|
-
end
|
329
|
-
end
|
330
|
-
end
|
331
|
-
else
|
332
|
-
tests.each { |test| output.puts(" UnityPrint(\" #{test[:test]}\");\n UNITY_PRINT_EOL();") }
|
333
|
-
end
|
334
|
-
output.puts(' return 0;')
|
335
|
-
output.puts(' }')
|
336
|
-
output.puts(' return parse_status;')
|
337
|
-
output.puts(' }')
|
338
|
-
else
|
339
|
-
if main_name != 'main'
|
340
|
-
output.puts("#{@options[:main_export_decl]} int #{main_name}(void);")
|
341
|
-
end
|
342
|
-
output.puts("int #{main_name}(void)")
|
343
|
-
output.puts('{')
|
344
|
-
end
|
345
|
-
output.puts(' suite_setup();') unless @options[:suite_setup].nil?
|
346
|
-
output.puts(" UnityBegin(\"#{filename.gsub(/\\/, '\\\\\\')}\");")
|
347
|
-
if @options[:use_param_tests]
|
348
|
-
tests.each do |test|
|
349
|
-
if test[:args].nil? || test[:args].empty?
|
350
|
-
output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]}, RUN_TEST_NO_ARGS);")
|
351
|
-
else
|
352
|
-
test[:args].each { |args| output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]}, #{args});") }
|
353
|
-
end
|
354
|
-
end
|
355
|
-
else
|
356
|
-
tests.each { |test| output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]});") }
|
357
|
-
end
|
358
|
-
output.puts
|
359
|
-
output.puts(' CMock_Guts_MemFreeFinal();') unless used_mocks.empty?
|
360
|
-
output.puts(" return #{@options[:suite_teardown].nil? ? '' : 'suite_teardown'}(UnityEnd());")
|
361
|
-
output.puts('}')
|
362
|
-
end
|
363
|
-
|
364
|
-
def create_h_file(output, filename, tests, testfile_includes, used_mocks)
|
365
|
-
filename = File.basename(filename).gsub(/[-\/\\\.\,\s]/, '_').upcase
|
366
|
-
output.puts('/* AUTOGENERATED FILE. DO NOT EDIT. */')
|
367
|
-
output.puts("#ifndef _#{filename}")
|
368
|
-
output.puts("#define _#{filename}\n\n")
|
369
|
-
output.puts("#include \"#{@options[:framework]}.h\"")
|
370
|
-
output.puts('#include "cmock.h"') unless used_mocks.empty?
|
371
|
-
@options[:includes].flatten.uniq.compact.each do |inc|
|
372
|
-
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h', '')}.h\""}")
|
373
|
-
end
|
374
|
-
testfile_includes.each do |inc|
|
375
|
-
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h', '')}.h\""}")
|
376
|
-
end
|
377
|
-
output.puts "\n"
|
378
|
-
tests.each do |test|
|
379
|
-
if test[:params].nil? || test[:params].empty?
|
380
|
-
output.puts("void #{test[:test]}(void);")
|
381
|
-
else
|
382
|
-
output.puts("void #{test[:test]}(#{test[:params]});")
|
383
|
-
end
|
384
|
-
end
|
385
|
-
output.puts("#endif\n\n")
|
386
|
-
end
|
387
|
-
end
|
388
|
-
|
389
|
-
if $0 == __FILE__
|
390
|
-
options = { includes: [] }
|
391
|
-
|
392
|
-
# parse out all the options first (these will all be removed as we go)
|
393
|
-
ARGV.reject! do |arg|
|
394
|
-
case arg
|
395
|
-
when '-cexception'
|
396
|
-
options[:plugins] = [:cexception]
|
397
|
-
true
|
398
|
-
when /\.*\.ya?ml/
|
399
|
-
options = UnityTestRunnerGenerator.grab_config(arg)
|
400
|
-
true
|
401
|
-
when /--(\w+)=\"?(.*)\"?/
|
402
|
-
options[Regexp.last_match(1).to_sym] = Regexp.last_match(2)
|
403
|
-
true
|
404
|
-
when /\.*\.h/
|
405
|
-
options[:includes] << arg
|
406
|
-
true
|
407
|
-
else false
|
408
|
-
end
|
409
|
-
end
|
410
|
-
|
411
|
-
# make sure there is at least one parameter left (the input file)
|
412
|
-
unless ARGV[0]
|
413
|
-
puts ["\nusage: ruby #{__FILE__} (files) (options) input_test_file (output)",
|
414
|
-
"\n input_test_file - this is the C file you want to create a runner for",
|
415
|
-
' output - this is the name of the runner file to generate',
|
416
|
-
' defaults to (input_test_file)_Runner',
|
417
|
-
' files:',
|
418
|
-
' *.yml / *.yaml - loads configuration from here in :unity or :cmock',
|
419
|
-
' *.h - header files are added as #includes in runner',
|
420
|
-
' options:',
|
421
|
-
' -cexception - include cexception support',
|
422
|
-
' --setup_name="" - redefine setUp func name to something else',
|
423
|
-
' --teardown_name="" - redefine tearDown func name to something else',
|
424
|
-
' --main_name="" - redefine main func name to something else',
|
425
|
-
' --test_prefix="" - redefine test prefix from default test|spec|should',
|
426
|
-
' --suite_setup="" - code to execute for setup of entire suite',
|
427
|
-
' --suite_teardown="" - code to execute for teardown of entire suite',
|
428
|
-
' --use_param_tests=1 - enable parameterized tests (disabled by default)',
|
429
|
-
' --header_file="" - path/name of test header file to generate too'].join("\n")
|
430
|
-
exit 1
|
431
|
-
end
|
432
|
-
|
433
|
-
# create the default test runner name if not specified
|
434
|
-
ARGV[1] = ARGV[0].gsub('.c', '_Runner.c') unless ARGV[1]
|
435
|
-
|
436
|
-
UnityTestRunnerGenerator.new(options).run(ARGV[0], ARGV[1])
|
437
|
-
end
|
@@ -1,220 +0,0 @@
|
|
1
|
-
#============================================================
|
2
|
-
# Author: John Theofanopoulos
|
3
|
-
# A simple parser. Takes the output files generated during the build process and
|
4
|
-
# extracts information relating to the tests.
|
5
|
-
#
|
6
|
-
# Notes:
|
7
|
-
# To capture an output file under VS builds use the following:
|
8
|
-
# devenv [build instructions] > Output.txt & type Output.txt
|
9
|
-
#
|
10
|
-
# To capture an output file under GCC/Linux builds use the following:
|
11
|
-
# make | tee Output.txt
|
12
|
-
#
|
13
|
-
# To use this parser use the following command
|
14
|
-
# ruby parseOutput.rb [options] [file]
|
15
|
-
# options: -xml : produce a JUnit compatible XML file
|
16
|
-
# file : file to scan for results
|
17
|
-
#============================================================
|
18
|
-
|
19
|
-
class ParseOutput
|
20
|
-
def initialize
|
21
|
-
@test_flag = false
|
22
|
-
@xml_out = false
|
23
|
-
@array_list = false
|
24
|
-
@total_tests = false
|
25
|
-
@class_index = false
|
26
|
-
end
|
27
|
-
|
28
|
-
# Set the flag to indicate if there will be an XML output file or not
|
29
|
-
def set_xml_output
|
30
|
-
@xml_out = true
|
31
|
-
end
|
32
|
-
|
33
|
-
# if write our output to XML
|
34
|
-
def write_xml_output
|
35
|
-
output = File.open('report.xml', 'w')
|
36
|
-
output << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
37
|
-
@array_list.each do |item|
|
38
|
-
output << item << "\n"
|
39
|
-
end
|
40
|
-
output << "</testsuite>\n"
|
41
|
-
end
|
42
|
-
|
43
|
-
# This function will try and determine when the suite is changed. This is
|
44
|
-
# is the name that gets added to the classname parameter.
|
45
|
-
def test_suite_verify(test_suite_name)
|
46
|
-
return if @test_flag
|
47
|
-
|
48
|
-
@test_flag = true
|
49
|
-
# Split the path name
|
50
|
-
test_name = test_suite_name.split('/')
|
51
|
-
# Remove the extension
|
52
|
-
base_name = test_name[test_name.size - 1].split('.')
|
53
|
-
@test_suite = 'test.' + base_name[0]
|
54
|
-
printf "New Test: %s\n", @test_suite
|
55
|
-
end
|
56
|
-
|
57
|
-
# Test was flagged as having passed so format the output
|
58
|
-
def test_passed(array)
|
59
|
-
last_item = array.length - 1
|
60
|
-
test_name = array[last_item - 1]
|
61
|
-
test_suite_verify(array[@class_name])
|
62
|
-
printf "%-40s PASS\n", test_name
|
63
|
-
|
64
|
-
return unless @xml_out
|
65
|
-
|
66
|
-
@array_list.push ' <testcase classname="' + @test_suite + '" name="' + test_name + '"/>'
|
67
|
-
end
|
68
|
-
|
69
|
-
# Test was flagged as having passed so format the output.
|
70
|
-
# This is using the Unity fixture output and not the original Unity output.
|
71
|
-
def test_passed_unity_fixture(array)
|
72
|
-
test_suite = array[0].sub('TEST(', '')
|
73
|
-
test_suite = test_suite.sub(',', '')
|
74
|
-
test_name = array[1].sub(')', '')
|
75
|
-
|
76
|
-
return unless @xml_out
|
77
|
-
|
78
|
-
@array_list.push ' <testcase classname="' + test_suite + '" name="' + test_name + '"/>'
|
79
|
-
end
|
80
|
-
|
81
|
-
# Test was flagged as being ingored so format the output
|
82
|
-
def test_ignored(array)
|
83
|
-
last_item = array.length - 1
|
84
|
-
test_name = array[last_item - 2]
|
85
|
-
reason = array[last_item].chomp
|
86
|
-
test_suite_verify(array[@class_name])
|
87
|
-
printf "%-40s IGNORED\n", test_name
|
88
|
-
|
89
|
-
if test_name.start_with? 'TEST('
|
90
|
-
array2 = test_name.split(' ')
|
91
|
-
@test_suite = array2[0].sub('TEST(', '')
|
92
|
-
@test_suite = @test_suite.sub(',', '')
|
93
|
-
test_name = array2[1].sub(')', '')
|
94
|
-
end
|
95
|
-
|
96
|
-
return unless @xml_out
|
97
|
-
|
98
|
-
@array_list.push ' <testcase classname="' + @test_suite + '" name="' + test_name + '">'
|
99
|
-
@array_list.push ' <skipped type="TEST IGNORED"> ' + reason + ' </skipped>'
|
100
|
-
@array_list.push ' </testcase>'
|
101
|
-
end
|
102
|
-
|
103
|
-
# Test was flagged as having failed so format the line
|
104
|
-
def test_failed(array)
|
105
|
-
last_item = array.length - 1
|
106
|
-
test_name = array[last_item - 2]
|
107
|
-
reason = array[last_item].chomp + ' at line: ' + array[last_item - 3]
|
108
|
-
test_suite_verify(array[@class_name])
|
109
|
-
printf "%-40s FAILED\n", test_name
|
110
|
-
|
111
|
-
if test_name.start_with? 'TEST('
|
112
|
-
array2 = test_name.split(' ')
|
113
|
-
@test_suite = array2[0].sub('TEST(', '')
|
114
|
-
@test_suite = @test_suite.sub(',', '')
|
115
|
-
test_name = array2[1].sub(')', '')
|
116
|
-
end
|
117
|
-
|
118
|
-
return unless @xml_out
|
119
|
-
|
120
|
-
@array_list.push ' <testcase classname="' + @test_suite + '" name="' + test_name + '">'
|
121
|
-
@array_list.push ' <failure type="ASSERT FAILED"> ' + reason + ' </failure>'
|
122
|
-
@array_list.push ' </testcase>'
|
123
|
-
end
|
124
|
-
|
125
|
-
# Figure out what OS we are running on. For now we are assuming if it's not Windows it must
|
126
|
-
# be Unix based.
|
127
|
-
def detect_os
|
128
|
-
os = RUBY_PLATFORM.split('-')
|
129
|
-
@class_name = if os.size == 2
|
130
|
-
if os[1] == 'mingw32'
|
131
|
-
1
|
132
|
-
else
|
133
|
-
0
|
134
|
-
end
|
135
|
-
else
|
136
|
-
0
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
# Main function used to parse the file that was captured.
|
141
|
-
def process(name)
|
142
|
-
@test_flag = false
|
143
|
-
@array_list = []
|
144
|
-
|
145
|
-
detect_os
|
146
|
-
|
147
|
-
puts 'Parsing file: ' + name
|
148
|
-
|
149
|
-
test_pass = 0
|
150
|
-
test_fail = 0
|
151
|
-
test_ignore = 0
|
152
|
-
puts ''
|
153
|
-
puts '=================== RESULTS ====================='
|
154
|
-
puts ''
|
155
|
-
File.open(name).each do |line|
|
156
|
-
# Typical test lines look like this:
|
157
|
-
# <path>/<test_file>.c:36:test_tc1000_opsys:FAIL: Expected 1 Was 0
|
158
|
-
# <path>/<test_file>.c:112:test_tc5004_initCanChannel:IGNORE: Not Yet Implemented
|
159
|
-
# <path>/<test_file>.c:115:test_tc5100_initCanVoidPtrs:PASS
|
160
|
-
#
|
161
|
-
# where path is different on Unix vs Windows devices (Windows leads with a drive letter)
|
162
|
-
line_array = line.split(':')
|
163
|
-
|
164
|
-
# If we were able to split the line then we can look to see if any of our target words
|
165
|
-
# were found. Case is important.
|
166
|
-
if (line_array.size >= 4) || (line.start_with? 'TEST(')
|
167
|
-
# Determine if this test passed
|
168
|
-
if line.include? ':PASS'
|
169
|
-
test_passed(line_array)
|
170
|
-
test_pass += 1
|
171
|
-
elsif line.include? ':FAIL:'
|
172
|
-
test_failed(line_array)
|
173
|
-
test_fail += 1
|
174
|
-
elsif line.include? ':IGNORE:'
|
175
|
-
test_ignored(line_array)
|
176
|
-
test_ignore += 1
|
177
|
-
elsif line.start_with? 'TEST('
|
178
|
-
if line.include? ' PASS'
|
179
|
-
line_array = line.split(' ')
|
180
|
-
test_passed_unity_fixture(line_array)
|
181
|
-
test_pass += 1
|
182
|
-
end
|
183
|
-
# If none of the keywords are found there are no more tests for this suite so clear
|
184
|
-
# the test flag
|
185
|
-
else
|
186
|
-
@test_flag = false
|
187
|
-
end
|
188
|
-
else
|
189
|
-
@test_flag = false
|
190
|
-
end
|
191
|
-
end
|
192
|
-
puts ''
|
193
|
-
puts '=================== SUMMARY ====================='
|
194
|
-
puts ''
|
195
|
-
puts 'Tests Passed : ' + test_pass.to_s
|
196
|
-
puts 'Tests Failed : ' + test_fail.to_s
|
197
|
-
puts 'Tests Ignored : ' + test_ignore.to_s
|
198
|
-
@total_tests = test_pass + test_fail + test_ignore
|
199
|
-
|
200
|
-
return unless @xml_out
|
201
|
-
|
202
|
-
heading = '<testsuite tests="' + @total_tests.to_s + '" failures="' + test_fail.to_s + '"' + ' skips="' + test_ignore.to_s + '">'
|
203
|
-
@array_list.insert(0, heading)
|
204
|
-
write_xml_output
|
205
|
-
end
|
206
|
-
end
|
207
|
-
|
208
|
-
# If the command line has no values in, used a default value of Output.txt
|
209
|
-
parse_my_file = ParseOutput.new
|
210
|
-
|
211
|
-
if ARGV.size >= 1
|
212
|
-
ARGV.each do |a|
|
213
|
-
if a == '-xml'
|
214
|
-
parse_my_file.set_xml_output
|
215
|
-
else
|
216
|
-
parse_my_file.process(a)
|
217
|
-
break
|
218
|
-
end
|
219
|
-
end
|
220
|
-
end
|