Class: DTR::DrbTestRunnerServer
- Inherits:
-
Object
- Object
- DTR::DrbTestRunnerServer
- Defined in:
- lib/dtr/drb_dtr.rb
Instance Method Summary collapse
-
#initialize(my_uri, test_files, clients) ⇒ DrbTestRunnerServer
constructor
A new instance of DrbTestRunnerServer.
- #reports ⇒ Object
- #server_signature ⇒ Object
- #start(run_setup = false) ⇒ Object
- #succeeded? ⇒ Boolean
- #update(signature, report) ⇒ Object
- #update_setup_log(signature, report) ⇒ Object
Constructor Details
#initialize(my_uri, test_files, clients) ⇒ DrbTestRunnerServer
Returns a new instance of DrbTestRunnerServer.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/dtr/drb_dtr.rb', line 65 def initialize(my_uri, test_files, clients) logger.info {'Initializing DTR server...'} @server = Server.new(test_files) clients.each do |uri| @server.add_client DRbObjectWrapper.new(uri) logger.info {"Added DTR client at #{uri}"} end DRb.install_acl clients.to_acl logger.info { "Installed acl: #{clients.to_acl_list.join(', ')}" } @my_uri = my_uri @original_output_model = DTROPTIONS[:output_model] == :original @progress_bar = unless @original_output_model begin require 'rubygems' require 'progressbar' ProgressBar.new("Completed", test_files.size) rescue Exception => e logger.info { "Progressbar gem is not installed or could not be loaded. " } logger.info { e } @original_output_model = true original_output { "Progressbar gem is not installed or could not be loaded(got error: #{e.}).\nTurn on original output model." } NullObj.new end else NullObj.new end @original_reports = @original_output_model ? OriginalTestReports.new : NullObj.new end |
Instance Method Details
#reports ⇒ Object
132 133 134 |
# File 'lib/dtr/drb_dtr.rb', line 132 def reports @server.reports end |
#server_signature ⇒ Object
136 137 138 |
# File 'lib/dtr/drb_dtr.rb', line 136 def server_signature @server.server_signature end |
#start(run_setup = false) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/dtr/drb_dtr.rb', line 99 def start(run_setup=false) $SAFE = 1 # disable eval() and friends logger.info {'Starting server...'} DRb.start_service(@my_uri, self) logger.info { "=> DTR server started on #{@my_uri}"} original_output { "Loaded suites: #{@server.test_files.join(', ')}\n" } output "Started\n" begin begin @server.run :setup => run_setup rescue Server::NoAliveClientsError => e logger.info { e } end logger.debug { reports.to_yaml } logger.info { '' } @server.latest_build_summary.split("\n").each do |msg| logger.info { msg } end logger.info { "Run tests completed #{succeeded? ? 'SUCCEEDED' : 'FAILED'}" } original_output { "\n" } original_output { "\n#{@original_reports.failures_and_errors}" } output "\n#{@server.latest_build_summary}\n" ensure DRb.stop_service end end |
#succeeded? ⇒ Boolean
128 129 130 |
# File 'lib/dtr/drb_dtr.rb', line 128 def succeeded? @server.succeeded? end |
#update(signature, report) ⇒ Object
149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/dtr/drb_dtr.rb', line 149 def update(signature, report) original_output {@original_reports.summary_of report} if report.succeeded? logger.debug {"updating report: #{report.to_yaml}"} else logger.info { report.to_yaml } output report.stdout unless @original_output_model end result = @server.update(signature, report) @progress_bar.set reports.size result end |
#update_setup_log(signature, report) ⇒ Object
140 141 142 143 144 145 146 147 |
# File 'lib/dtr/drb_dtr.rb', line 140 def update_setup_log(signature, report) if report[:exit_code] == 0 logger.debug {"updating setup report: #{report.to_yaml}"} else logger.info { report.to_yaml } end @server.update_setup_log(signature, report) end |