mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
75 lines
1.9 KiB
Ruby
75 lines
1.9 KiB
Ruby
|
require 'constants'
|
||
|
require 'defaults'
|
||
|
|
||
|
class PluginReportinator
|
||
|
|
||
|
constructor :plugin_reportinator_helper, :plugin_manager, :reportinator
|
||
|
|
||
|
def setup
|
||
|
@test_results_template = nil
|
||
|
end
|
||
|
|
||
|
|
||
|
def set_system_objects(system_objects)
|
||
|
@plugin_reportinator_helper.ceedling = system_objects
|
||
|
end
|
||
|
|
||
|
|
||
|
def fetch_results(results_path, test, options={:boom => false})
|
||
|
return @plugin_reportinator_helper.fetch_results( File.join(results_path, test), options )
|
||
|
end
|
||
|
|
||
|
|
||
|
def generate_banner(message)
|
||
|
return @reportinator.generate_banner(message)
|
||
|
end
|
||
|
|
||
|
|
||
|
def assemble_test_results(results_list, options={:boom => false})
|
||
|
aggregated_results = get_results_structure
|
||
|
|
||
|
results_list.each do |result_path|
|
||
|
results = @plugin_reportinator_helper.fetch_results( result_path, options )
|
||
|
@plugin_reportinator_helper.process_results(aggregated_results, results)
|
||
|
end
|
||
|
|
||
|
return aggregated_results
|
||
|
end
|
||
|
|
||
|
|
||
|
def register_test_results_template(template)
|
||
|
@test_results_template = template if (@test_results_template.nil?)
|
||
|
end
|
||
|
|
||
|
|
||
|
def run_test_results_report(hash, verbosity=Verbosity::NORMAL, &block)
|
||
|
run_report( $stdout,
|
||
|
((@test_results_template.nil?) ? DEFAULT_TESTS_RESULTS_REPORT_TEMPLATE : @test_results_template),
|
||
|
hash,
|
||
|
verbosity,
|
||
|
&block )
|
||
|
end
|
||
|
|
||
|
|
||
|
def run_report(stream, template, hash=nil, verbosity=Verbosity::NORMAL)
|
||
|
failure = nil
|
||
|
failure = yield() if block_given?
|
||
|
|
||
|
@plugin_manager.register_build_failure( failure )
|
||
|
|
||
|
@plugin_reportinator_helper.run_report( stream, template, hash, verbosity )
|
||
|
end
|
||
|
|
||
|
private ###############################
|
||
|
|
||
|
def get_results_structure
|
||
|
return {
|
||
|
:successes => [],
|
||
|
:failures => [],
|
||
|
:ignores => [],
|
||
|
:stdout => [],
|
||
|
:counts => {:total => 0, :passed => 0, :failed => 0, :ignored => 0, :stdout => 0}
|
||
|
}
|
||
|
end
|
||
|
|
||
|
end
|