webroar 0.3.1 → 0.4.0

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.
Files changed (97) hide show
  1. data/CHANGELOG +48 -1
  2. data/README +11 -14
  3. data/Rakefile +1 -1
  4. data/conf/mime_type.yml +172 -166
  5. data/conf/server_internal_config.yml +30 -8
  6. data/doc/user-guide.html +294 -153
  7. data/doc/user-guide.txt +9 -13
  8. data/lib/command_runner.rb +1 -0
  9. data/lib/dependencies.rb +18 -15
  10. data/lib/installer.rb +115 -50
  11. data/src/admin_panel/app/controllers/admin_controller.rb +1 -15
  12. data/src/admin_panel/app/controllers/application_controller.rb +2 -2
  13. data/src/admin_panel/app/controllers/application_specification_controller.rb +2 -1
  14. data/src/admin_panel/app/controllers/headers_controller.rb +73 -0
  15. data/src/admin_panel/app/controllers/mail_specification_controller.rb +10 -0
  16. data/src/admin_panel/app/controllers/server_specification_controller.rb +14 -0
  17. data/src/admin_panel/app/helpers/admin_helper.rb +0 -85
  18. data/src/admin_panel/app/models/app.rb +1 -1
  19. data/src/admin_panel/app/models/application_specification.rb +33 -25
  20. data/src/admin_panel/app/models/headers.rb +116 -0
  21. data/src/admin_panel/app/models/mail_specification.rb +20 -5
  22. data/src/admin_panel/app/models/server_specification.rb +2 -7
  23. data/src/admin_panel/app/views/admin/configuration.html.erb +10 -5
  24. data/src/admin_panel/app/views/exceptions/_exception_list_partial.html.erb +4 -4
  25. data/src/admin_panel/app/views/graph/_graph_page.html.erb +3 -0
  26. data/src/admin_panel/app/views/headers/_add_expires_text_box.html.erb +35 -0
  27. data/src/admin_panel/app/views/headers/_expires_by_type_form.html.erb +65 -0
  28. data/src/admin_panel/app/views/headers/_headers_table.html.erb +113 -0
  29. data/src/admin_panel/app/views/mail_specification/_current_spec.html.erb +168 -0
  30. data/src/admin_panel/app/views/{admin → server_specification}/_add_div.html.erb +1 -1
  31. data/src/admin_panel/config/initializers/application_constants.rb +6 -0
  32. data/src/admin_panel/lib/control.rb +6 -3
  33. data/src/admin_panel/lib/scgi.rb +74 -21
  34. data/src/admin_panel/lib/yaml_writer.rb +51 -17
  35. data/src/admin_panel/public/javascripts/application.js +20 -1
  36. data/src/head/wr_access_log.c +2 -2
  37. data/src/head/wr_application.c +294 -236
  38. data/src/head/wr_application.h +8 -8
  39. data/src/head/wr_configurator.c +451 -517
  40. data/src/head/wr_configurator.h +10 -115
  41. data/src/head/wr_connection.c +26 -25
  42. data/src/head/wr_connection.h +2 -3
  43. data/src/head/wr_controller.c +110 -93
  44. data/src/head/wr_controller.h +6 -6
  45. data/src/head/wr_main.c +31 -24
  46. data/src/head/wr_request.c +70 -93
  47. data/src/head/wr_request.h +0 -4
  48. data/src/head/wr_resolver.c +21 -15
  49. data/src/head/wr_resolver.h +2 -2
  50. data/src/head/wr_server.c +36 -26
  51. data/src/head/wr_server.h +5 -5
  52. data/src/head/wr_worker.c +551 -512
  53. data/src/head/wr_worker.h +33 -20
  54. data/src/helper/wr_config.c +316 -0
  55. data/src/helper/wr_config.h +235 -0
  56. data/src/helper/wr_helper.h +1 -5
  57. data/src/helper/wr_logger.c +4 -4
  58. data/src/helper/wr_scgi.c +3 -4
  59. data/src/helper/wr_scgi.h +2 -0
  60. data/src/helper/wr_string.h +2 -2
  61. data/src/helper/wr_util.c +3 -1
  62. data/src/helper/wr_util.h +0 -0
  63. data/src/helper/wr_yaml_parser.c +30 -0
  64. data/src/helper/wr_yaml_parser.h +1 -0
  65. data/src/ruby_lib/exception_tracker/instrumentation/action_controller.rb +2 -1
  66. data/src/ruby_lib/mailer/smtpmail.rb +7 -4
  67. data/src/ruby_lib/profiler/instrumentation/action_controller.rb +2 -1
  68. data/src/ruby_lib/profiler/instrumentation/active_record.rb +3 -0
  69. data/src/ruby_lib/rack/adapter/rails.rb +14 -7
  70. data/src/ruby_lib/ruby_interface/client.rb +1 -1
  71. data/src/ruby_lib/ruby_interface/version.rb +2 -2
  72. data/src/ruby_lib/webroar_app_loader.rb +4 -2
  73. data/src/worker/wkr_controller.c +200 -140
  74. data/src/worker/wkr_http.c +14 -28
  75. data/src/worker/wkr_http.h +4 -4
  76. data/src/worker/wkr_http_request.c +12 -11
  77. data/src/worker/wkr_http_request.h +7 -8
  78. data/src/worker/wkr_http_response.c +10 -14
  79. data/src/worker/wkr_http_response.h +0 -1
  80. data/src/worker/wkr_main.c +74 -140
  81. data/src/worker/wkr_static.c +295 -108
  82. data/src/worker/wkr_static.h +20 -7
  83. data/src/worker/worker.c +245 -70
  84. data/src/worker/worker.h +46 -34
  85. data/tasks/compile.rake +128 -175
  86. data/tasks/test.rake +345 -469
  87. data/test/spec/webroar_command_spec.rb +23 -0
  88. metadata +173 -43
  89. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/README +0 -34
  90. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/Rakefile +0 -13
  91. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/init.rb +0 -5
  92. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/lib/action_mailer_tls.rb +0 -16
  93. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/lib/smtp_tls.rb +0 -123
  94. data/src/admin_panel/vendor/plugins/action_mailer_optional_tls/test/tls_test.rb +0 -42
  95. data/src/head/wr_config.h +0 -165
  96. data/src/ruby_lib/mailer/action_mailer_tls.rb +0 -16
  97. data/src/ruby_lib/mailer/smtp_tls.rb +0 -123
data/tasks/test.rake CHANGED
@@ -24,11 +24,11 @@ require 'spec/rake/spectask'
24
24
  #TODO: forget underscore and cover tests under namespace
25
25
  WEBROAR_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..')).freeze
