testability-driver 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -571,7 +571,8 @@ module MobyBehaviour
571
571
  rescue MobyBase::TestObjectNotFoundError, MobyBase::TestObjectNotVisibleError
572
572
 
573
573
  rules_hash_clone = rules_hash.clone
574
-
574
+
575
+ # remove type attribute from hash
575
576
  rules_hash_clone.delete(:type)
576
577
 
577
578
  # string representation of used rule hash, remove curly braces
@@ -589,10 +590,19 @@ module MobyBehaviour
589
590
 
590
591
  end
591
592
 
593
+ # raise slightly different exception message when receiver test object is type of application
594
+ if application?
595
+
596
+ message = "The application (id: #{ @id }, name: #{ @name.inspect }) has no child object with type or behaviour method with name #{ method_id.to_s.inspect }#{ attributes_string } on #{ @sut.id.inspect }"
597
+
598
+ else
599
+
600
+ message = "The test object (id: #{ @id }, type: #{ @type.inspect }, name: #{ @name.inspect }) has no child object with type or behaviour method with name #{ method_id.to_s.inspect }#{ attributes_string } on #{ @sut.id.inspect }"
601
+
602
+ end
603
+
592
604
  # raise exception
593
- Kernel::raise MobyBase::TestObjectNotFoundError.new(
594
- "The test object (id: #{ @id }, type: #{ @type.inspect }, name: #{ @name.inspect }) has no child object with type or behaviour method with name #{ method_id.to_s.inspect }#{ attributes_string } on #{ @sut.id.inspect }"
595
- )
605
+ raise MobyBase::TestObjectNotFoundError, message
596
606
 
597
607
  end
598
608
 
