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 |