26
26
  SPEC_DIR = File.join(WEBROAR_ROOT,'test','spec')
27
- REPORT_DIR = File.join(WEBROAR_ROOT,'report')
28
27
  TEST_DIR = File.join(WEBROAR_ROOT, 'test')
28
+
29
29
  DEBUG_LOG_DIR = File.join(TEST_DIR,'debug_log')
30
30
  ALL_SPECS = FileList[File.join(SPEC_DIR,'*_spec.rb')].exclude("conditional_spec.rb")
31
- #ALL_SPECS = FileList[File.join(SPEC_DIR,'access_log_spec.rb')]
31
+ #ALL_SPECS = FileList[File.join(SPEC_DIR,'http_spec.rb')]
32
32
  #ALL_SPECS = FileList[File.join(SPEC_DIR,'*_spec.rb')].exclude(
33
33
  #File.join(SPEC_DIR,'host_name_spec.rb'),
34
34
  #File.join(SPEC_DIR,'connection_keep_alive_spec.rb'),
@@ -44,9 +44,58 @@ ALL_SPECS = FileList[File.join(SPEC_DIR,'*_spec.rb')].exclude("conditional_spec.
44
44
  require File.join(SPEC_DIR,'spec_helper.rb')
45
45
 
46
46
  test_flag = 1
47
+ total = 0
48
+ failed = 0
49
+ file = nil
50
+
51
+ desc "Log exceptions."
52
+ task :log_exception, :exception do |t, args|
53
+ exception_log = File.join(REPORT_DIR,'exception.log')
54
+
55
+ File.open(exception_log,"a") do |f|
56
+ f.puts args.exception
57
+ f.puts args.exception.backtrace
58
+ end
59
+ end
60
+
61
+ desc "Creates required folders for running test cases."
62
+ task :create_test_dirs do
63
+ begin
64
+ if(ENV["report_dir"])
65
+ REPORT_DIR = ENV["report_dir"]
66
+ else
67
+ REPORT_DIR = File.join(WEBROAR_ROOT,'report')
68
+ end
69
+
70
+ # make exception.log empty.
71
+ exception_log = File.join(REPORT_DIR,'exception.log')
72
+ File.truncate(exception_log,0) if File.exists?(exception_log)
73
+
74
+ UNIT_TEST_REPORT = File.join(REPORT_DIR, 'unit_test')
75
+ SPEC_TEST_REPORT = File.join(REPORT_DIR, 'spec')
76
+ ADMIN_TEST_REPORT = File.join(REPORT_DIR, 'admin_panel')
77
+ LOAD_TEST_REPORT = File.join(REPORT_DIR, 'load_test')
78
+ BUILD_TEST_REPORT = File.join(REPORT_DIR, 'build_test')
79
+
80
+ # Create directories.
81
+ if create_directories([UNIT_TEST_REPORT, SPEC_TEST_REPORT, ADMIN_TEST_REPORT, BUILD_TEST_REPORT, LOAD_TEST_REPORT, LOG_FILES]) == true
82
+ puts 'Required directories created successfully.'
83
+ else
84
+ puts 'Required directories could not be created. Can not continue...'
85
+ end
86
+ rescue Exception => e
87
+ puts e
88
+ puts e.backtrace
89
+ end
90
+
91
+ end
92
+
93
+ def check_and_copy(src_file, dest_file)
94
+ FileUtils.copy(src_file, dest_file) if File.exists?(src_file)
95
+ end
47
96
 
48
97
  desc "Build .so file for all the test written in c"
49
- task :build_tests do
98
+ task :build_unit_test do
50
99
  create_directories([TEST_OBJ_DIR])
51
100
  test_files = FileList[File.join(UNIT_TEST_DIR, '*.c'), File.join(HELPER_DIR, '*.c'),
52
101
  File.join(YAML_DIR, '*.c')]
@@ -57,79 +106,82 @@ task :build_tests do
57
106
  test_obj[obj_file]=sfn
58
107
  end
59
108
 
60
- unless $webroar_config_called
61
- webroar_config
62
- end
63
-
109
+ webroar_config unless $webroar_config_called
110
+
64
111
  test_obj.each { |obj_file,src_file|
65
- cmd = "#{COMPILER} #$inc_flags #$CFLAGS #$flags #$debug_flags -c #{src_file} -o #{obj_file}"
112
+ cmd = "#{CC} #$flags #$debug_flags -c #{src_file} -o #{obj_file}"
66
113
  sh cmd
67
114
  }
68
115
 
69
-
70
116
  tests_obj_files = FileList[File.join(TEST_OBJ_DIR,"*.o")]
71
117
 
72
118
  if RUBY_PLATFORM =~ /darwin/
73
119
  out_file = File.join(UNIT_TEST_DIR, 'test_ext.dylib')
74
- lib_flags = $libs + $LIBS
75
- lib_flags += " #{ENV['library_flags']}" if ENV['library_flags']
76
- cmd = "#{COMPILER} #$libs #{tests_obj_files} -dynamiclib -o #{out_file}"
120
+ cmd = "#{CC} #$lib_flags #{tests_obj_files} -dynamiclib -o #{out_file}"
77
121
  else
78
122
  out_file = File.join(UNIT_TEST_DIR, 'test_ext.so')
79
- cmd = "#{COMPILER} #$libs #{tests_obj_files} -shared -o #{out_file}"
123
+ cmd = "#{CC} #$lib_flags #{tests_obj_files} -shared -o #{out_file}"
80
124
  end
81
125
 
82
126
  sh cmd
83
127
  end
84
128
 
85
129
  desc "Build and executes unit test"
86
- task :unit_test do
87
- test_file = File.join(UNIT_TEST_DIR, 'test.log')
88
- summary_file = File.join(UNIT_TEST_DIR, 'test_summary')
89
- File.truncate(test_file, 0) if File.exists?(test_file)
90
- File.truncate(summary_file, 0) if File.exists?(summary_file)
91
-
92
- print "Compiling unit test cases ... "
93
- system("rake build_tests >#{File.join(UNIT_TEST_DIR,'testcases.log')} 2>>#{File.join(UNIT_TEST_DIR,'testcases.log')}")
94
- if($?==0)
95
- puts "Done."
96
- system("rake clean >>#{File.join(UNIT_TEST_DIR,'testcases.log')} 2>>#{File.join(UNIT_TEST_DIR,'testcases.log')}")
97
- puts "Running test cases ..."
98
- puts ""
99
- $LOAD_PATH.unshift(UNIT_TEST_DIR)
100
- Dir.chdir(UNIT_TEST_DIR)
101
-
102
- if RUBY_PLATFORM =~ /darwin/
103
- require 'dl'
104
- dl = DL::dlopen(File.join(UNIT_TEST_DIR,'test_ext.dylib'))
105
- run_test = dl.sym("run_test",'0')
106
- run_test.call()
130
+ task :unit_test => [:create_test_dirs] do
131
+ next unless test_flag == 1
132
+
133
+ begin
134
+ test_file = File.join(UNIT_TEST_DIR, 'test.log')
135
+ summary_file = File.join(UNIT_TEST_REPORT, 'test-summary')
136
+ File.truncate(test_file, 0) if File.exists?(test_file)
137
+
138
+ print "Compiling unit test cases ... "
139
+ system("rake build_unit_test >#{File.join(UNIT_TEST_REPORT,'testcases.log')} 2>>#{File.join(UNIT_TEST_REPORT,'testcases.log')}")
140
+ if($?==0)
141
+ puts "Done."
142
+ system("rake clean >>#{File.join(UNIT_TEST_REPORT,'testcases.log')} 2>>#{File.join(UNIT_TEST_REPORT,'testcases.log')}")
143
+ puts "Running test cases ..."
144
+ puts ""
145
+ $LOAD_PATH.unshift(UNIT_TEST_DIR)
146
+ Dir.chdir(UNIT_TEST_DIR)
147
+
148
+ if RUBY_PLATFORM =~ /darwin/
149
+ require 'dl'
150
+ dl = DL::dlopen(File.join(UNIT_TEST_DIR,'test_ext.dylib'))
151
+ run_test = dl.sym("run_test",'0')
152
+ run_test.call()
153
+ else
154
+ require 'test_ext'
155
+ Test::Test.run
156
+ end
157
+
158
+ puts "\nPlease refer '#{File.join(UNIT_TEST_REPORT, 'test.log')}' for the detailed report."
107
159
  else
108
- require 'test_ext'
109
- Test::Test.run
160
+ puts "Compilation error. Please refer 'testcases.log' for details."
110
161
  end
111
-
112
- puts "\nPlease refer 'test\\unit\\test.log' for the detailed report."
113
- else
114
- puts "Compilation error. Please refer 'testcases.log' for details."
115
- end
116
- Dir.chdir(WEBROAR_ROOT)
117
- return unless File.exists?(test_file)
118
-
119
- result = File.read(test_file)
120
-
121
- passed = 0
122
- failed = 0
123
- p_f = result.scan(/Test\s*passed\s*:\s*(\d+),\s*Test\s*failed\s*:\s*(\d+)/)
124
- p_f.each do |e|
125
- passed += e[0].to_i
126
- failed += e[1].to_i
127
- end
128
- str = "Unit test summary\nTotal test: #{passed+failed}\nFailed test: #{failed}\n"
129
-
130
- File.open(summary_file, "w") do |f|
131
- f.puts str
162
+ Dir.chdir(WEBROAR_ROOT)
163
+ next unless File.exists?(test_file)
164
+
165
+ result = File.read(test_file)
166
+
167
+ passed = 0
168
+ failed = 0
169
+ p_f = result.scan(/Test\s*passed\s*:\s*(\d+),\s*Test\s*failed\s*:\s*(\d+)/)
170
+ p_f.each do |e|
171
+ passed += e[0].to_i
172
+ failed += e[1].to_i
173
+ end
174
+ str = "Unit test summary\nTotal test: #{passed+failed}\nFailed test: #{failed}\n"
175
+
176
+ File.open(summary_file, "w") do |f|
177
+ f.puts str
178
+ end
179
+ rescue Exception => e
180
+ Rake::Task[:log_exception].invoke(e)
132
181
  end
182
+
183
+ check_and_copy(File.join(UNIT_TEST_DIR, 'test.log'), File.join(UNIT_TEST_REPORT, 'test.log'))
184
+
133
185
  end
134
186
 
135
187
  task :test_setup do
@@ -141,43 +193,96 @@ task :test_setup do
141
193
  if rv == -1
142
194
  puts " * Some problem occured in test setup. Exiting. * "
143
195
  test_flag = 0
144
- # return -1
145
196
  exit(-1)
146
197
  end
147
198
  end
148
199
 
149
- desc "Executes functional test"
150
200
  task :spec => :test_setup
151
201
  Spec::Rake::SpecTask.new(:spec) do |t|
152
202
  t.spec_files = ALL_SPECS
153
203
  t.spec_opts << "--format specdoc"
154
204
  end
155
205
 
206
+ desc "Run functional test cases."
207
+ task :spec_test => [:create_test_dirs] do
208
+ next unless test_flag == 1
209
+
210
+ puts "Executing functional tests ..."
156
211
 
157
- desc "Executes Admin-panel test"
158
- task :admin_panel_test do
159
- puts "Executing Admin-panel tests ..."
160
- Dir.chdir(File.join(WEBROAR_ROOT,'src','admin_panel'))
161
- system("rake test RAILS_ENV=test >test.log 2>error.log")
162
- result = File.read('test.log')
163
- p_f = result.scan(/(\d+)\s+tests,\s+\d+\s+assertions,\s+(\d+)\s+failures,\s+(\d+)\s+errors/)
164
- total = 0
165
- failed = 0
166
- error = 0
167
- p_f.each do |e|
168
- total += e[0].to_i
169
- failed += e[1].to_i
170
- error += e[2].to_i
212
+ begin
213
+ ENV["SPEC_OPTS"] = "--format specdoc:#{TEST_RESULT}"
214
+ Rake::Task[:spec].invoke()
215
+ rescue Exception => e
216
+ Rake::Task[:log_exception].invoke(e)
217
+ ensure
218
+ if File.exists?(TEST_RESULT)
219
+ system("tail -2 #{File.join(SPEC_DIR,'test.log')} > #{File.join(SPEC_TEST_REPORT,'test_result')}")
220
+ result = File.read(File.join(SPEC_TEST_REPORT,'test_result'))
221
+ total = 0
222
+ failed = 0
223
+ if result =~ /(\d+)\s*(example|examples),\s*(\d+)\s*failure/
224
+ total = $1
225
+ failed = $3
226
+ end
227
+ str = "Functional test summary\nTotal test: #{total}\nFailed test: #{failed}\n"
228
+ File.open(File.join(SPEC_TEST_REPORT,'test-summary'),"w") do |f|
229
+ f.puts str
230
+ end
231
+ end
232
+
233
+ log_file_pattern = File.join(LOG_FILES,'*.log')
234
+ log_files = Dir.glob(log_file_pattern)
235
+ for file in log_files
236
+ FileUtils.cp(file,File.join(SPEC_TEST_REPORT,"#{File.basename(file)}"))
237
+ end
238
+
239
+ cmd = "#{File.join(WEBROAR_ROOT,'bin','webroar')} clear"
240
+ system(cmd)
171
241
  end
172
- str = "Admin-panel test summary\nTotal test: #{total}\nFailed test: #{failed}\nError: #{error}\n"
173
- File.open('test_summary',"w") do |f|
174
- f.puts str
242
+
243
+ # copy functional tests related files
244
+ check_and_copy(File.join(SPEC_DIR, 'test.log'), File.join(SPEC_TEST_REPORT, 'test.log'))
245
+ check_and_copy(File.join(SPEC_DIR, 'setup.log'), File.join(SPEC_TEST_REPORT, 'test-setup.log'))
246
+ check_and_copy(File.join(SPEC_DIR, 'test-run.log'), File.join(SPEC_TEST_REPORT, 'test-run.log'))
247
+
248
+ end
249
+
250
+ desc "Executes Admin-panel test"
251
+ task :admin_panel_test => [:create_test_dirs] do
252
+ next unless test_flag == 1
253
+
254
+ begin
255
+ puts "Executing Admin-panel tests ..."
256
+ Dir.chdir(File.join(WEBROAR_ROOT,'src','admin_panel'))
257
+ system("rake test RAILS_ENV=test > #{File.join(ADMIN_TEST_REPORT, 'test.log')} 2>#{File.join(ADMIN_TEST_REPORT, 'error.log')}")
258
+ result = File.read(File.join(ADMIN_TEST_REPORT, 'test.log'))
259
+ p_f = result.scan(/(\d+)\s+tests,\s+\d+\s+assertions,\s+(\d+)\s+failures,\s+(\d+)\s+errors/)
260
+ total = 0
261
+ failed = 0
262
+ error = 0
263
+ p_f.each do |e|
264
+ total += e[0].to_i
265
+ failed += e[1].to_i
266
+ error += e[2].to_i
267
+ end
268
+ str = "Admin-panel test summary\nTotal test: #{total}\nFailed test: #{failed}\nError: #{error}\n"
269
+ File.open(File.join(ADMIN_TEST_REPORT, 'test-summary'),"w") do |f|
270
+ f.puts str
271
+ end
272
+ Dir.chdir(WEBROAR_ROOT)
273
+ rescue Exception => e
274
+ Rake::Task[:log_exception].invoke(e)
175
275
  end
176
- Dir.chdir(WEBROAR_ROOT)
276
+
277
+ #copy database file
278
+ check_and_copy(File.join(WEBROAR_ROOT, 'src', 'admin_panel', 'db', 'webroar_test.sqlite3'), ADMIN_TEST_REPORT)
279
+
177
280
  end
178
281
 
179
282
  desc "Load testing by ab tool"
180
- task :load_test do
283
+ task :load_test => [:create_test_dirs] do
284
+ next unless test_flag == 1
285
+
181
286
  puts "Executing load tests ..."
182
287
  begin
183
288
  create_config({},{'baseuri' => '/test_app', 'max_worker' => 6})
@@ -188,333 +293,169 @@ task :load_test do
188
293
  sleep(15)
189
294
  system("ruby #{File.join(TEST_DIR,'load_test.rb')}")
190
295
  stop_server
296
+
297
+ log_file_pattern = File.join(LOG_FILES,'*.log')
298
+ log_files = Dir.glob(log_file_pattern)
299
+ for file in log_files
300
+ FileUtils.cp(file,File.join(LOAD_TEST_REPORT,"#{File.basename(file)}"))
301
+ end
191
302
  rescue Exception => e
303
+ Rake::Task[:log_exception].invoke(e)
192
304
  ensure
193
305
  remove_config
194
306
  remove_messaging_config
195
307
  end
308
+
309
+
310
+ # copy load tests related files
311
+ check_and_copy(File.join(TEST_DIR, 'load_test_summary'), File.join(LOAD_TEST_REPORT, 'test-summary'))
312
+ check_and_copy(File.join(TEST_DIR, 'load_test_result_fix'), File.join(LOAD_TEST_REPORT, 'test-result-fix'))
313
+ check_and_copy(File.join(TEST_DIR, 'load_test_result_random'), File.join(LOAD_TEST_REPORT, 'test-result-random'))
314
+
196
315
  end
197
316
 
198
-
199
317
  desc "Build gem"
200
- task :build do
201
- cmd = "rm -fr pkg/* 2>> build_test.log >>build_test.log"
202
- system(cmd)
203
- t = Rake::Task[:gem]
204
- t.invoke()
318
+ task :build_gem => [:create_test_dirs] do
319
+ total += 1
320
+ begin
321
+ file.print "Build gem ... " if file
322
+ cmd = "rm -fr pkg/* 2>> #{File.join(BUILD_TEST_REPORT, 'test.log')} >>#{File.join(BUILD_TEST_REPORT, 'test.log')}"
323
+ system(cmd)
324
+ Rake::Task[:gem].invoke
325
+ file.puts "Pass" if file
326
+ rescue Exception => e
327
+ failed += 1
328
+ file.puts "Failed" if file
329
+ Rake::Task[:log_exception].invoke(e)
330
+ end
205
331
  end
206
332
 
207
333
  desc "Gem install. It's meant for automated testing, passing predefined values for required inputs"
208
- task :build_install do
334
+ task :build_install => [:build_gem] do
335
+ total += 1
209
336
  gem_file = File.join(WEBROAR_ROOT,'pkg',"webroar-#{Webroar::VERSION::STRING}.gem")
210
- return -1 unless File.exists?(gem_file)
211
- print "Installing gem ... "
212
- cmd = "gem install #{gem_file} 2>> build_test.log >>build_test.log"
213
- system(cmd)
214
- if($?==0)
215
- puts "Done"
216
- print "Installing WebROaR ... "
217
- cmd = "webroar install 2>> build_test.log >>build_test.log << **\nadmin\nimpetus\nimpetus\n\n**"
337
+ unless File.exists?(gem_file)
338
+ failed += 1
339
+ next
340
+ end
341
+
342
+ begin
343
+ file.print "Install gem and server ... " if file
344
+ print "Installing gem ... "
345
+ cmd = "gem install #{gem_file} 2>> #{File.join(BUILD_TEST_REPORT, 'test.log')} >>#{File.join(BUILD_TEST_REPORT, 'test.log')}"
218
346
  system(cmd)
219
347
  if($?==0)
220
348
  puts "Done"
349
+ print "Installing WebROaR ... "
350
+ cmd = "webroar install 2>> #{File.join(BUILD_TEST_REPORT, 'test.log')} >>#{File.join(BUILD_TEST_REPORT, 'test.log')} << **\nadmin\nimpetus\nimpetus\n\n**"
351
+ system(cmd)
352
+ if($?==0)
353
+ file.puts "Pass" if file
354
+ puts "Done"
355
+ else
356
+ failed += 1
357
+ puts "Failed"
358
+ file.puts "Failed" if file
359
+ end
221
360
  else
222
- test_flag = 0
361
+ failed += 1
223
362
  puts "Failed"
363
+ file.puts "Failed" if file
224
364
  end
225
- else
226
- test_flag = 0
365
+ rescue Exception => e
366
+ failed += 1
227
367
  puts "Failed"
368
+ file.puts "Failed" if file
369
+ Rake::Task[:log_exception].invoke(e)
228
370
  end
229
-
230
371
  end
231
372
 
232
373
  desc "Uninstall server and its gem"
233
- task :build_uninstall do
234
- print "Uninstalling WebROaR ... "
235
- cmd = "webroar uninstall 2>> build_test.log >>build_test.log"
236
- system(cmd)
237
- if($?==0)
238
- puts "Done"
239
- else
240
- puts "Failed"
241
- end
242
- #puts "server uninstall $? = #$?"
243
- print "Uninstalling gem ..."
244
- cmd = "gem uninstall webroar -v #{Webroar::VERSION::STRING} -x 2>> build_test.log >>build_test.log << **\ny\n** "
245
- system(cmd)
246
- if($?==0)
247
- puts "Done"
248
- else
374
+ task :build_uninstall => [:create_test_dirs] do
375
+ total += 1
376
+ file.print "Uninstall server and gem ... " if file
377
+ begin
378
+ print "Uninstalling WebROaR ... "
379
+ cmd = "webroar uninstall 2>> #{File.join(BUILD_TEST_REPORT, 'test.log')} >>#{File.join(BUILD_TEST_REPORT, 'test.log')}"
380
+ system(cmd)
381
+ if($?==0)
382
+ puts "Done"
383
+ else
384
+ puts "Failed"
385
+ end
386
+ print "Uninstalling gem ..."
387
+ cmd = "gem uninstall webroar -v #{Webroar::VERSION::STRING} -x 2>> #{File.join(BUILD_TEST_REPORT, 'test.log')} >>#{File.join(BUILD_TEST_REPORT, 'test.log')} << **\ny\n** "
388
+ system(cmd)
389
+ if($?==0)
390
+ puts "Done"
391
+ file.puts "Pass" if file
392
+ else
393
+ failed += 1
394
+ puts "Failed"
395
+ file.puts "Failed" if file
396
+ end
397
+ rescue
398
+ failed += 1
249
399
  puts "Failed"
400
+ file.puts "Failed" if file
401
+ Rake::Task[:log_exception].invoke(e)
250
402
  end
251
-
252
- # puts "gem uninstall $? = #$?"
253
403
  end
254
404
 
255
405
  desc "Build test"
256
- task :build_test do
257
- puts "Executing build tests ..."
258
- build_test = File.join(TEST_DIR,'build_test')
259
- build_test_summary = File.join(TEST_DIR,'build_test_summary')
260
- exception_log = File.join(TEST_DIR,'exception.log')
261
- File.truncate('build_test.log', 0) if File.exists?('build_test.log')
406
+ task :build_test => [:create_test_dirs] do
407
+ next unless test_flag == 1 or ENV["build_test"] == "yes"
262
408
 
263
- Dir.chdir(WEBROAR_ROOT)
264
- File.truncate(build_test,0) if File.exists?(build_test)
265
- File.truncate(build_test_summary, 0) if File.exists?(build_test_summary)
266
- total = 0
267
- failed = 0
268
- bf = File.open(build_test,'w')
269
- bf.print "Build gem ... "
270
- total += 1
271
- t = Rake::Task[:build]
272
409
  begin
273
- t.invoke()
274
- rescue Exception => e
275
- File.open(exception_log,"a") do |f|
276
- f.puts e
277
- f.puts e.backtrace
278
- end
279
- end
280
- # puts "$? = #$?"
281
- unless $? == 0
282
- failed += 1
283
- bf.puts "Failed"
284
- else
285
- bf.puts "Done"
286
- end
410
+ puts "Executing build tests ..."
411
+ build_test_summary = File.join(BUILD_TEST_REPORT,'test-summary')
412
+ build_test = File.join(BUILD_TEST_REPORT,'build_test')
413
+ File.truncate(File.join(BUILD_TEST_REPORT, 'test.log'), 0) if File.exists?(File.join(BUILD_TEST_REPORT, 'test.log'))
414
+
415
+ Dir.chdir(WEBROAR_ROOT)
416
+ File.truncate(build_test_summary, 0) if File.exists?(build_test_summary)
417
+ File.truncate(build_test, 0) if File.exist?(build_test)
418
+
419
+ total = 0
420
+ failed = 0
421
+ file = File.open(build_test,'w')
422
+
423
+ Rake::Task[:build_install].invoke
424
+ Rake::Task[:build_uninstall].invoke
425
+
426
+ file.puts "#{total} total, #{failed} failed\n"
427
+ file.close
428
+
429
+ file = nil
287
430
 
288
- bf.print "Install gem and server ... "
289
- total += 1
290
- t = Rake::Task[:build_install]
291
- begin
292
- t.invoke()
293
- rescue Exception => e
294
- File.open(exception_log,"a") do |f|
295
- f.puts e
296
- f.puts e.backtrace
431
+ str = "Build test summary\nTotal test: #{total}\nFailed test: #{failed}\n"
432
+ File.open(build_test_summary,"w") do |f|
433
+ f.puts str
297
434
  end
298
- end
299
- # puts "$? = #$?"
300
- unless $? == 0
301
- failed += 1
302
- bf.puts "Failed"
303
- else
304
- bf.puts "Pass"
305
- end
306
-
307
- bf.print "Uninstall server and gem ... "
308
- total += 1
309
- t = Rake::Task[:build_uninstall]
310
- begin
311
- t.invoke()
312
435
  rescue Exception => e
313
- File.open(exception_log,"a") do |f|
314
- f.puts e
315
- f.puts e.backtrace
316
- end
317
- end
318
- # puts "$? = #$?"
319
- unless $? == 0
320
- failed += 1
321
- bf.puts "Failed"
322
- else
323
- bf.puts "Pass"
324
- end
325
-
326
- bf.puts "#{total} total, #{failed} failed\n"
327
- bf.close
328
-
329
- str = "Build test summary\nTotal test: #{total}\nFailed test: #{failed}\n"
330
- File.open(build_test_summary,"w") do |f|
331
- f.puts str
332
- end
333
- end
334
-
335
- def check_and_copy(src_file, dest_file)
336
- if File.exists?(src_file)
337
- FileUtils.copy(src_file, dest_file)
436
+ Rake::Task[:log_exception].invoke(e)
338
437
  end
339
438
  end
340
439
 
341
440
  def test_cleanup(report_dir)
342
441
 
343
- unless File.exists?(report_dir)
344
- FileUtils.mkdir_p(report_dir)
345
- end
346
-
347
- # copy unit tests related files
348
- check_and_copy(File.join(UNIT_TEST_DIR,'test_summary'), File.join(report_dir, 'unit-test-summary'))
349
- check_and_copy(File.join(UNIT_TEST_DIR, 'testcases.log'), File.join(report_dir, 'unit-testcase.log'))
350
- check_and_copy(File.join(UNIT_TEST_DIR, 'test.log'), File.join(report_dir, 'unit-test.log'))
351
-
352
- # copy admin-panel tests related files
353
- check_and_copy(File.join(WEBROAR_ROOT,'src', 'admin_panel', 'test.log'), File.join(report_dir, 'admin-panel-test.log'))
354
- check_and_copy(File.join(WEBROAR_ROOT,'src', 'admin_panel', 'error.log'), File.join(report_dir, 'admin-panel-error.log'))
355
- check_and_copy(File.join(WEBROAR_ROOT,'src', 'admin_panel', 'test_summary'), File.join(report_dir, 'admin-panel-test-summary'))
356
-
357
- # copy functional tests related files
358
- check_and_copy(File.join(SPEC_DIR, 'test.log'), File.join(report_dir, 'spec-test.log'))
359
- check_and_copy(File.join(SPEC_DIR, 'test_summary'), File.join(report_dir, 'spec-test-summary'))
360
- check_and_copy(File.join(SPEC_DIR, 'setup.log'), File.join(report_dir, 'spec-test-setup.log'))
361
- check_and_copy(File.join(SPEC_DIR, 'test-run.log'), File.join(report_dir, 'spec-test-run.log'))
362
-
363
- # copy load tests related files
364
- check_and_copy(File.join(TEST_DIR, 'load_test_summary'), File.join(report_dir, 'load-test-summary'))
365
- check_and_copy(File.join(TEST_DIR, 'load_test_result_fix'), File.join(report_dir, 'load-test-result-fix'))
366
- check_and_copy(File.join(TEST_DIR, 'load_test_result_random'), File.join(report_dir, 'load-test-result-random'))
367
-
368
- # copy exception.log
369
- check_and_copy(File.join(TEST_DIR, 'exception.log'), File.join(report_dir, 'exception.log.1'))
370
-
371
- #copy database file
372
- check_and_copy(File.join(WEBROAR_ROOT, 'src', 'admin_panel', 'db', 'webroar_test.sqlite3'), report_dir)
373
-
374
- # copy debug_log files
375
- if ENV["debug_build"] == "yes"
376
- dest_debug_log_dir = File.join(report_dir, 'debug_log')
377
- unless File.exists?(dest_debug_log_dir)
378
- FileUtils.mkdir_p(dest_debug_log_dir)
379
- end
380
- log_file_pattern = File.join(DEBUG_LOG_DIR,'*')
381
- log_files = Dir.glob(log_file_pattern)
382
- for file in log_files
383
- FileUtils.cp(file,dest_debug_log_dir)
384
- end
442
+ unless REPORT_DIR == report_dir
443
+ FileUtils.cp_r(REPORT_DIR, report_dir)
385
444
  end
386
- end
387
445
 
388
- desc "Integrated testing executes unit tests, admin-panel tests and functional \
389
- tests. To run load tests give load_test=yes, to run build tests give \
390
- build_test=yes as an argument. To run test under debug build give \
391
- debug_build=yes as an argument."
392
- task :all_test do
393
-
394
- if ENV["debug_build"] == "yes"
395
- # Clear log files.
396
- system("webroar clear")
397
- unless File.exists?(LOG_FILES)
398
- FileUtils.mkdir_p(LOG_FILES)
399
- end
400
- end
401
-
402
- exception_log = File.join(TEST_DIR,'exception.log')
403
- File.truncate(exception_log,0) if File.exists?(exception_log)
404
-
405
- if(test_flag==1)
406
- t = Rake::Task[:unit_test]
407
- begin
408
- t.invoke()
409
- rescue Exception => e
410
- File.open(exception_log,"a") do |f|
411
- f.puts e
412
- f.puts e.backtrace
413
- end
414
- end
415
- end
416
-
417
- if(test_flag==1)
418
- t = Rake::Task[:spec]
419
- puts "Executing functional tests ..."
420
- begin
421
- ENV["SPEC_OPTS"] = "--format specdoc:#{TEST_RESULT}"
422
- t.invoke()
423
- rescue Exception => e
424
- File.open(exception_log,"a") do |f|
425
- f.puts e
426
- f.puts e.backtrace
427
- end
428
- ensure
429
- if File.exists?(TEST_RESULT)
430
- system("tail -2 #{File.join(SPEC_DIR,'test.log')} > #{File.join(SPEC_DIR,'test_summary')}")
431
- result = File.read(File.join(SPEC_DIR,'test_summary'))
432
- total = 0
433
- failed = 0
434
- if result =~ /(\d+)\s*(example|examples),\s*(\d+)\s*failure/
435
- total = $1
436
- failed = $3
437
- end
438
- str = "Functional test summary\nTotal test: #{total}\nFailed test: #{failed}\n"
439
- File.open(File.join(SPEC_DIR,'test_summary'),"w") do |f|
440
- f.puts str
441
- end
442
- end
443
-
444
- if ENV["debug_build"] == "yes"
445
- unless File.exists?(DEBUG_LOG_DIR)
446
- FileUtils.mkdir_p(DEBUG_LOG_DIR)
447
- end
448
- log_file_pattern = File.join(LOG_FILES,'*.log')
449
- log_files = Dir.glob(log_file_pattern)
450
- for file in log_files
451
- FileUtils.cp(file,File.join(DEBUG_LOG_DIR,"#{File.basename(file)}.spec"))
452
- end
453
- cmd = "#{File.join(WEBROAR_ROOT,'bin','webroar')} clear"
454
- system(cmd)
455
- end
456
- end
457
- end
458
-
459
- if(test_flag==1)
460
- t = Rake::Task[:admin_panel_test]
461
- begin
462
- t.invoke()
463
- rescue Exception => e
464
- File.open(exception_log,"a") do |f|
465
- f.puts e
466
- f.puts e.backtrace
467
- end
468
- end
469
- end
470
-
471
- if test_flag==1 and ENV["load_test"] == 'yes'
472
- t = Rake::Task[:load_test]
473
- begin
474
- t.invoke()
475
- rescue Exception => e
476
- File.open(exception_log,"a") do |f|
477
- f.puts e
478
- f.puts e.backtrace
479
- end
480
- end
481
- end
482
-
483
- if test_flag==1 and ENV["build_test"] == "yes"
484
- t = Rake::Task[:build_test]
485
- begin
486
- t.invoke()
487
- rescue Exception => e
488
- File.open(exception_log,"a") do |f|
489
- f.puts e
490
- f.puts e.backtrace
491
- end
492
- end
493
- end
494
-
495
- if(ENV["report_dir"])
496
- test_cleanup(ENV["report_dir"])
497
- end
498
-
499
- unless ENV["no_report"]
500
- test_report(ENV["report_dir"])
501
- end
502
-
503
446
  end
504
447
 
505
- #task :all_test => [:unit_test, :admin_panel_test, :spec, :load_test]
506
-
507
- def test_report(report_dir)
448
+ def test_report
508
449
  total = 0
509
450
  failed = 0
510
- f = File.open(File.join(report_dir,'test-summary'),"w")
451
+ f = File.open(File.join(REPORT_DIR,'test-summary'),"w")
511
452
  f.puts "------------------------------------------------------------------------------"
512
453
  fmt = "%*s%*s%*s"
513
454
  str = fmt % [-58,'Type',10,'Total',10,'Failed']
514
455
  f.puts str
515
456
  f.puts "-------------------------------------------------------------------------------"
516
- if File.exists?(File.join(report_dir,'unit-test-summary'))
517
- result = File.read(File.join(report_dir,'unit-test-summary'))
457
+ if File.exists?(File.join(UNIT_TEST_REPORT,'test-summary'))
458
+ result = File.read(File.join(UNIT_TEST_REPORT,'test-summary'))
518
459
  result =~ /Total\s*test:\s*(\d+)\s*Failed\s*test:\s*(\d+)/m
519
460
  str = fmt % [-58, 'Unit Tests',10,$1,10,$2]
520
461
  f.puts str
@@ -522,8 +463,8 @@ def test_report(report_dir)
522
463
  failed += $2.to_i
523
464
  end
524
465
 
525
- if File.exists?(File.join(report_dir,'admin-panel-test-summary'))
526
- result = File.read(File.join(report_dir,'admin-panel-test-summary'))
466
+ if File.exists?(File.join(ADMIN_TEST_REPORT,'test-summary'))
467
+ result = File.read(File.join(ADMIN_TEST_REPORT,'test-summary'))
527
468
  result =~ /Total\s*test:\s*(\d+)\s*Failed\s*test:\s*(\d+)\s*Error:\s*(\d+)/m
528
469
  str = fmt % [-58, 'Admin Panel Tests',10,$1,10,$2]
529
470
  f.puts str
@@ -531,8 +472,8 @@ def test_report(report_dir)
531
472
  failed += $2.to_i
532
473
  end
533
474
 
534
- if File.exists?(File.join(report_dir,'spec-test-summary'))
535
- result = File.read(File.join(report_dir,'spec-test-summary'))
475
+ if File.exists?(File.join(SPEC_TEST_REPORT,'test-summary'))
476
+ result = File.read(File.join(SPEC_TEST_REPORT,'test-summary'))
536
477
  result =~ /Total\s*test:\s*(\d+)\s*Failed\s*test:\s*(\d+)/m
537
478
  str = fmt % [-58, 'Functional Tests', 10, $1, 10, $2]
538
479
  f.puts str
@@ -540,8 +481,8 @@ def test_report(report_dir)
540
481
  failed += $2.to_i
541
482
  end
542
483
 
543
- if File.exists?(File.join(report_dir,'load-test-summary'))
544
- result = File.read(File.join(report_dir,'load-test-summary'))
484
+ if File.exists?(File.join(LOAD_TEST_REPORT,'test-summary'))
485
+ result = File.read(File.join(LOAD_TEST_REPORT,'test-summary'))
545
486
  res = result.scan(/Total\s*test:\s*(\d+)\s*Failed\s*test:\s*(\d+)\s*/m)
546
487
  str = fmt % [-58, "Load Test I - Continuous Run", 10, res[0][0], 10, res[0][1]]
547
488
  f.puts str
@@ -551,8 +492,8 @@ def test_report(report_dir)
551
492
  failed += res[0][1].to_i + res[1][1].to_i
552
493
  end
553
494
 
554
- if File.exists?(File.join(TEST_DIR,'build_test_summary'))
555
- result = File.read(File.join(TEST_DIR,'build_test_summary'))
495
+ if File.exists?(File.join(BUILD_TEST_REPORT,'test-summary'))
496
+ result = File.read(File.join(BUILD_TEST_REPORT,'test-summary'))
556
497
  result =~ /Total\s*test:\s*(\d+)\s*Failed\s*test:\s*(\d+)/m
557
498
  str = fmt % [-58, "Build Tests", 10, $1, 10, $2]
558
499
  f.puts str
@@ -562,48 +503,48 @@ def test_report(report_dir)
562
503
  end
563
504
  f.close
564
505
 
565
- f = File.open(File.join(report_dir,'test-report'),"w")
566
- f.puts File.read(File.join(report_dir,'test-summary')) if File.exists?(File.join(report_dir,'test-summary'))
506
+ f = File.open(File.join(REPORT_DIR,'test-report'),"w")
507
+ f.puts File.read(File.join(REPORT_DIR,'test-summary')) if File.exists?(File.join(REPORT_DIR,'test-summary'))
567
508
 
568
- if File.exists?(File.join(report_dir,'unit-test.log'))
509
+ if File.exists?(File.join(UNIT_TEST_REPORT,'test.log'))
569
510
  f.puts "-------------------------------Unit Tests Result--------------------------------"
570
- f.puts File.read(File.join(report_dir,'unit-test.log'))
511
+ f.puts File.read(File.join(UNIT_TEST_REPORT,'test.log'))
571
512
  f.puts "\n"
572
513
  end
573
514
 
574
- if File.exists?(File.join(report_dir,'admin-panel-test.log'))
515
+ if File.exists?(File.join(ADMIN_TEST_REPORT,'test.log'))
575
516
  f.puts "-----------------------------Admin Panel Tests Result---------------------------"
576
- f.puts File.read(File.join(report_dir, 'admin-panel-test.log'))
517
+ f.puts File.read(File.join(ADMIN_TEST_REPORT, 'test.log'))
577
518
  f.puts "\n"
578
519
  end
579
520
 
580
- if File.exists?(File.join(report_dir,'spec-test.log'))
521
+ if File.exists?(File.join(SPEC_TEST_REPORT,'test.log'))
581
522
  f.puts "------------------------------Functional Tests Result---------------------------"
582
- f.puts File.read(File.join(report_dir,'spec-test.log'))
523
+ f.puts File.read(File.join(SPEC_TEST_REPORT,'test.log'))
583
524
  f.puts "\n"
584
525
  end
585
526
 
586
- if File.exists?(File.join(report_dir,'load-test-result-fix'))
527
+ if File.exists?(File.join(LOAD_TEST_REPORT,'test-result-fix'))
587
528
  f.puts "---------------------------Load Test I - Continuous Run-------------------------"
588
- f.puts File.read(File.join(report_dir,'load-test-result-fix'))
529
+ f.puts File.read(File.join(LOAD_TEST_REPORT,'test-result-fix'))
589
530
  f.puts "\n"
590
531
  end
591
532
 
592
- if File.exists?(File.join(report_dir,'load-test-result-random'))
533
+ if File.exists?(File.join(LOAD_TEST_REPORT,'test-result-random'))
593
534
  f.puts "------------------------Load test II - Random Sleep Intervals-------------------"
594
- f.puts File.read(File.join(report_dir,'load-test-result-random'))
535
+ f.puts File.read(File.join(LOAD_TEST_REPORT,'test-result-random'))
595
536
  f.puts "\n"
596
537
  end
597
538
 
598
- if File.exists?(File.join(TEST_DIR,'build_test'))
539
+ if File.exists?(File.join(BUILD_TEST_REPORT,'build_test'))
599
540
  f.puts "--------------------------------Build Tests Result------------------------------"
600
- f.puts File.read(File.join(TEST_DIR,'build_test'))
541
+ f.puts File.read(File.join(BUILD_TEST_REPORT,'build_test'))
601
542
  f.puts "\n"
602
543
  end
603
544
 
604
545
  f.close
605
546
 
606
- f = File.open(File.join(report_dir,"test-result"),"w")
547
+ f = File.open(File.join(REPORT_DIR,"test-result"),"w")
607
548
  if total == 0 and failed == 0
608
549
  f.puts "Could not be executed at all"
609
550
  elsif total == failed
@@ -617,105 +558,40 @@ def test_report(report_dir)
617
558
 
618
559
  end
619
560
 
561
+ desc "Integrated testing executes unit tests, admin-panel tests and functional \
562
+ tests. To run load tests give load_test=yes, to run build tests give \
563
+ build_test=yes as an argument. To run test under debug build give \
564
+ debug_build=yes as an argument."
565
+ task :all_test => [:create_test_dirs, :unit_test, :spec_test, :admin_panel_test, :load_test] do
566
+
567
+ unless ENV["no_report"]
568
+ test_report
569
+ end
570
+
571
+ if(ENV["report_dir"])
572
+ test_cleanup(ENV["report_dir"])
573
+ end
574
+
575
+ end
576
+
620
577
  desc "Runs integrated test-suit comprises of gem creation, installation, unit \
621
578
  tests, admin-panel tests, functional tests. To run load tests give \
622
579
  load_test=yes as an argument. To run under debug build give debug_build=\
623
580
  yes as an argument."
624
- task :test do
625
- exception_log = File.join(TEST_DIR,'exception.log')
626
- File.truncate(exception_log,0) if File.exists?(exception_log)
627
-
628
- build_test = File.join(TEST_DIR,'build_test')
629
- build_test_summary = File.join(TEST_DIR,'build_test_summary')
630
- exception_log = File.join(TEST_DIR,'exception.log')
581
+ task :test => [:build_test] do
631
582
 
632
583
  Dir.chdir(WEBROAR_ROOT)
633
- File.truncate(build_test,0) if File.exists?(build_test)
634
- File.truncate(build_test_summary, 0) if File.exists?(build_test_summary)
635
- total = 0
636
- failed = 0
637
- bf = File.open(build_test,'w')
638
- bf.print "Build gem ... "
639
- total += 1
640
- t = Rake::Task[:build]
641
- begin
642
- t.invoke()
643
- rescue Exception => e
644
- File.open(exception_log,"a") do |f|
645
- f.puts e
646
- f.puts e.backtrace
647
- end
648
- end
649
- # puts "$? = #$?"
650
- unless $? == 0
651
- failed += 1
652
- bf.puts "Failed"
653
- else
654
- bf.puts "Pass"
655
- end
656
-
657
- bf.print "Install gem and server ... "
658
- total += 1
659
- t = Rake::Task[:build_install]
660
- begin
661
- t.invoke()
662
- rescue Exception => e
663
- File.open(exception_log,"a") do |f|
664
- f.puts e
665
- f.puts e.backtrace
666
- end
667
- end
668
- # puts "$? = #$?"
669
- unless $? == 0
670
- failed += 1
671
- bf.puts "Failed"
672
- else
673
- bf.puts "Pass"
674
- end
675
-
676
- str = "-n "
677
-
678
- if ENV["debug_build"] == "yes"
679
- str += "-d "
680
- end
584
+
585
+ Rake::Task[:build_install].reenable
586
+ Rake::Task[:build_install].invoke
681
587
 
682
- if ENV["load_test"] == "yes"
683
- str += "-l"
684
- end
588
+ str = " "
589
+ str += "-d " if ENV["debug_build"] == "yes"
590
+ str += "-l" if ENV["load_test"] == "yes"
685
591
 
686
592
  # Run tests on installed directory. Copy test-report and test-summary to TEST_DIR
687
593
  cmd = "webroar test -r=#{REPORT_DIR} #{str}"
688
594
  system(cmd)
689
-
690
- bf.print "Uninstall server and gem ... "
691
- total += 1
692
- t = Rake::Task[:build_uninstall]
693
- begin
694
- t.invoke()
695
- rescue Exception => e
696
- File.open(exception_log,"a") do |f|
697
- f.puts e
698
- f.puts e.backtrace
699
- end
700
- end
701
- # puts "$? = #$?"
702
- unless $? == 0
703
- failed += 1
704
- bf.puts "Failed"
705
- else
706
- bf.puts "Pass"
707
- end
708
-
709
- bf.puts "#{total} total, #{failed} failed\n"
710
- bf.close
711
-
712
- str = "Build test summary\nTotal test: #{total}\nFailed test: #{failed}\n"
713
- File.open(build_test_summary,"w") do |f|
714
- f.puts str
715
- end
716
-
717
- test_report(REPORT_DIR)
595
+ Rake::Task[:build_uninstall].reenable
596
+ Rake::Task[:build_uninstall].invoke
718
597
  end
719
-
720
- #desc "Integration testing and test-suite summary, report and one line result."
721
- #task :test => [:all_test, :test_report]