@@ -39,9 +39,7 @@ require File.expand_path( File.join( File.dirname( __FILE__ ), 'util/loader.rb'
39
39
  # base modules
40
40
  require File.expand_path( File.join( File.dirname( __FILE__ ), 'base/loader.rb' ) )
41
41
 
42
- # reporting modules
43
- require File.expand_path( File.join( File.dirname( __FILE__ ), 'report/report.rb' ) )
44
-
45
42
  # verify module
46
43
  require File.expand_path( File.join( File.dirname( __FILE__ ), 'verify/verify.rb' ) )
47
44
 
45
+
@@ -33,6 +33,7 @@ module TDriverErrorRecovery
33
33
  dlload "callbackif"
34
34
  extern "void restartDatagateway(const char*)"
35
35
  extern "int error()"
36
+ extern "int getBootTimeout(const char*)"
36
37
  end')
37
38
  end
38
39
 
@@ -73,7 +74,8 @@ module TDriverErrorRecovery
73
74
  if @recovery_settings.get_ats4_error_recovery_enabled=='true'
74
75
  MobyUtil::Logger.instance.log "behaviour" , "WARNING;Restarting ATS4 DataGateway"
75
76
  TDriver_Error_Recovery_ATS4.restartDatagateway(current_sut.id.to_s);
76
- sleep @recovery_settings.get_wait_time_for_ats4_error_recovery.to_i
77
+ ats_timeout=TDriver_Error_Recovery_ATS4.getBootTimeout(current_sut.id.to_s);
78
+ sleep ats_timeout.to_i
77
79
  MobyUtil::Logger.instance.log "behaviour" , "WARNING;ATS4 DataGateway restarted"
78
80
  else
79
81
  MobyUtil::Logger.instance.log "behaviour" , "WARNING;Resetting sut: #{current_sut.id.to_s}"
@@ -88,7 +90,7 @@ module TDriverErrorRecovery
88
90
  current_reconnect_attempt+=1
89
91
  end
90
92
  end
91
- Kernel::raise BehaviourError.new("Error Recovery", "Error recovery failed after #{attempt_reconnects} recovery attempts") if b_error_recovery_succesful==false
93
+ Kernel::raise MobyBase::BehaviourError.new("Error Recovery", "Error recovery failed after #{attempt_reconnects} recovery attempts") if b_error_recovery_succesful==false
92
94
  end
93
95
 
94
96
  # Reconnects the devices without ping
@@ -116,9 +118,8 @@ module TDriverErrorRecovery
116
118
  # false for failed ping
117
119
  # === raises
118
120
  def ping_device(current_sut)
119
- begin
120
- xml_state=current_sut.get_ui_dump()
121
- if xml_state.to_s.include?("tasMessage")==false
121
+ begin
122
+ if current_sut.refresh()==false
122
123
  MobyUtil::Logger.instance.log "behaviour" , "WARNING;Device ping failed"
123
124
  false
124
125
  else
@@ -91,7 +91,15 @@ class TDriverErrorRecoverySettings
91
91
  end
92
92
  def get_monitored_sut
93
93
  str_parameter=MobyUtil::Parameter[ :error_recovery_monitored_sut_ids ]
94
- @monitored_suts=str_parameter.split('|')
94
+
95
+ if str_parameter.include?('|')
96
+ @monitored_suts=str_parameter.split('|')
97
+ elsif str_parameter.include?(',')
98
+ @monitored_suts=str_parameter.split(',')
99
+ else
100
+ @monitored_suts=str_parameter
101
+ end
102
+
95
103
  @monitored_suts
96
104
  end
97
105
 
@@ -17,6 +17,7 @@
17
17
  ##
18
18
  ############################################################################
19
19
 
20
+
20
21
  require 'fileutils'
21
22
  require 'date'
22
23
  require File.expand_path( File.join( File.dirname( __FILE__ ), 'error_recovery/tdriver_error_recovery_settings' ) )
@@ -56,6 +57,8 @@ if MobyUtil::Parameter[ :custom_error_recovery_module, nil ]!=nil
56
57
  require MobyUtil::Parameter[ :custom_error_recovery_module ]
57
58
 
58
59
  end
60
+ include TDriverReportAPI
61
+
59
62
 
60
63
 
61
64
 
@@ -1,20 +1,20 @@
1
1
  ############################################################################
2
- ##
3
- ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
- ## All rights reserved.
5
- ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
- ##
7
- ## This file is part of Testability Driver.
8
- ##
9
- ## If you have questions regarding the use of this file, please contact
10
- ## Nokia at testabilitydriver@nokia.com .
11
- ##
12
- ## This library is free software; you can redistribute it and/or
13
- ## modify it under the terms of the GNU Lesser General Public
14
- ## License version 2.1 as published by the Free Software Foundation
15
- ## and appearing in the file LICENSE.LGPL included in the packaging
16
- ## of this file.
17
- ##
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of Testability Driver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
18
  ############################################################################
19
19
 
20
20
 
@@ -37,7 +37,7 @@ module TDriverReportAPI
37
37
  end
38
38
  return ret
39
39
  end
40
-
40
+
41
41
  def tdriver_log_data(data)
42
42
  Kernel::raise TypeError.new("Argument to method cannot be nil.") if data.nil?
43
43
  if $tdriver_reporter!=nil
@@ -45,19 +45,25 @@ module TDriverReportAPI
45
45
  end
46
46
  end
47
47
 
48
- def tdriver_capture_state(capture_screen_shot=true)
48
+ def tdriver_capture_state(capture_screen_shot=true)
49
49
  if $tdriver_reporter
50
50
  $new_test_case.capture_dump(capture_screen_shot) if $new_test_case
51
51
  end
52
52
  end
53
-
53
+
54
+ def tdriver_capture_screen(arguments=Hash.new)
55
+ if $tdriver_reporter
56
+ $new_test_case.capture_dump(true,arguments) if $new_test_case
57
+ end
58
+ end
59
+
54
60
  def tdriver_log_data_in_total_run_table(column_name,value)
55
61
  Kernel::raise TypeError.new("Argument to method cannot be nil.") if column_name.nil? || value.nil?
56
62
  if $tdriver_reporter!=nil
57
63
  $tdriver_reporter.set_user_table_data(column_name,value)
58
64
  end
59
65
  end
60
-
66
+
61
67
  def tdriver_report_log(message)
62
68
  Kernel::raise TypeError.new("Argument message was not a String.") unless message.nil? or message.kind_of?(String)
63
69
  if $tdriver_reporter
@@ -212,8 +218,8 @@ module TDriverReportAPI
212
218
  $stderr.puts "%s:%s warning: method deprecated" % [ file, line]
213
219
  tdriver_report_combine_reports(reports)
214
220
  end
215
-
216
-
221
+
222
+
217
223
  end #TDriverReportAPI
218
224
 
219
225
  module MattiReportAPI
@@ -222,4 +228,4 @@ module MattiReportAPI
222
228
 
223
229
  end
224
230
 
225
-
231
+
@@ -140,7 +140,9 @@ class TDriverReportCrashFileCapture
140
140
  sut_crash_files=list_sut_crash_files(sut_attributes[:sut])
141
141
  sut_crash_files.each do |crash_file|
142
142
  download_crash_file(sut_attributes[:sut],crash_file[0],download_folder.gsub("/",'\\')+'\\',crash_file[1])
143
+ delete_crash_file(sut_attributes[:sut],crash_file[0])
143
144
  end
145
+ sut_attributes[:sut].clear_crash_notes(5)
144
146
  end
145
147
  end
146
148
  end
@@ -35,6 +35,7 @@ module TDriverReportCreator
35
35
 
36
36
  @_video_file_name = "failed_test.avi"
37
37
  @_previous_video_file_name = "previous_test.avi"
38
+ @_stored_details=[]
38
39
  clean_video_files
39
40
 
40
41
  if $tdriver_reporter == nil
@@ -147,7 +148,12 @@ module TDriverReportCreator
147
148
  $tdriver_reporter.set_total_not_run(1)
148
149
  end
149
150
 
150
- $tdriver_reporter.write_to_result_storage(current_status,test_case_name,group,reboots,crashes,
151
+ $tdriver_reporter.write_to_result_storage(
152
+ current_status,
153
+ test_case_name,
154
+ group,
155
+ reboots,
156
+ crashes,
151
157
  $new_test_case.test_case_start_time,
152
158
  $new_test_case.test_case_chronological_view_data,
153
159
  $new_test_case.test_case_run_time,
@@ -158,10 +164,12 @@ module TDriverReportCreator
158
164
  '',
159
165
  $new_test_case.test_case_total_dump_count,
160
166
  $new_test_case.test_case_total_data_sent,
161
- $new_test_case.test_case_total_data_received
167
+ $new_test_case.test_case_total_data_received,
168
+ $new_test_case.test_case_user_data,
169
+ $new_test_case.test_case_user_data_columns
162
170
  )
163
-
164
-
171
+
172
+
165
173
  $tdriver_reporter.set_end_time(Time.now)
166
174
  $tdriver_reporter.set_total_run(1)
167
175
  $tdriver_reporter.update_summary_page('inprogress')
@@ -171,7 +179,7 @@ module TDriverReportCreator
171
179
  $run_status_thread_active=true
172
180
  Thread.new do
173
181
  begin
174
- #Update test case summary pages
182
+ #Update test case summary pages
175
183
  $tdriver_reporter.update_test_case_summary_pages('all')
176
184
  $tdriver_reporter.update_test_case_summary_pages('passed')
177
185
  $tdriver_reporter.update_test_case_summary_pages('failed')
@@ -246,10 +254,14 @@ module TDriverReportCreator
246
254
  exit(1)
247
255
  end
248
256
  $new_test_case.read_crash_monitor_settings()
257
+
249
258
  $new_test_case.read_file_monitor_settings()
259
+
260
+ $new_test_case.clean_crash_files_from_sut() if $test_case_run_index==1 && MobyUtil::Parameter[ :report_crash_file_monitor_crash_file_cleanup, false ]=='true'
250
261
 
251
262
  amount_of_crash_files=$new_test_case.check_if_crash_files_exist()
252
- if amount_of_crash_files.to_i > 0
263
+
264
+ if amount_of_crash_files.to_i > 0
253
265
  $new_test_case.capture_crash_files()
254
266
  $new_test_case.clean_crash_files_from_sut()
255
267
  $tdriver_reporter.set_total_crash_files(amount_of_crash_files.to_i)
@@ -257,7 +269,7 @@ module TDriverReportCreator
257
269
  end
258
270
 
259
271
  amount_of_files=$new_test_case.check_if_files_exist()
260
- if amount_of_files.to_i > 0
272
+ if amount_of_files.to_i > 0
261
273
  $new_test_case.capture_files()
262
274
  $new_test_case.clean_files_from_sut()
263
275
  $tdriver_reporter.set_total_crash_files(amount_of_files.to_i)
@@ -311,19 +323,31 @@ module TDriverReportCreator
311
323
  # nil
312
324
  # === raises
313
325
  def update_test_case(details)
314
- $new_test_case.set_test_case_execution_log(details)
315
- updating_test_case_details(details) if MobyUtil::Parameter[ :custom_error_recovery_module, nil ]!=nil
316
- if MobyUtil::Parameter[ :report_monitor_memory, 'false']=='true'
317
- begin
318
- start_memory=$new_test_case.tc_memory_amount_start()
319
- if start_memory=='-'
320
- MobyBase::SUTFactory.instance.connected_suts.each do |sut_id, sut_attributes|
321
- memory=$tdriver_reporter.get_sut_used_memory(sut_id,sut_attributes)
322
- $new_test_case.set_tc_memory_amount_start(memory)
326
+ if $new_test_case==nil
327
+ @_stored_details<<details
328
+ else
329
+ if @_stored_details!=[]
330
+ @_stored_details.each do |detail|
331
+ $new_test_case.set_test_case_execution_log(detail)
332
+ end
333
+ $new_test_case.set_test_case_execution_log(details)
334
+ @_stored_details=[]
335
+ else
336
+ $new_test_case.set_test_case_execution_log(details)
337
+ end
338
+ updating_test_case_details(details) if MobyUtil::Parameter[ :custom_error_recovery_module, nil ]!=nil
339
+ if MobyUtil::Parameter[ :report_monitor_memory, 'false']=='true'
340
+ begin
341
+ start_memory=$new_test_case.tc_memory_amount_start()
342
+ if start_memory=='-'
343
+ MobyBase::SUTFactory.instance.connected_suts.each do |sut_id, sut_attributes|
344
+ memory=$tdriver_reporter.get_sut_used_memory(sut_id,sut_attributes)
345
+ $new_test_case.set_tc_memory_amount_start(memory)
346
+ end
323
347
  end
348
+ rescue
349
+ $new_test_case.set_tc_memory_amount_start(0)
324
350
  end
325
- rescue
326
- $new_test_case.set_tc_memory_amount_start(0)
327
351
  end
328
352
  end
329
353
  end
@@ -354,20 +378,25 @@ module TDriverReportCreator
354
378
  # nil
355
379
  # === raises
356
380
  def capture_screen_test_case()
357
- create_test_case_folder($tdriver_reporter.fail_statuses.first)
358
- $new_test_case.capture_dump()
359
- if $new_test_case.video_recording?
360
- $new_test_case.copy_video_capture()
361
- end
362
- error_in_test_case(MobyBase::SUTFactory.instance.connected_suts) if MobyUtil::Parameter[ :custom_error_recovery_module, nil ]!=nil
363
381
  begin
364
- if start_error_recovery()==true
365
- error_in_connection_detected
382
+ create_test_case_folder($tdriver_reporter.fail_statuses.first)
383
+ $new_test_case.capture_dump()
384
+ if $new_test_case.video_recording?
385
+ $new_test_case.copy_video_capture()
366
386
  end
367
- rescue Exception => e
368
- update_test_case("Error recovery failed Exception: #{e.message} Backtrace: #{e.backtrace}")
369
- end_test_case($new_test_case.test_case_name,'failed')
370
- exit(1)
387
+ error_in_test_case(MobyBase::SUTFactory.instance.connected_suts) if MobyUtil::Parameter[ :custom_error_recovery_module, nil ]!=nil
388
+ begin
389
+ if start_error_recovery()==true
390
+ error_in_connection_detected
391
+ end
392
+ rescue Exception => e
393
+ update_test_case("Error recovery failed Exception: #{e.message} Backtrace: #{e.backtrace}")
394
+ end_test_case($new_test_case.test_case_name,'failed')
395
+ exit(1)
396
+ end
397
+ rescue => ex
398
+ puts ex.message
399
+ puts ex.backtrace
371
400
  end
372
401
  end
373
402
  #This updates the test case behaviour log
@@ -479,9 +508,9 @@ module TDriverReportCreator
479
508
  status='failed' if MobyUtil::Parameter[:report_fail_test_if_files_found]=='true'
480
509
  end
481
510
  end
482
-
511
+
483
512
  temp_rec = $new_test_case.video_recording?
484
-
513
+
485
514
  if temp_rec
486
515
  $new_test_case.stop_video_recording
487
516
  end
@@ -497,31 +526,31 @@ module TDriverReportCreator
497
526
  end
498
527
  end
499
528
  if(status=='passed')
500
-
529
+
501
530
  no_activity_videos = ""
502
- if MobyUtil::Parameter[:report_check_device_active, 'false']=='true'
503
- if temp_rec
504
- no_activity_videos = $new_test_case.target_video_alive
505
- end
506
- end
507
-
508
- if no_activity_videos == ""
531
+ if MobyUtil::Parameter[:report_check_device_active, 'false']=='true'
532
+ if temp_rec
533
+ no_activity_videos = $new_test_case.target_video_alive
534
+ end
535
+ end
536
+
537
+ if no_activity_videos == ""
509
538
  $new_test_case.set_test_case_status($tdriver_reporter.pass_statuses.first)
510
539
  create_test_case_folder($tdriver_reporter.pass_statuses.first)
511
540
  else
512
541
  # switch case to failed status
513
- status='failed'
542
+ status='failed'
514
543
  $new_test_case.copy_video_capture
515
544
  $new_test_case.update_test_case "The case failed due to video analysis (#{no_activity_videos}) indicating that the target is no longer responding."
516
-
545
+
517
546
  $new_test_case.set_test_case_status($tdriver_reporter.fail_statuses.first)
518
547
  create_test_case_folder($tdriver_reporter.fail_statuses.first)
519
548
  if found_crash_files.to_i > 0
520
549
  $new_test_case.capture_crash_files()
521
550
  end
522
-
551
+
523
552
  end
524
-
553
+
525
554
  end
526
555
  if(status!='passed' && status!='failed')
527
556
  $new_test_case.set_test_case_status($tdriver_reporter.not_run_statuses.first)
@@ -542,7 +571,6 @@ module TDriverReportCreator
542
571
  $new_test_case.capture_files()
543
572
  end
544
573
  $new_test_case.update_test_case_page()
545
- $new_test_case.clean_crash_files_from_sut()
546
574
  $new_test_case.clean_files_from_sut()
547
575
 
548
576
  update_run($new_test_case.test_case_name.to_s,status,$new_test_case.test_case_reboots,$new_test_case.test_case_crash_files,execution_log)
@@ -598,4 +626,4 @@ end #TDriverReportCreator
598
626
 
599
627
 
600
628
 
601
-
629
+
@@ -1,20 +1,20 @@
1
1
  ############################################################################
2
- ##
3
- ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
- ## All rights reserved.
5
- ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
- ##
7
- ## This file is part of Testability Driver.
8
- ##
9
- ## If you have questions regarding the use of this file, please contact
10
- ## Nokia at testabilitydriver@nokia.com .
11
- ##
12
- ## This library is free software; you can redistribute it and/or
13
- ## modify it under the terms of the GNU Lesser General Public
14
- ## License version 2.1 as published by the Free Software Foundation
15
- ## and appearing in the file LICENSE.LGPL included in the packaging
16
- ## of this file.
17
- ##
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of Testability Driver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
18
  ############################################################################
19
19
 
20
20
 
@@ -61,7 +61,7 @@ module TDriverReportCreator
61
61
  :tc_video_recorders,
62
62
  :tc_memory_amount_start,
63
63
  :tc_memory_amount_end,
64
- :tc_memory_amount_start,
64
+ :tc_memory_amount_start,
65
65
  :tc_memory_amount_total,
66
66
  :pass_statuses,
67
67
  :fail_statuses,
@@ -112,6 +112,7 @@ module TDriverReportCreator
112
112
  @not_run_statuses=MobyUtil::Parameter[ :report_not_run_statuses, "not run" ].split('|')
113
113
  @test_case_logging_level = MobyUtil::Parameter[ :logging_level, nil ]
114
114
  @trace_directory=MobyUtil::Parameter[ :report_trace_folder, nil]
115
+ @report_short_folders=MobyUtil::Parameter[ :report_short_folders, 'false']
115
116
  $tdriver_report_log_output = StringIO.new ""
116
117
  begin
117
118
  if MobyUtil::Parameter[:behaviour_logging] == 'true'
@@ -208,11 +209,11 @@ module TDriverReportCreator
208
209
  def set_test_case_name(value)
209
210
  @test_case_name_full=value
210
211
  #Clean the test case name for unwanted chars
211
- stripped=value.gsub(/[<\/?*>!)(}{\{@%"'.,:;~-]/,'').squeeze(" ")
212
+ stripped=value.gsub(/[<\/?*>!)(}{\\\#{@%"'.,:;~-]/,'').squeeze(" ")
212
213
  if stripped==nil then
213
214
  stripped=value.squeeze(" ")
214
215
  end
215
- stripped1 = stripped.to_s.gsub(' ','_')
216
+ stripped1 = stripped.to_s.gsub(' ','_')
216
217
  if stripped1==nil
217
218
  stripped1=stripped
218
219
  end
@@ -280,7 +281,7 @@ module TDriverReportCreator
280
281
  # === returns
281
282
  # nil
282
283
  # === raises
283
- def set_test_case_execution_log(value)
284
+ def set_test_case_execution_log(value)
284
285
  @test_case_execution_log=@test_case_execution_log.to_s + '<br />' + value.to_s.gsub(/\n/,'<br />')
285
286
  end
286
287
  #This method sets the test case user data
@@ -292,7 +293,7 @@ module TDriverReportCreator
292
293
  # === raises
293
294
  def set_test_case_user_data(data,columns)
294
295
  @test_case_user_data=data
295
- @test_case_user_data_columns=columns
296
+ @test_case_user_data_columns=columns
296
297
  end
297
298
  #This method sets the users data to display in chronological table
298
299
  #
@@ -303,7 +304,7 @@ module TDriverReportCreator
303
304
  # === raises
304
305
  def set_test_case_chronological_view_data(data)
305
306
  @test_case_chronological_view_data=data
306
- end
307
+ end
307
308
  #This method sets the test case behaviour log
308
309
  #
309
310
  # === params
@@ -318,17 +319,17 @@ module TDriverReportCreator
318
319
  #
319
320
  # === params
320
321
  # rec_name: String, name of video file to create
321
- # previous_name: String, name of video file of previous test case
322
+ # previous_name: String, name of video file of previous test case
322
323
  # === returns
323
324
  # nil
324
325
  def start_video_recording( rec_name, previous_name )
325
-
326
+
326
327
  @tc_video_filename = rec_name
327
328
  @tc_previous_video_filename = previous_name
328
329
  tc_video_width = 640
329
330
  tc_video_height = 480
330
331
  tc_video_fps = 30
331
-
332
+
332
333
  begin
333
334
  tc_video_width = MobyUtil::Parameter[ :report_video_width ].to_i
334
335
  rescue
@@ -344,20 +345,20 @@ module TDriverReportCreator
344
345
  rescue
345
346
  # parameter not loaded, do nothing
346
347
  end
347
-
348
+
348
349
 
349
350
  @tc_video_recorders = []
350
-
351
+
351
352
  begin
352
353
  each_video_device do | video_device, device_index |
353
-
354
+
354
355
  rec_options = { :width => tc_video_width, :height => tc_video_height, :fps => tc_video_fps }
355
356
  rec_options[ :device ] = video_device unless video_device == "true" # use default device if "true"
356
357
  video_recorder = MobyUtil::TDriverCam.new_cam( "cam_" + device_index + "_" + @tc_video_filename, rec_options )
357
358
  video_recorder.start_recording
358
359
  @tc_video_recorders << video_recorder
359
360
  @tc_video_recording = true
360
-
361
+
361
362
  end
362
363
  rescue Exception => e
363
364
  # make sure to stop any started cams if startup fails
@@ -365,42 +366,42 @@ module TDriverReportCreator
365
366
  raise e
366
367
 
367
368
  end
368
-
369
+
369
370
  nil
370
-
371
+
371
372
  end
372
-
373
+
373
374
  def target_video_alive
374
-
375
+
375
376
  ret = ""
376
377
  each_video_device do | video_device, device_index |
377
-
378
+
378
379
  check_fps = MobyUtil::Parameter[:report_activity_fps, '3']
379
380
  check_frame_min = MobyUtil::Parameter[:report_activity_frame_treshold, '8']
380
381
  check_video_min = MobyUtil::Parameter[:report_activity_video_treshold, '29']
381
-
382
+
382
383
  ret_n = MobyUtil.video_alive? "cam_" + device_index + "_" + @tc_video_filename, check_fps.to_f, check_frame_min.to_f, check_video_min.to_f, false
383
-
384
+
384
385
  if !ret_n
385
386
  ret += ", " if !ret.empty?
386
387
  ret += "cam_" + device_index + "_" + @tc_video_filename
387
388
  end
388
-
389
- end
390
-
389
+
390
+ end
391
+
391
392
  return ret
392
-
393
+
393
394
  end
394
-
395
+
395
396
  def stop_video_recording()
396
-
397
+
397
398
 
398
399
  @tc_video_recorders.each do | video_recorder |
399
400
  video_recorder.stop_recording
400
401
  end
401
402
 
402
403
  @tc_video_recording = false
403
-
404
+
404
405
  end
405
406
  #This method sets the tdriver test case memory at start
406
407
  #
@@ -432,7 +433,7 @@ module TDriverReportCreator
432
433
  def set_tc_memory_amount_total(value)
433
434
  @tc_memory_amount_total=value
434
435
  end
435
-
436
+
436
437
  #This method updates the tdrivertest case details page
437
438
  #
438
439
  # === params
@@ -467,50 +468,50 @@ module TDriverReportCreator
467
468
  @test_case_total_data_received
468
469
  )
469
470
  write_page_end(@test_case_folder+'/index.html')
470
-
471
+
471
472
  rescue Exception => e
472
473
  Kernel::raise e
473
474
  end
474
475
  return nil
475
476
  end
476
-
477
+
477
478
  #This method makes a copy of the video recording of this test case
478
479
  def copy_video_capture()
479
-
480
+
480
481
  stop_video_recording
481
-
482
+
482
483
  logging_enabled = MobyUtil::Logger.instance.enabled
483
484
  MobyUtil::Logger.instance.enabled=false
484
485
  begin
485
-
486
+
486
487
  video_folder=@test_case_folder+'/video'
487
488
  if File::directory?(video_folder)==false
488
489
  FileUtils.mkdir_p video_folder
489
- end
490
-
490
+ end
491
+
491
492
 
492
493
  each_video_device do | video_device, device_index |
493
-
494
- begin
494
+
495
+ begin
495
496
  FileUtils.copy("cam_" + device_index + "_" + @tc_video_filename, video_folder)
496
497
  rescue
497
498
  # Copy failed, do nothing
498
499
  end
499
-
500
+
500
501
  begin
501
502
  FileUtils.copy("cam_" + device_index + "_" + @tc_previous_video_filename, video_folder)
502
503
  rescue
503
504
  # Copy failed, do nothing
504
505
  end
505
-
506
+
506
507
  end
507
508
 
508
-
509
-
509
+
510
+
510
511
  rescue Exception => e
511
512
  @test_case_execution_log=@test_case_execution_log.to_s + '<br />' + "Unable to store video file: " + e.message
512
513
  end
513
-
514
+
514
515
  MobyUtil::Logger.instance.enabled=logging_enabled
515
516
  return nil
516
517
  end
@@ -521,7 +522,7 @@ module TDriverReportCreator
521
522
  # === returns
522
523
  # nil
523
524
  # === raises
524
- def capture_dump(take_screenshot=true)
525
+ def capture_dump(take_screenshot=true,arguments=Hash.new)
525
526
  MobyUtil::Logger.instance.enabled=false
526
527
  image_html=Array.new
527
528
  state_html=Array.new
@@ -532,24 +533,31 @@ module TDriverReportCreator
532
533
  FileUtils.mkdir_p dump_folder
533
534
  end
534
535
  MobyBase::SUTFactory.instance.connected_suts.each do |sut_id, sut_attributes|
535
-
536
+
536
537
  t = Time.now
537
538
  time_stamp=t.strftime( "%Y%m%d%H%M%S" )
538
539
  if take_screenshot==true
539
540
  begin
540
541
  sut_attributes[:sut].capture_screen( :Filename => dump_folder+'/'+time_stamp+'_'+sut_id.to_s+'_state.png', :Redraw => true ) if sut_attributes[:is_connected]
541
- image_html='<a href="state_xml/'<<
542
+ if arguments[:file]
543
+ sut_attributes[:sut].capture_screen( :Filename => arguments[:file], :Redraw => true ) if sut_attributes[:is_connected]
544
+ end
545
+ image_html='<div class="img"><a href="state_xml/'<<
542
546
  time_stamp+'_'+sut_id.to_s+'_state.png'<<
543
- '"><img alt="" src="state_xml/'<<
547
+ '" target="_blank"><img alt="" src="state_xml/'<<
544
548
  time_stamp+'_'+sut_id.to_s+'_state.png'<<
545
- '" width=20% height=20% /></a>'
549
+ '" width="10%" height="10%" /></a>'
550
+ if arguments[:text]
551
+ image_html << "<div class=\"desc\">#{arguments[:text]}</div>"
552
+ end
553
+ image_html << '</div>'
546
554
  self.set_test_case_execution_log(image_html.to_s)
547
- rescue Exception=>e
555
+ rescue Exception=>e
548
556
  @capture_screen_error="Unable to capture sceen image #{sut_id}: " + e.message
549
557
  self.set_test_case_execution_log(@capture_screen_error.to_s)
550
558
  end
551
559
  end
552
-
560
+
553
561
  begin
554
562
  failed_xml_state=sut_attributes[:sut].xml_data() if sut_attributes[:is_connected]
555
563
  File.open(dump_folder+'/'+time_stamp+'_'+sut_id.to_s+'_state.xml', 'w') { |file| file.write(failed_xml_state) }
@@ -557,7 +565,7 @@ module TDriverReportCreator
557
565
  time_stamp+'_'+sut_id.to_s+'_state.xml'<<
558
566
  '">'+time_stamp+'_'+sut_id.to_s+'_state.xml'+'</a>'
559
567
  self.set_test_case_execution_log(state_html.to_s)
560
- rescue Exception=>e
568
+ rescue Exception=>e
561
569
  @failed_dump_error="Unable to capture state xml #{sut_id}: " + e.message
562
570
  self.set_test_case_execution_log(@failed_dump_error.to_s)
563
571
  end
@@ -605,7 +613,12 @@ module TDriverReportCreator
605
613
  def create_test_case_folder(status)
606
614
  begin
607
615
  #check if report directory exists
608
- @test_case_folder=@test_cases_folder+'/'+status+'_'+@test_case_index.to_s+'_'+@test_case_name
616
+ if @report_short_folders == 'true'
617
+ @test_case_folder=@test_cases_folder+'/'+status+'_'+@test_case_index.to_s
618
+ else
619
+ @test_case_folder=@test_cases_folder+'/'+status+'_'+@test_case_index.to_s+'_'+@test_case_name
620
+ end
621
+
609
622
  if File::directory?(@test_case_folder)==false
610
623
  FileUtils.mkdir_p @test_case_folder
611
624
  end
@@ -626,7 +639,12 @@ module TDriverReportCreator
626
639
  begin
627
640
  #check if report directory exists
628
641
  old_test_case_folder=@test_case_folder
629
- new_test_case_folder=@test_case_folder.sub('result'+'_'+@test_case_index.to_s+'_'+@test_case_name,status+'_'+@test_case_index.to_s+'_'+@test_case_name)
642
+ if @report_short_folders == 'true'
643
+ new_test_case_folder=@test_case_folder.sub('result'+'_'+@test_case_index.to_s,status+'_'+@test_case_index.to_s)
644
+ else
645
+ new_test_case_folder=@test_case_folder.sub('result'+'_'+@test_case_index.to_s+'_'+@test_case_name,status+'_'+@test_case_index.to_s+'_'+@test_case_name)
646
+ end
647
+
630
648
  if File::directory?(new_test_case_folder)==false
631
649
  FileUtils.mv old_test_case_folder, new_test_case_folder , :force => true # no error
632
650
  @test_case_folder=new_test_case_folder