summaryrefslogtreecommitdiffstats
path: root/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report')
-rwxr-xr-xtinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/assets/template.erb84
-rwxr-xr-xtinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/assets/template.erb copy59
-rwxr-xr-xtinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml4
-rwxr-xr-xtinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb43
4 files changed, 190 insertions, 0 deletions
diff --git a/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/assets/template.erb b/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/assets/template.erb
new file mode 100755
index 00000000..fb8e3b13
--- /dev/null
+++ b/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/assets/template.erb
@@ -0,0 +1,84 @@
+% ignored = hash[:results][:counts][:ignored]
+% failed = hash[:results][:counts][:failed]
+% stdout_count = hash[:results][:counts][:stdout]
+% header_prepend = ((hash[:header].length > 0) ? "#{hash[:header]}: " : '')
+% banner_width = 25 + header_prepend.length # widest message
+% results = {}
+% hash[:results][:successes].each do |testresult|
+% results[ testresult[:source][:file] ] = testresult[:collection]
+% results[ testresult[:source][:file] ].length.times do |i|
+% results[ testresult[:source][:file] ][i][:pass] = true
+% end
+% end
+% hash[:results][:ignores].each do |testresult|
+% if (results[ testresult[:source][:file] ].nil?)
+% results[ testresult[:source][:file] ] = testresult[:collection]
+% else
+% results[ testresult[:source][:file] ] += testresult[:collection]
+% end
+% results[ testresult[:source][:file] ].length.times do |i|
+% results[ testresult[:source][:file] ][i][:pass] = true
+% end
+% end
+% hash[:results][:failures].each do |testresult|
+% if (results[ testresult[:source][:file] ].nil?)
+% results[ testresult[:source][:file] ] = testresult[:collection]
+% else
+% results[ testresult[:source][:file] ] += testresult[:collection]
+% end
+% end
+
+
+[==========] Running <%=hash[:results][:counts][:total].to_s%> tests from <%=results.length.to_s%> test cases.
+[----------] Global test environment set-up.
+% results.each_pair do |modulename, moduledetails|
+[----------] <%=moduledetails.length.to_s%> tests from <%=modulename%>
+% moduledetails.each do |item|
+[ RUN ] <%=modulename%>.<%=item[:test]%>
+% if (not item[:pass])
+% if (not item[:message].empty?)
+<%=modulename%>(<%=item[:line]%>): error: <%=item[:message]%>
+
+% m = item[:message].match(/Expected\s+(.*)\s+Was\s+([^\.]*)\./)
+% if m.nil?
+ Actual: FALSE
+ Expected: TRUE
+% else
+ Actual: <%=m[2]%>
+ Expected: <%=m[1]%>
+% end
+% else
+<%=modulename%>(<%=item[:line]%>): fail: <%=item[:message]%>
+ Actual: FALSE
+ Expected: TRUE
+% end
+[ FAILED ] <%=modulename%>.<%=item[:test]%> (0 ms)
+% else
+[ OK ] <%=modulename%>.<%=item[:test]%> (0 ms)
+% end
+% end
+[----------] <%=moduledetails.length.to_s%> tests from <%=modulename%> (0 ms total)
+% end
+
+% if (hash[:results][:counts][:total] > 0)
+[----------] Global test environment tear-down.
+[==========] <%=hash[:results][:counts][:total].to_s%> tests from <%=hash[:results][:stdout].length.to_s%> test cases ran.
+[ PASSED ] <%=hash[:results][:counts][:passed].to_s%> tests.
+% if (failed == 0)
+[ FAILED ] 0 tests.
+
+ 0 FAILED TESTS
+% else
+[ FAILED ] <%=failed.to_s%> tests, listed below:
+% hash[:results][:failures].each do |failure|
+% failure[:collection].each do |item|
+[ FAILED ] <%=failure[:source][:file]%>.<%=item[:test]%>
+% end
+% end
+% end
+
+ <%=failed.to_s%> FAILED TESTS
+% else
+
+No tests executed.
+% end
diff --git a/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/assets/template.erb copy b/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/assets/template.erb copy
new file mode 100755
index 00000000..a90f495e
--- /dev/null
+++ b/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/assets/template.erb copy
@@ -0,0 +1,59 @@
+% ignored = hash[:results][:counts][:ignored]
+% failed = hash[:results][:counts][:failed]
+% stdout_count = hash[:results][:counts][:stdout]
+% header_prepend = ((hash[:header].length > 0) ? "#{hash[:header]}: " : '')
+% banner_width = 25 + header_prepend.length # widest message
+
+
+% if (stdout_count > 0)
+[==========] Running <%=hash[:results][:counts][:total].to_s%> tests from <%=hash[:results][:stdout].length.to_s%> test cases.
+[----------] Global test environment set-up.
+% end
+% if (failed > 0)
+% hash[:results][:failures].each do |failure|
+[----------] <%=failure[:collection].length.to_s%> tests from <%=failure[:source][:file]%>
+% failure[:collection].each do |item|
+[ RUN ] <%=failure[:source][:file]%>.<%=item[:test]%>
+% if (not item[:message].empty?)
+<%=failure[:source][:file]%>(<%=item[:line]%>): error: <%=item[:message]%>
+
+% m = item[:message].match(/Expected\s+(.*)\s+Was\s+([^\.]*)\./)
+% if m.nil?
+ Actual: FALSE
+ Expected: TRUE
+% else
+ Actual: <%=m[2]%>
+ Expected: <%=m[1]%>
+% end
+% else
+<%=failure[:source][:file]%>(<%=item[:line]%>): fail: <%=item[:message]%>
+ Actual: FALSE
+ Expected: TRUE
+% end
+[ FAILED ] <%=failure[:source][:file]%>.<%=item[:test]%> (0 ms)
+% end
+[----------] <%=failure[:collection].length.to_s%> tests from <%=failure[:source][:file]%> (0 ms total)
+% end
+% end
+% if (hash[:results][:counts][:total] > 0)
+[----------] Global test environment tear-down.
+[==========] <%=hash[:results][:counts][:total].to_s%> tests from <%=hash[:results][:stdout].length.to_s%> test cases ran.
+[ PASSED ] <%=hash[:results][:counts][:passed].to_s%> tests.
+% if (failed == 0)
+[ FAILED ] 0 tests.
+
+ 0 FAILED TESTS
+% else
+[ FAILED ] <%=failed.to_s%> tests, listed below:
+% hash[:results][:failures].each do |failure|
+% failure[:collection].each do |item|
+[ FAILED ] <%=failure[:source][:file]%>.<%=item[:test]%>
+% end
+% end
+
+ <%=failed.to_s%> FAILED TESTS
+% end
+% else
+
+No tests executed.
+% end
diff --git a/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml b/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml
new file mode 100755
index 00000000..c25acf51
--- /dev/null
+++ b/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml
@@ -0,0 +1,4 @@
+---
+:plugins:
+ # tell Ceedling we got results display taken care of
+ :display_raw_test_results: FALSE
diff --git a/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb b/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb
new file mode 100755
index 00000000..a51438a3
--- /dev/null
+++ b/tinyusb/test/vendor/ceedling/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb
@@ -0,0 +1,43 @@
+require 'ceedling/plugin'
+require 'ceedling/defaults'
+
+class StdoutGtestlikeTestsReport < Plugin
+
+ def setup
+ @result_list = []
+ @plugin_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
+ template = @ceedling[:file_wrapper].read(File.join(@plugin_root, 'assets/template.erb'))
+ @ceedling[:plugin_reportinator].register_test_results_template( template )
+ end
+
+ def post_test_fixture_execute(arg_hash)
+ return if not (arg_hash[:context] == TEST_SYM)
+
+ @result_list << arg_hash[:result_file]
+ end
+
+ def post_build
+ return if not (@ceedling[:task_invoker].test_invoked?)
+
+ results = @ceedling[:plugin_reportinator].assemble_test_results(@result_list)
+ hash = {
+ :header => '',
+ :results => results
+ }
+
+ @ceedling[:plugin_reportinator].run_test_results_report(hash)
+ end
+
+ def summary
+ result_list = @ceedling[:file_path_utils].form_pass_results_filelist( PROJECT_TEST_RESULTS_PATH, COLLECTION_ALL_TESTS )
+
+ # get test results for only those tests in our configuration and of those only tests with results on disk
+ hash = {
+ :header => '',
+ :results => @ceedling[:plugin_reportinator].assemble_test_results(result_list, {:boom => false})
+ }
+
+ @ceedling[:plugin_reportinator].run_test_results_report(hash)
+ end
+
+end