ceedling 0.28.2 → 0.28.3
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/assets/ceedling +3 -0
- data/assets/ceedling.cmd +1 -0
- data/assets/default_gitignore +5 -0
- data/assets/project_with_guts.yml +1 -0
- data/assets/project_with_guts_gcov.yml +3 -0
- data/assets/test_example_file_verbose.c +12 -0
- data/bin/ceedling +30 -6
- data/docs/CeedlingPacket.md +135 -23
- data/docs/CeedlingPacket.odt +0 -0
- data/examples/blinky/rakefile.rb +2 -1
- data/lib/ceedling/configurator.rb +7 -5
- data/lib/ceedling/configurator_builder.rb +10 -7
- data/lib/ceedling/configurator_plugins.rb +29 -24
- data/lib/ceedling/configurator_setup.rb +0 -1
- data/lib/ceedling/defaults.rb +7 -2
- data/lib/ceedling/dependinator.rb +10 -2
- data/lib/ceedling/file_finder.rb +57 -49
- data/lib/ceedling/file_path_utils.rb +12 -4
- data/lib/ceedling/file_wrapper.rb +4 -0
- data/lib/ceedling/generator.rb +4 -3
- data/lib/ceedling/generator_test_results.rb +15 -13
- data/lib/ceedling/plugin_manager.rb +18 -18
- data/lib/ceedling/plugin_reportinator.rb +3 -2
- data/lib/ceedling/plugin_reportinator_helper.rb +2 -3
- data/lib/ceedling/preprocessinator_extractor.rb +2 -2
- data/lib/ceedling/preprocessinator_includes_handler.rb +5 -0
- data/lib/ceedling/rakefile.rb +1 -0
- data/lib/ceedling/release_invoker_helper.rb +5 -2
- data/lib/ceedling/rules_release.rake +2 -1
- data/lib/ceedling/rules_tests.rake +18 -9
- data/lib/ceedling/rules_tests_deep_dependencies.rake +2 -2
- data/lib/ceedling/task_invoker.rb +15 -3
- data/lib/ceedling/tasks_vendor.rake +3 -3
- data/lib/ceedling/test_invoker.rb +39 -12
- data/lib/ceedling/test_invoker_helper.rb +5 -1
- data/lib/ceedling/tool_executor.rb +8 -4
- data/lib/ceedling/version.rb +1 -1
- data/out.fail +21 -0
- data/plugins/beep/README.md +22 -0
- data/plugins/beep/lib/beep.rb +40 -0
- data/plugins/bullseye/bullseye.rake +43 -36
- data/plugins/bullseye/config/defaults.yml +4 -0
- data/plugins/bullseye/lib/bullseye.rb +27 -5
- data/plugins/command_hooks/lib/command_hooks.rb +3 -0
- data/plugins/gcov/README.md +34 -1
- data/plugins/gcov/config/defaults.yml +3 -3
- data/plugins/gcov/gcov.rake +7 -5
- data/plugins/gcov/lib/gcov.rb +3 -1
- data/plugins/gcov/lib/gcov_constants.rb +2 -0
- data/plugins/junit_tests_report/lib/junit_tests_report.rb +12 -9
- data/plugins/module_generator/lib/module_generator.rb +14 -1
- data/plugins/module_generator/module_generator.rake +21 -4
- data/plugins/raw_output_report/lib/raw_output_report.rb +41 -0
- data/spec/gcov/gcov_deployment_spec.rb +1 -1
- data/spec/gcov/gcov_test_cases_spec.rb +2 -2
- data/spec/generator_test_results_spec.rb +5 -0
- data/spec/preprocessinator_includes_handler_spec.rb +1 -0
- data/spec/spec_system_helper.rb +178 -4
- data/spec/support/test_example.fail +1 -0
- data/spec/support/test_example.pass +1 -0
- data/spec/support/test_example_empty.pass +1 -0
- data/spec/support/test_example_ignore.pass +1 -0
- data/spec/support/test_example_mangled.pass +1 -0
- data/spec/support/test_example_with_time.pass +22 -0
- data/spec/system/deployment_spec.rb +33 -0
- data/vendor/cmock/README.md +4 -3
- data/vendor/cmock/docs/CMock_Summary.md +1 -1
- data/vendor/cmock/lib/cmock_config.rb +4 -0
- data/vendor/cmock/lib/cmock_generator.rb +5 -2
- data/vendor/cmock/lib/cmock_generator_plugin_array.rb +4 -4
- data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +9 -11
- data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +0 -1
- data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +2 -3
- data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +2 -4
- data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +0 -2
- data/vendor/cmock/lib/cmock_generator_utils.rb +16 -3
- data/vendor/cmock/lib/cmock_header_parser.rb +59 -34
- data/vendor/cmock/release/build.info +1 -1
- data/vendor/cmock/release/version.info +1 -1
- data/vendor/cmock/scripts/create_makefile.rb +17 -2
- data/vendor/cmock/src/cmock.c +13 -7
- data/vendor/cmock/test/test_helper.rb +11 -10
- data/vendor/cmock/test/unit/cmock_config_test.rb +4 -2
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +10 -4
- data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +20 -12
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +2 -2
- data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +2 -2
- data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +3 -3
- data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +8 -6
- data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +27 -10
- data/vendor/cmock/test/unit/cmock_header_parser_test.rb +108 -20
- data/vendor/cmock/vendor/c_exception/Gemfile +4 -0
- data/vendor/cmock/vendor/c_exception/Gemfile.lock +12 -0
- data/vendor/cmock/vendor/c_exception/LICENSE.txt +30 -0
- data/vendor/cmock/vendor/c_exception/README.md +162 -0
- data/vendor/cmock/vendor/c_exception/Rakefile +42 -0
- data/vendor/cmock/vendor/c_exception/docs/CException.md +292 -0
- data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -0
- data/vendor/cmock/vendor/c_exception/lib/CException.c +46 -0
- data/vendor/cmock/vendor/c_exception/lib/CException.h +110 -0
- data/vendor/cmock/vendor/c_exception/makefile +24 -0
- data/vendor/cmock/vendor/c_exception/release/build.info +2 -0
- data/vendor/cmock/vendor/c_exception/release/version.info +2 -0
- data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +46 -0
- data/vendor/cmock/vendor/c_exception/test/TestException.c +391 -0
- data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +67 -0
- data/vendor/cmock/vendor/unity/README.md +231 -0
- data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +118 -0
- data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -0
- data/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -0
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +308 -0
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +457 -0
- data/vendor/cmock/vendor/unity/auto/parse_output.rb +323 -0
- data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +252 -0
- data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +25 -0
- data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +6 -0
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +139 -0
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +136 -0
- data/vendor/cmock/vendor/unity/auto/unity_to_junit.py +146 -0
- data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +206 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
- data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +779 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +433 -0
- data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +192 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +260 -0
- data/vendor/cmock/vendor/unity/docs/license.txt +21 -0
- data/vendor/cmock/vendor/unity/examples/example_1/makefile +71 -0
- data/vendor/cmock/vendor/unity/examples/example_1/readme.txt +5 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -0
- data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
- data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
- data/vendor/cmock/vendor/unity/examples/example_2/makefile +70 -0
- data/vendor/cmock/vendor/unity/examples/example_2/readme.txt +5 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -0
- data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
- data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
- data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +43 -0
- data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +249 -0
- data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +13 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -0
- data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
- data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
- data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
- data/vendor/cmock/vendor/unity/examples/unity_config.h +247 -0
- data/vendor/cmock/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +48 -0
- data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
- data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +9 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +436 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +83 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +51 -0
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +47 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +75 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +22 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +543 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +57 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +57 -0
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
- data/vendor/cmock/vendor/unity/release/build.info +2 -0
- data/vendor/cmock/vendor/unity/release/version.info +2 -0
- data/vendor/cmock/vendor/unity/src/unity.c +1572 -0
- data/vendor/cmock/vendor/unity/src/unity.h +503 -0
- data/vendor/cmock/vendor/unity/src/unity_internals.h +924 -0
- data/vendor/cmock/vendor/unity/test/Makefile +68 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +61 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +57 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +55 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +15 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +76 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +77 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +67 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +70 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +58 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +67 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +70 -0
- data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +71 -0
- data/vendor/cmock/vendor/unity/test/rakefile +125 -0
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +260 -0
- data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +78 -0
- data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +78 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +49 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +50 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +47 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +59 -0
- data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +47 -0
- data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +101 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +90 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +80 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +80 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +94 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +84 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +95 -0
- data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +86 -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 +186 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +70 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +195 -0
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +1252 -0
- data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +113 -0
- data/vendor/cmock/vendor/unity/test/tests/testunity.c +5371 -0
- data/vendor/unity/auto/generate_test_runner.rb +30 -10
- data/vendor/unity/auto/parse_output.rb +212 -109
- data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +9 -10
- data/vendor/unity/docs/UnityAssertionsReference.md +11 -2
- data/vendor/unity/docs/UnityConfigurationGuide.md +90 -55
- data/vendor/unity/docs/UnityGettingStartedGuide.md +6 -5
- data/vendor/unity/docs/UnityHelperScriptsGuide.md +23 -5
- data/vendor/unity/examples/unity_config.h +8 -0
- data/vendor/unity/extras/fixture/src/unity_fixture.c +4 -0
- data/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +2 -2
- data/vendor/unity/release/build.info +1 -1
- data/vendor/unity/release/version.info +1 -1
- data/vendor/unity/src/unity.c +64 -57
- data/vendor/unity/src/unity.h +111 -7
- data/vendor/unity/src/unity_internals.h +173 -73
- data/vendor/unity/test/Makefile +5 -1
- data/vendor/unity/test/testdata/testRunnerGenerator.c +4 -1
- data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +4 -1
- data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +4 -1
- data/vendor/unity/test/tests/testparameterized.c +5 -2
- data/vendor/unity/test/tests/testunity.c +34 -0
- metadata +150 -2
data/lib/ceedling/version.rb
CHANGED
data/out.fail
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
:source:
|
|
3
|
+
:path: some/place
|
|
4
|
+
:file: test_example.c
|
|
5
|
+
:successes: []
|
|
6
|
+
:failures:
|
|
7
|
+
- :test: test_one
|
|
8
|
+
:line: 257
|
|
9
|
+
:message: ''
|
|
10
|
+
- :test: test_two
|
|
11
|
+
:line: 269
|
|
12
|
+
:message: ''
|
|
13
|
+
:ignores: []
|
|
14
|
+
:counts:
|
|
15
|
+
:total: 2
|
|
16
|
+
:passed: 0
|
|
17
|
+
:failed: 2
|
|
18
|
+
:ignored: 0
|
|
19
|
+
:stdout:
|
|
20
|
+
- Verbose output one
|
|
21
|
+
- Verbous output two
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
ceedling-beep
|
|
2
|
+
=============
|
|
3
|
+
|
|
4
|
+
This is a simple plugin that just beeps at the end of a build and/or test sequence. Are you getting too distracted surfing
|
|
5
|
+
the internet, chatting with coworkers, or swordfighting while it's building or testing? The friendly beep will let you know
|
|
6
|
+
it's time to pay attention again.
|
|
7
|
+
|
|
8
|
+
This plugin has very few configuration options. At this time it can beep on completion of a task and/or on an error condition.
|
|
9
|
+
For each of these, you can configure the method that it should beep.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
:tools:
|
|
13
|
+
:beep_on_done: :bell
|
|
14
|
+
:beep_on_error: :bell
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Each of these have the following options:
|
|
18
|
+
|
|
19
|
+
- :bell - this option uses the ASCII bell character out stdout
|
|
20
|
+
- :speaker_test - this uses the linux speaker-test command if installed
|
|
21
|
+
|
|
22
|
+
Very likely, we'll be adding to this list if people find this to be useful.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'ceedling/plugin'
|
|
2
|
+
require 'ceedling/constants'
|
|
3
|
+
|
|
4
|
+
class Beep < Plugin
|
|
5
|
+
|
|
6
|
+
attr_reader :config
|
|
7
|
+
|
|
8
|
+
def setup
|
|
9
|
+
@config = {
|
|
10
|
+
:on_done => ((defined? TOOLS_BEEP_ON_DONE) ? TOOLS_BEEP_ON_DONE : :bell ),
|
|
11
|
+
:on_error => ((defined? TOOLS_BEEP_ON_ERROR) ? TOOLS_BEEP_ON_ERROR : :bell ),
|
|
12
|
+
}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def post_build
|
|
16
|
+
beep @config[:on_done]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def post_error
|
|
20
|
+
beep @config[:on_error]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def beep(method = :none)
|
|
26
|
+
case method
|
|
27
|
+
when :bell
|
|
28
|
+
if (SystemWrapper.windows?)
|
|
29
|
+
puts "echo '\007'"
|
|
30
|
+
else
|
|
31
|
+
puts "echo -ne '\007'"
|
|
32
|
+
end
|
|
33
|
+
when :speaker_test
|
|
34
|
+
`speaker-test -t sine -f 1000 -l 1`
|
|
35
|
+
else
|
|
36
|
+
#do nothing with illegal or :none
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
directory(BULLSEYE_BUILD_OUTPUT_PATH)
|
|
3
2
|
directory(BULLSEYE_RESULTS_PATH)
|
|
4
3
|
directory(BULLSEYE_ARTIFACTS_PATH)
|
|
@@ -9,21 +8,23 @@ CLEAN.include(File.join(BULLSEYE_RESULTS_PATH, '*'))
|
|
|
9
8
|
CLEAN.include(File.join(BULLSEYE_DEPENDENCIES_PATH, '*'))
|
|
10
9
|
|
|
11
10
|
CLOBBER.include(File.join(BULLSEYE_BUILD_PATH, '**/*'))
|
|
12
|
-
|
|
11
|
+
PLUGINS_BULLSEYE_LIB_PATH = 'C:\\tools\\BullseyeCoverage\\lib' if not defined?(PLUGINS_BULLSEYE_LIB_PATH)
|
|
13
12
|
|
|
14
13
|
rule(/#{BULLSEYE_BUILD_OUTPUT_PATH}\/#{'.+\\'+EXTENSION_OBJECT}$/ => [
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
proc do |task_name|
|
|
15
|
+
@ceedling[:file_finder].find_compilation_input_file(task_name)
|
|
16
|
+
end
|
|
17
|
+
]) do |object|
|
|
19
18
|
|
|
20
|
-
if
|
|
19
|
+
if File.basename(object.source) =~ /^(#{PROJECT_TEST_FILE_PREFIX}|#{CMOCK_MOCK_PREFIX}|#{BULLSEYE_IGNORE_SOURCES.join('|')})/i
|
|
21
20
|
@ceedling[:generator].generate_object_file(
|
|
22
21
|
TOOLS_BULLSEYE_COMPILER,
|
|
22
|
+
OPERATION_COMPILE_SYM,
|
|
23
23
|
BULLSEYE_SYM,
|
|
24
24
|
object.source,
|
|
25
25
|
object.name,
|
|
26
|
-
@ceedling[:file_path_utils].form_test_build_list_filepath(
|
|
26
|
+
@ceedling[:file_path_utils].form_test_build_list_filepath(object.name)
|
|
27
|
+
)
|
|
27
28
|
else
|
|
28
29
|
@ceedling[BULLSEYE_SYM].generate_coverage_object_file(object.source, object.name)
|
|
29
30
|
end
|
|
@@ -36,39 +37,41 @@ rule(/#{BULLSEYE_BUILD_OUTPUT_PATH}\/#{'.+\\'+EXTENSION_EXECUTABLE}$/) do |bin_f
|
|
|
36
37
|
BULLSEYE_SYM,
|
|
37
38
|
bin_file.prerequisites,
|
|
38
39
|
bin_file.name,
|
|
39
|
-
@ceedling[:file_path_utils].form_test_build_map_filepath(bin_file.name)
|
|
40
|
+
@ceedling[:file_path_utils].form_test_build_map_filepath(bin_file.name)
|
|
41
|
+
)
|
|
40
42
|
end
|
|
41
43
|
|
|
42
44
|
rule(/#{BULLSEYE_RESULTS_PATH}\/#{'.+\\'+EXTENSION_TESTPASS}$/ => [
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
proc do |task_name|
|
|
46
|
+
@ceedling[:file_path_utils].form_test_executable_filepath(task_name)
|
|
47
|
+
end
|
|
48
|
+
]) do |test_result|
|
|
47
49
|
@ceedling[:generator].generate_test_results(TOOLS_BULLSEYE_FIXTURE, BULLSEYE_SYM, test_result.source, test_result.name)
|
|
48
50
|
end
|
|
49
51
|
|
|
50
52
|
rule(/#{BULLSEYE_DEPENDENCIES_PATH}\/#{'.+\\'+EXTENSION_DEPENDENCIES}$/ => [
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
proc do |task_name|
|
|
54
|
+
@ceedling[:file_finder].find_compilation_input_file(task_name)
|
|
55
|
+
end
|
|
56
|
+
]) do |dep|
|
|
55
57
|
@ceedling[:generator].generate_dependencies_file(
|
|
56
58
|
TOOLS_TEST_DEPENDENCIES_GENERATOR,
|
|
57
59
|
BULLSEYE_SYM,
|
|
58
60
|
dep.source,
|
|
59
61
|
File.join(BULLSEYE_BUILD_OUTPUT_PATH, File.basename(dep.source).ext(EXTENSION_OBJECT) ),
|
|
60
|
-
dep.name
|
|
62
|
+
dep.name
|
|
63
|
+
)
|
|
61
64
|
end
|
|
62
65
|
|
|
63
66
|
task :directories => [BULLSEYE_BUILD_OUTPUT_PATH, BULLSEYE_RESULTS_PATH, BULLSEYE_DEPENDENCIES_PATH, BULLSEYE_ARTIFACTS_PATH]
|
|
64
67
|
|
|
65
68
|
namespace BULLSEYE_SYM do
|
|
69
|
+
task source_coverage: COLLECTION_ALL_SOURCE.pathmap("#{BULLSEYE_BUILD_OUTPUT_PATH}/%n#{@ceedling[:configurator].extension_object}")
|
|
66
70
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
desc "Run code coverage for all tests"
|
|
70
|
-
task :all => [:directories] do
|
|
71
|
+
desc 'Run code coverage for all tests'
|
|
72
|
+
task all: [:directories] do
|
|
71
73
|
@ceedling[:configurator].replace_flattened_config(@ceedling[BULLSEYE_SYM].config)
|
|
74
|
+
@ceedling[BULLSEYE_SYM].enableBullseye(true)
|
|
72
75
|
@ceedling[:test_invoker].setup_and_invoke(COLLECTION_ALL_TESTS, BULLSEYE_SYM)
|
|
73
76
|
@ceedling[:configurator].restore_config
|
|
74
77
|
end
|
|
@@ -82,43 +85,46 @@ namespace BULLSEYE_SYM do
|
|
|
82
85
|
@ceedling[:streaminator].stdout_puts( message )
|
|
83
86
|
end
|
|
84
87
|
|
|
85
|
-
desc
|
|
86
|
-
task :pattern, [:regex] => [:directories] do |
|
|
88
|
+
desc 'Run tests by matching regular expression pattern.'
|
|
89
|
+
task :pattern, [:regex] => [:directories] do |_t, args|
|
|
87
90
|
matches = []
|
|
88
91
|
|
|
89
92
|
COLLECTION_ALL_TESTS.each do |test|
|
|
90
93
|
matches << test if test =~ /#{args.regex}/
|
|
91
94
|
end
|
|
92
95
|
|
|
93
|
-
if
|
|
96
|
+
if !matches.empty?
|
|
94
97
|
@ceedling[:configurator].replace_flattened_config(@ceedling[BULLSEYE_SYM].config)
|
|
95
|
-
@ceedling[
|
|
98
|
+
@ceedling[BULLSEYE_SYM].enableBullseye(true)
|
|
99
|
+
@ceedling[:test_invoker].setup_and_invoke(matches, BULLSEYE_SYM, force_run: false)
|
|
96
100
|
@ceedling[:configurator].restore_config
|
|
97
101
|
else
|
|
98
102
|
@ceedling[:streaminator].stdout_puts("\nFound no tests matching pattern /#{args.regex}/.")
|
|
99
103
|
end
|
|
100
104
|
end
|
|
101
105
|
|
|
102
|
-
desc
|
|
103
|
-
task :path, [:dir] => [:directories] do |
|
|
106
|
+
desc 'Run tests whose test path contains [dir] or [dir] substring.'
|
|
107
|
+
task :path, [:dir] => [:directories] do |_t, args|
|
|
104
108
|
matches = []
|
|
105
109
|
|
|
106
110
|
COLLECTION_ALL_TESTS.each do |test|
|
|
107
|
-
matches << test if File.dirname(test).include?(args.dir.
|
|
111
|
+
matches << test if File.dirname(test).include?(args.dir.tr('\\', '/'))
|
|
108
112
|
end
|
|
109
113
|
|
|
110
|
-
if
|
|
114
|
+
if !matches.empty?
|
|
111
115
|
@ceedling[:configurator].replace_flattened_config(@ceedling[BULLSEYE_SYM].config)
|
|
112
|
-
@ceedling[
|
|
116
|
+
@ceedling[BULLSEYE_SYM].enableBullseye(true)
|
|
117
|
+
@ceedling[:test_invoker].setup_and_invoke(matches, BULLSEYE_SYM, force_run: false)
|
|
113
118
|
@ceedling[:configurator].restore_config
|
|
114
119
|
else
|
|
115
120
|
@ceedling[:streaminator].stdout_puts("\nFound no tests including the given path or path component.")
|
|
116
121
|
end
|
|
117
122
|
end
|
|
118
123
|
|
|
119
|
-
desc
|
|
120
|
-
task :
|
|
124
|
+
desc 'Run code coverage for changed files'
|
|
125
|
+
task delta: [:directories] do
|
|
121
126
|
@ceedling[:configurator].replace_flattened_config(@ceedling[BULLSEYE_SYM].config)
|
|
127
|
+
@ceedling[BULLSEYE_SYM].enableBullseye(true)
|
|
122
128
|
@ceedling[:test_invoker].setup_and_invoke(COLLECTION_ALL_TESTS, BULLSEYE_SYM, {:force_run => false})
|
|
123
129
|
@ceedling[:configurator].restore_config
|
|
124
130
|
end
|
|
@@ -128,12 +134,13 @@ namespace BULLSEYE_SYM do
|
|
|
128
134
|
rule(/^#{BULLSEYE_TASK_ROOT}\S+$/ => [
|
|
129
135
|
proc do |task_name|
|
|
130
136
|
test = task_name.sub(/#{BULLSEYE_TASK_ROOT}/, '')
|
|
131
|
-
test = "#{PROJECT_TEST_FILE_PREFIX}#{test}"
|
|
137
|
+
test = "#{PROJECT_TEST_FILE_PREFIX}#{test}" unless test.start_with?(PROJECT_TEST_FILE_PREFIX)
|
|
132
138
|
@ceedling[:file_finder].find_test_from_file_path(test)
|
|
133
139
|
end
|
|
134
140
|
]) do |test|
|
|
135
141
|
@ceedling[:rake_wrapper][:directories].invoke
|
|
136
142
|
@ceedling[:configurator].replace_flattened_config(@ceedling[BULLSEYE_SYM].config)
|
|
143
|
+
@ceedling[BULLSEYE_SYM].enableBullseye(true)
|
|
137
144
|
@ceedling[:test_invoker].setup_and_invoke([test.source], BULLSEYE_SYM)
|
|
138
145
|
@ceedling[:configurator].restore_config
|
|
139
146
|
end
|
|
@@ -144,6 +151,7 @@ if PROJECT_USE_DEEP_DEPENDENCIES
|
|
|
144
151
|
namespace REFRESH_SYM do
|
|
145
152
|
task BULLSEYE_SYM do
|
|
146
153
|
@ceedling[:configurator].replace_flattened_config(@ceedling[BULLSEYE_SYM].config)
|
|
154
|
+
@ceedling[BULLSEYE_SYM].enableBullseye(true)
|
|
147
155
|
@ceedling[:test_invoker].refresh_deep_dependencies
|
|
148
156
|
@ceedling[:configurator].restore_config
|
|
149
157
|
end
|
|
@@ -154,9 +162,8 @@ namespace UTILS_SYM do
|
|
|
154
162
|
|
|
155
163
|
desc "Open Bullseye code coverage browser"
|
|
156
164
|
task BULLSEYE_SYM do
|
|
157
|
-
command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_BROWSER)
|
|
165
|
+
command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_BROWSER, [])
|
|
158
166
|
@ceedling[:tool_executor].exec(command[:line], command[:options])
|
|
159
167
|
end
|
|
160
168
|
|
|
161
169
|
end
|
|
162
|
-
|
|
@@ -41,10 +41,11 @@ class Bullseye < Plugin
|
|
|
41
41
|
compile_command =
|
|
42
42
|
@ceedling[:tool_executor].build_command_line(
|
|
43
43
|
TOOLS_BULLSEYE_COMPILER,
|
|
44
|
+
@ceedling[:flaginator].flag_down( OPERATION_COMPILE_SYM, BULLSEYE_SYM, source ),
|
|
44
45
|
source,
|
|
45
46
|
object,
|
|
46
47
|
@ceedling[:file_path_utils].form_test_build_list_filepath( object ) )
|
|
47
|
-
coverage_command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_INSTRUMENTATION, compile_command[:line] )
|
|
48
|
+
coverage_command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_INSTRUMENTATION, [], compile_command[:line] )
|
|
48
49
|
|
|
49
50
|
shell_result = @ceedling[:tool_executor].exec( coverage_command[:line], coverage_command[:options] )
|
|
50
51
|
|
|
@@ -59,7 +60,7 @@ class Bullseye < Plugin
|
|
|
59
60
|
@result_list << arg_hash[:result_file]
|
|
60
61
|
end
|
|
61
62
|
end
|
|
62
|
-
|
|
63
|
+
|
|
63
64
|
def post_build
|
|
64
65
|
return if (not @ceedling[:task_invoker].invoked?(/^#{BULLSEYE_TASK_ROOT}/))
|
|
65
66
|
|
|
@@ -79,7 +80,7 @@ class Bullseye < Plugin
|
|
|
79
80
|
# coverage results
|
|
80
81
|
return if (verify_coverage_file() == false)
|
|
81
82
|
if (@ceedling[:task_invoker].invoked?(/^#{BULLSEYE_TASK_ROOT}(all|delta)/))
|
|
82
|
-
command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_REPORT_COVSRC)
|
|
83
|
+
command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_REPORT_COVSRC, [])
|
|
83
84
|
shell_result = @ceedling[:tool_executor].exec(command[:line], command[:options])
|
|
84
85
|
report_coverage_results_all(shell_result[:output])
|
|
85
86
|
else
|
|
@@ -105,7 +106,25 @@ class Bullseye < Plugin
|
|
|
105
106
|
shell_result = @ceedling[:tool_executor].exec(command[:line], command[:options])
|
|
106
107
|
report_coverage_results_all(shell_result[:output])
|
|
107
108
|
end
|
|
109
|
+
|
|
110
|
+
def enableBullseye(enable)
|
|
111
|
+
if BULLSEYE_AUTO_LICENSE
|
|
112
|
+
if (enable)
|
|
113
|
+
args = ['push', 'on']
|
|
114
|
+
@ceedling[:streaminator].stdout_puts("Enabling Bullseye")
|
|
115
|
+
else
|
|
116
|
+
args = ['pop']
|
|
117
|
+
@ceedling[:streaminator].stdout_puts("Reverting Bullseye to previous state")
|
|
118
|
+
end
|
|
108
119
|
|
|
120
|
+
args.each do |arg|
|
|
121
|
+
command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_BUILD_ENABLE_DISABLE, [], arg)
|
|
122
|
+
shell_result = @ceedling[:tool_executor].exec(command[:line], command[:options])
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
109
128
|
private ###################################
|
|
110
129
|
|
|
111
130
|
def report_coverage_results_all(coverage)
|
|
@@ -137,7 +156,7 @@ class Bullseye < Plugin
|
|
|
137
156
|
coverage_sources.delete_if {|item| item =~ /#{BULLSEYE_IGNORE_SOURCES.join('|')}#{EXTENSION_SOURCE}$/}
|
|
138
157
|
|
|
139
158
|
coverage_sources.each do |source|
|
|
140
|
-
command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_REPORT_COVFN, source)
|
|
159
|
+
command = @ceedling[:tool_executor].build_command_line(TOOLS_BULLSEYE_REPORT_COVFN, [], source)
|
|
141
160
|
shell_results = @ceedling[:tool_executor].exec(command[:line], command[:options])
|
|
142
161
|
coverage_results = shell_results[:output].deep_clone
|
|
143
162
|
coverage_results.sub!(/.*\n.*\n/,'') # Remove the Bullseye tool banner
|
|
@@ -168,5 +187,8 @@ end
|
|
|
168
187
|
# end blocks always executed following rake run
|
|
169
188
|
END {
|
|
170
189
|
# cache our input configurations to use in comparison upon next execution
|
|
171
|
-
|
|
190
|
+
if (@ceedling[:task_invoker].invoked?(/^#{BULLSEYE_TASK_ROOT}/))
|
|
191
|
+
@ceedling[:cacheinator].cache_test_config( @ceedling[:setupinator].config_hash )
|
|
192
|
+
@ceedling[BULLSEYE_SYM].enableBullseye(false)
|
|
193
|
+
end
|
|
172
194
|
}
|
|
@@ -23,6 +23,8 @@ class CommandHooks < Plugin
|
|
|
23
23
|
:post_release => ((defined? TOOLS_POST_RELEASE) ? TOOLS_POST_RELEASE : nil ),
|
|
24
24
|
:pre_build => ((defined? TOOLS_PRE_BUILD) ? TOOLS_PRE_BUILD : nil ),
|
|
25
25
|
:post_build => ((defined? TOOLS_POST_BUILD) ? TOOLS_POST_BUILD : nil ),
|
|
26
|
+
:post_build => ((defined? TOOLS_POST_BUILD) ? TOOLS_POST_BUILD : nil ),
|
|
27
|
+
:post_error => ((defined? TOOLS_POST_ERROR) ? TOOLS_POST_ERROR : nil ),
|
|
26
28
|
}
|
|
27
29
|
@plugin_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
|
28
30
|
end
|
|
@@ -43,6 +45,7 @@ class CommandHooks < Plugin
|
|
|
43
45
|
def post_release; run_hook(:post_release ); end
|
|
44
46
|
def pre_build; run_hook(:pre_build ); end
|
|
45
47
|
def post_build; run_hook(:post_build ); end
|
|
48
|
+
def post_error; run_hook(:post_error ); end
|
|
46
49
|
|
|
47
50
|
private
|
|
48
51
|
|
data/plugins/gcov/README.md
CHANGED
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
ceedling-gcov
|
|
2
2
|
=============
|
|
3
3
|
|
|
4
|
-
Plugin for integrating GNU GCov code coverage tool into Ceedling projects
|
|
4
|
+
Plugin for integrating GNU GCov code coverage tool into Ceedling projects.
|
|
5
|
+
Currently only designed for the gcov command (like LCOV for example). In the
|
|
6
|
+
future we could configure this to work with other code coverage tools.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
This plugin currently uses `gcovr` to generate HTML reports as a utility. The
|
|
10
|
+
normal gcov plugin _must_ be run first for this report to generate.
|
|
11
|
+
|
|
12
|
+
Gcovr can be installed via pip like so:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
pip install gcovr
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
There are two types of gcovr HTML reports that can be configured in your
|
|
19
|
+
`project.yml`. To create a basic HTML report with only the overall file
|
|
20
|
+
information use the following config.
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
:gcov:
|
|
24
|
+
:html_report_type: basic
|
|
25
|
+
```
|
|
26
|
+
To create a detailed HTML report with line by line breakdown of the coverage use
|
|
27
|
+
the following config.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
:gcov:
|
|
31
|
+
:html_report_type: detailed
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
These reports will be found in `build/artifacts/gcov`.
|
|
35
|
+
|
|
36
|
+
|
|
5
37
|
|
|
6
38
|
# To-Do list
|
|
7
39
|
|
|
8
40
|
- Generate overall report (combined statistics from all files with coverage)
|
|
9
41
|
- Generate coverage output files
|
|
42
|
+
- Easier option override for better customisation
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
:arguments:
|
|
37
37
|
- -p
|
|
38
38
|
- -b
|
|
39
|
-
- -e "
|
|
39
|
+
- -e "${1}"
|
|
40
40
|
- --html
|
|
41
41
|
- -r .
|
|
42
42
|
- -o GcovCoverageResults.html
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
:arguments:
|
|
47
47
|
- -p
|
|
48
48
|
- -b
|
|
49
|
-
- -e "
|
|
49
|
+
- -e "${1}"
|
|
50
50
|
- --html
|
|
51
51
|
- -r .
|
|
52
52
|
- -o "$": GCOV_ARTIFACTS_FILE
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
:arguments:
|
|
57
57
|
- -p
|
|
58
58
|
- -b
|
|
59
|
-
- -e "
|
|
59
|
+
- -e "${1}"
|
|
60
60
|
- --html
|
|
61
61
|
- --html-details
|
|
62
62
|
- -r .
|