testability-driver 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. data/bin/tdriver-devtools +0 -0
  2. data/config/sut_setup.rb +32 -0
  3. data/config/sut_teardown.rb +32 -0
  4. data/ext/extconf.rb +3 -1
  5. data/lib/tdriver-devtools/behaviour/old/xml/update +0 -0
  6. data/lib/tdriver-devtools/behaviour/xml/generate.rb +0 -0
  7. data/lib/tdriver-devtools/doc/update +0 -0
  8. data/lib/tdriver-devtools/doc/xslt/update +0 -0
  9. data/lib/tdriver-devtools/tdriver-devtools.rb +0 -0
  10. data/lib/tdriver-devtools/tests/feature_tests/output/application_closable_0x3f.feature +10 -0
  11. data/lib/tdriver-devtools/tests/feature_tests/output/application_close.feature +15 -0
  12. data/lib/tdriver-devtools/tests/feature_tests/output/application_environment.feature +10 -0
  13. data/lib/tdriver-devtools/tests/feature_tests/output/application_executable_name.feature +10 -0
  14. data/lib/tdriver-devtools/tests/feature_tests/output/application_uid.feature +10 -0
  15. data/lib/tdriver-devtools/tests/feature_tests/output/created.rid +1 -0
  16. data/lib/tdriver-devtools/tests/feature_tests/output/find_find.feature +15 -0
  17. data/lib/tdriver-devtools/tests/feature_tests/output/flash_behaviour_flash.feature +10 -0
  18. data/lib/tdriver-devtools/tests/feature_tests/output/flash_behaviour_flash_images.feature +15 -0
  19. data/lib/tdriver-devtools/tests/feature_tests/output/sut_application.feature +15 -0
  20. data/lib/tdriver-devtools/tests/feature_tests/output/sut_capture_screen.feature +10 -0
  21. data/lib/tdriver-devtools/tests/feature_tests/output/sut_child.feature +10 -0
  22. data/lib/tdriver-devtools/tests/feature_tests/output/sut_clear_verify_blocks.feature +10 -0
  23. data/lib/tdriver-devtools/tests/feature_tests/output/sut_connect.feature +10 -0
  24. data/lib/tdriver-devtools/tests/feature_tests/output/sut_controller_execution_order.feature +10 -0
  25. data/lib/tdriver-devtools/tests/feature_tests/output/sut_controller_execution_order_0x3d.feature +10 -0
  26. data/lib/tdriver-devtools/tests/feature_tests/output/sut_current_application_id.feature +15 -0
  27. data/lib/tdriver-devtools/tests/feature_tests/output/sut_disconnect.feature +10 -0
  28. data/lib/tdriver-devtools/tests/feature_tests/output/sut_dump_count.feature +15 -0
  29. data/lib/tdriver-devtools/tests/feature_tests/output/sut_freeze.feature +10 -0
  30. data/lib/tdriver-devtools/tests/feature_tests/output/sut_frozen.feature +10 -0
  31. data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_application_id.feature +10 -0
  32. data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_object.feature +10 -0
  33. data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_operator_data.feature +10 -0
  34. data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_ui_dump.feature +15 -0
  35. data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_user_information.feature +10 -0
  36. data/lib/tdriver-devtools/tests/feature_tests/output/sut_input.feature +15 -0
  37. data/lib/tdriver-devtools/tests/feature_tests/output/sut_parameter.feature +15 -0
  38. data/lib/tdriver-devtools/tests/feature_tests/output/sut_press_key.feature +10 -0
  39. data/lib/tdriver-devtools/tests/feature_tests/output/sut_received_data.feature +10 -0
  40. data/lib/tdriver-devtools/tests/feature_tests/output/sut_refresh.feature +20 -0
  41. data/lib/tdriver-devtools/tests/feature_tests/output/sut_refresh_timeout.feature +15 -0
  42. data/lib/tdriver-devtools/tests/feature_tests/output/sut_refresh_tries.feature +15 -0
  43. data/lib/tdriver-devtools/tests/feature_tests/output/sut_refresh_ui_dump.feature +20 -0
  44. data/lib/tdriver-devtools/tests/feature_tests/output/sut_run.feature +10 -0
  45. data/lib/tdriver-devtools/tests/feature_tests/output/sut_sent_data.feature +10 -0
  46. data/lib/tdriver-devtools/tests/feature_tests/output/sut_state.feature +10 -0
  47. data/lib/tdriver-devtools/tests/feature_tests/output/sut_translate.feature +30 -0
  48. data/lib/tdriver-devtools/tests/feature_tests/output/sut_ui_type.feature +10 -0
  49. data/lib/tdriver-devtools/tests/feature_tests/output/sut_ui_version.feature +10 -0
  50. data/lib/tdriver-devtools/tests/feature_tests/output/sut_unfreeze.feature +10 -0
  51. data/lib/tdriver-devtools/tests/feature_tests/output/sut_update.feature +10 -0
  52. data/lib/tdriver-devtools/tests/feature_tests/output/sut_verify_always.feature +20 -0
  53. data/lib/tdriver-devtools/tests/feature_tests/output/sut_verify_blocks.feature +10 -0
  54. data/lib/tdriver-devtools/tests/feature_tests/output/sut_x_path.feature +10 -0
  55. data/lib/tdriver-devtools/tests/feature_tests/output/sut_xml_data.feature +10 -0
  56. data/lib/tdriver-devtools/tests/feature_tests/output/sut_xml_data_0x3d.feature +10 -0
  57. data/lib/tdriver-devtools/tests/feature_tests/output/sut_xml_data_crc.feature +10 -0
  58. data/lib/tdriver-devtools/tests/feature_tests/output/switchbox_behaviour_power_down.feature +10 -0
  59. data/lib/tdriver-devtools/tests/feature_tests/output/switchbox_behaviour_power_status.feature +10 -0
  60. data/lib/tdriver-devtools/tests/feature_tests/output/switchbox_behaviour_power_up.feature +10 -0
  61. data/lib/tdriver-devtools/tests/feature_tests/output/switchbox_behaviour_reset.feature +10 -0
  62. data/lib/tdriver-devtools/tests/feature_tests/output/verification_test_object_exists_0x3f.feature +15 -0
  63. data/lib/tdriver-devtools/tests/feature_tests/update +0 -0
  64. data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +4 -4
  65. data/lib/tdriver/base/behaviour/factory.rb +8 -0
  66. data/lib/tdriver/base/sut/generic/behaviours/application.rb +24 -3
  67. data/lib/tdriver/base/sut/generic/behaviours/sut.rb +465 -354
  68. data/lib/tdriver/base/test_object/adapter.rb +2 -2
  69. data/lib/tdriver/base/test_object/behaviours/test_object.rb +22 -5
  70. data/lib/tdriver/base/test_object/cache.rb +1 -1
  71. data/lib/tdriver/base/test_object/factory.rb +23 -3
  72. data/lib/tdriver/env.rb +0 -0
  73. data/lib/tdriver/loader.rb +0 -0
  74. data/lib/tdriver/matti.rb +0 -0
  75. data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +22 -24
  76. data/lib/tdriver/report/report.rb +8 -1
  77. data/lib/tdriver/report/report_api.rb +18 -0
  78. data/lib/tdriver/report/report_combine.rb +1 -1
  79. data/lib/tdriver/report/report_creator.rb +5 -1
  80. data/lib/tdriver/report/report_execution_statistics.rb +105 -78
  81. data/lib/tdriver/report/report_test_case_run.rb +2 -1
  82. data/lib/tdriver/report/report_test_run.rb +187 -116
  83. data/lib/tdriver/report/report_writer.rb +49 -29
  84. data/lib/tdriver/tdriver.rb +14 -3
  85. data/lib/tdriver/util/common/exception.rb +53 -0
  86. data/lib/tdriver/util/common/hash.rb +79 -23
  87. data/lib/tdriver/util/common/numeric.rb +26 -5
  88. data/lib/tdriver/util/common/object.rb +44 -15
  89. data/lib/tdriver/util/common/string.rb +4 -1
  90. data/lib/tdriver/util/filters/dynamic_attributes.rb +2 -1
  91. data/lib/tdriver/util/keymap/keymap.rb +81 -0
  92. data/lib/tdriver/util/loader.rb +4 -1
  93. data/lib/tdriver/util/logger/logger.rb +17 -9
  94. data/lib/tdriver/util/other/config.rb +0 -0
  95. data/lib/tdriver/util/parameter/error.rb +3 -0
  96. data/lib/tdriver/util/parameter/loader.rb +6 -1
  97. data/lib/tdriver/util/parameter/parameter.rb +87 -14
  98. data/lib/tdriver/util/parameter/parameter_new.rb +869 -0
  99. data/lib/tdriver/util/parameter/parameter_template.rb +2 -2
  100. data/lib/tdriver/util/parameter/parameter_user_api.rb +27 -3
  101. data/lib/tdriver/util/parameter/parameter_xml.rb +36 -38
  102. data/lib/tdriver/version.rb +1 -1
  103. data/xml/templates/generic.xml +4 -10
  104. metadata +196 -138
@@ -440,7 +440,7 @@ module TDriverReportCreator
440
440
  # === returns
441
441
  # nil
442
442
  # === raises
443
- def update_test_case_page()
443
+ def update_test_case_page(rewrite=false)
444
444
  begin
445
445
  #Calculate run time
446
446
  @test_case_run_time=Time.now-@test_case_start_time
@@ -467,6 +467,7 @@ module TDriverReportCreator
467
467
  @test_case_total_data_received
468
468
  )
469
469
  write_page_end(@test_case_folder+'/index.html')
470
+
470
471
  rescue Exception => e
471
472
  Kernel::raise e
472
473
  end
@@ -88,7 +88,7 @@ module TDriverReportCreator
88
88
  @total_received_data=Hash.new
89
89
  @total_sent_data=Hash.new
90
90
  $result_storage_in_use=false
91
- @pages=MobyUtil::Parameter[ :report_results_per_page, 10]
91
+ @pages=MobyUtil::Parameter[ :report_results_per_page, 50]
92
92
  @duration_graph=MobyUtil::Parameter[ :report_generate_duration_graph, false]
93
93
  @pass_statuses=MobyUtil::Parameter[ :report_passed_statuses, "passed" ].split('|')
94
94
  @fail_statuses=MobyUtil::Parameter[ :report_failed_statuses, "failed" ].split('|')
@@ -335,7 +335,7 @@ module TDriverReportCreator
335
335
  # === raises
336
336
  def get_not_run_cases_arr()
337
337
  #@not_run_cases_arr
338
- read_result_storage('not run')
338
+ read_result_storage('not_run')
339
339
  end
340
340
  #This method gets the passed cases name array
341
341
  #
@@ -478,6 +478,28 @@ module TDriverReportCreator
478
478
  return nil
479
479
  end
480
480
 
481
+ #This method generates the tdriver test run summary page grouped by test case
482
+ #
483
+ # === params
484
+ # nil
485
+ # === returns
486
+ # nil
487
+ # === raises
488
+ def group_results_by_test_case()
489
+ @all_cases_arr=read_result_storage('all')
490
+ created_grouped_test_result=[]
491
+
492
+ @all_cases_arr.each do |test_case|
493
+ #name, status
494
+ tc=[test_case[7],test_case[0]]
495
+ if !created_grouped_test_result.include?(tc)
496
+ update_test_case_summary_page(test_case[7],false,"Test: #{test_case[0]} Result: #{test_case[7]}",test_case[0])
497
+ created_grouped_test_result << tc
498
+ end
499
+ end
500
+
501
+ end
502
+
481
503
  #This method updates the tdriver test run summary page
482
504
  #
483
505
  # === params
@@ -912,7 +934,9 @@ module TDriverReportCreator
912
934
  end
913
935
  end
914
936
 
915
- def read_result_storage(results)
937
+ def parse_results_for_current_test( by_status )
938
+
939
+ ret_xml = nil
916
940
  while $result_storage_in_use==true
917
941
  sleep 1
918
942
  end
@@ -922,12 +946,72 @@ module TDriverReportCreator
922
946
  result_storage=Array.new
923
947
  storage_file='all_cases.xml'
924
948
 
949
+
925
950
  file=@report_folder+'/'+storage_file
926
951
  if File.exist?(file)
927
952
  io = File.open(file, 'r')
953
+ ret_xml = Nokogiri::XML(io){ |config| config.options = Nokogiri::XML::ParseOptions::STRICT }
954
+
955
+ io.close
956
+
957
+ status_search = ""
958
+
959
+ case by_status
960
+ when "all"
961
+ status_search = ""
962
+ when "passed"
963
+ status_search = " and (status='"
964
+ status_search << @pass_statuses.join("' or status='")
965
+ status_search << "')"
966
+ when "failed"
967
+ status_search = " and (status='"
968
+ status_search << @fail_statuses.join("' or status='")
969
+ status_search << "')"
970
+ when "not run"
971
+ status_search = " and (status='"
972
+ status_search << @not_run_statuses.join("' or status='")
973
+ status_search << "')"
974
+ else
975
+ status_search = " and status='" + by_status + "'"
976
+ end
977
+
978
+ ret_xml = ret_xml.root.xpath("//tests/test[name='#{$new_test_case.test_case_name}' and group='#{$new_test_case.test_case_group}'#{status_search}]")
979
+ else
980
+ #puts "No file " << storage_file
981
+ end
982
+ rescue Exception => e
983
+ $result_storage_in_use=false
984
+ raise e
985
+
986
+ end
987
+
988
+ $result_storage_in_use=false
989
+
990
+ ret_xml
991
+
992
+ end
993
+
994
+ def read_result_storage(results,case_name=nil)
995
+ while $result_storage_in_use==true
996
+ sleep 1
997
+ end
998
+ $result_storage_in_use=true
999
+ begin
1000
+ result_storage=nil
1001
+ result_storage=Array.new
1002
+ storage_file='all_cases.xml'
1003
+
1004
+ file=@report_folder+'/'+storage_file
1005
+ if File.exist?(file)
1006
+ io = File.open(file, 'rb')
928
1007
  xml_data = Nokogiri::XML(io){ |config| config.options = Nokogiri::XML::ParseOptions::STRICT }
929
1008
  io.close
930
- xml_data.root.xpath("//tests/test").each do |node|
1009
+ if case_name
1010
+ nodes=xml_data.root.xpath("//tests/test[name='#{case_name}']")
1011
+ else
1012
+ nodes=xml_data.root.xpath("//tests/test")
1013
+ end
1014
+ nodes.each do |node|
931
1015
  value=node.search("name").text #0
932
1016
  group=node.search("group").text #1
933
1017
  reboots=node.search("reboots").text #2
@@ -950,125 +1034,89 @@ module TDriverReportCreator
950
1034
  user_data[value_name] = val
951
1035
  end
952
1036
 
1037
+ current_record=[value,
1038
+ group,
1039
+ reboots,
1040
+ crashes,
1041
+ start_time,
1042
+ duration,
1043
+ memory_usage,
1044
+ status,
1045
+ index,
1046
+ log,
1047
+ comment,
1048
+ link,
1049
+ user_data,
1050
+ dump_count,
1051
+ sent_bytes,
1052
+ received_bytes
1053
+ ]
953
1054
  case results
954
1055
  when 'passed'
955
- if @pass_statuses.include?(status)
956
- result_storage << [value,
957
- group,
958
- reboots,
959
- crashes,
960
- start_time,
961
- duration,
962
- memory_usage,
963
- status,
964
- index,
965
- log,
966
- comment,
967
- link,
968
- user_data,
969
- dump_count,
970
- sent_bytes,
971
- received_bytes
972
- ]
1056
+ if case_name
1057
+ if @pass_statuses.include?(status) && value==case_name
1058
+ result_storage << current_record
1059
+ end
1060
+ else
1061
+ if @pass_statuses.include?(status)
1062
+ result_storage << current_record
1063
+ end
973
1064
  end
1065
+
974
1066
  when 'failed'
975
- if @fail_statuses.include?(status)
976
- result_storage << [value,
977
- group,
978
- reboots,
979
- crashes,
980
- start_time,
981
- duration,
982
- memory_usage,
983
- status,
984
- index,
985
- log,
986
- comment,
987
- link,
988
- user_data,
989
- dump_count,
990
- sent_bytes,
991
- received_bytes
992
- ]
1067
+ if case_name
1068
+ if @fail_statuses.include?(status) && value==case_name
1069
+ result_storage << current_record
1070
+ end
1071
+ else
1072
+ if @fail_statuses.include?(status)
1073
+ result_storage << current_record
1074
+ end
993
1075
  end
1076
+
994
1077
  when 'not_run'
995
- if @not_run_statuses.include?(status)
996
- result_storage << [value,
997
- group,
998
- reboots,
999
- crashes,
1000
- start_time,
1001
- duration,
1002
- memory_usage,
1003
- status,
1004
- index,
1005
- log,
1006
- comment,
1007
- link,
1008
- user_data,
1009
- dump_count,
1010
- sent_bytes,
1011
- received_bytes
1012
- ]
1078
+ if case_name
1079
+ if @not_run_statuses.include?(status) && value==case_name
1080
+ result_storage << current_record
1081
+ end
1082
+ else
1083
+ if @not_run_statuses.include?(status)
1084
+ result_storage << current_record
1085
+ end
1013
1086
  end
1087
+
1014
1088
  when 'crash'
1015
1089
  if crashes.to_i > 0
1016
- result_storage << [value,
1017
- group,
1018
- reboots,
1019
- crashes,
1020
- start_time,
1021
- duration,
1022
- memory_usage,
1023
- status,
1024
- index,
1025
- log,
1026
- comment,
1027
- link,
1028
- user_data,
1029
- dump_count,
1030
- sent_bytes,
1031
- received_bytes
1032
- ]
1090
+ result_storage << current_record
1033
1091
  end
1092
+
1034
1093
  when 'reboot'
1035
1094
  if reboots.to_i > 0
1036
- result_storage << [value,
1037
- group,
1038
- reboots,
1039
- crashes,
1040
- start_time,
1041
- duration,
1042
- memory_usage,
1043
- status,
1044
- index,
1045
- log,
1046
- comment,
1047
- link,
1048
- user_data,
1049
- dump_count,
1050
- sent_bytes,
1051
- received_bytes
1052
- ]
1095
+ result_storage << current_record
1053
1096
  end
1097
+
1054
1098
  when 'all'
1055
- result_storage << [value,
1056
- group,
1057
- reboots,
1058
- crashes,
1059
- start_time,
1060
- duration,
1061
- memory_usage,
1062
- status,
1063
- index,
1064
- log,
1065
- comment,
1066
- link,
1067
- user_data,
1068
- dump_count,
1069
- sent_bytes,
1070
- received_bytes
1071
- ]
1099
+ if case_name
1100
+ if value==case_name
1101
+ result_storage << current_record
1102
+ end
1103
+ else
1104
+ result_storage << current_record
1105
+ end
1106
+ else
1107
+ if @pass_statuses.include?(status)
1108
+ if (( case_name and value==case_name ) or !case_name )
1109
+ result_storage << current_record
1110
+ end
1111
+ elsif @fail_statuses.include?(status)
1112
+ if (( case_name and value==case_name ) or !case_name )
1113
+ result_storage << current_record
1114
+ end
1115
+ elsif @not_run_statuses.include?(status)
1116
+ if (( case_name and value==case_name ) or !case_name )
1117
+ result_storage << current_record
1118
+ end
1119
+ end
1072
1120
  end
1073
1121
  end
1074
1122
  xml_data=nil
@@ -1143,18 +1191,41 @@ module TDriverReportCreator
1143
1191
  # === returns
1144
1192
  # nil
1145
1193
  # === raises
1146
- def update_test_case_summary_page(status,rewrite=false,title="")
1194
+ def update_test_case_summary_page(status,rewrite=false,title="",test_case_name=nil,tc_result_arr=nil)
1147
1195
  @cases_arr=Array.new
1148
-
1149
- @cases_arr=read_result_storage(status)
1196
+ search_case = nil
1197
+ if @pass_statuses.include?(status)
1198
+ search_case = "passed"
1199
+ elsif @fail_statuses.include?(status)
1200
+ search_case = "failed"
1201
+ elsif @not_run_statuses.include?(status)
1202
+ search_case = "not_run"
1203
+ else
1204
+ search_case = status
1205
+ end
1206
+ status=status.gsub(' ','_')
1207
+ if test_case_name
1208
+ @cases_arr=read_result_storage(search_case,test_case_name)
1209
+ else
1210
+ @cases_arr=read_result_storage(search_case)
1211
+ end
1150
1212
  splitted_arr=Array.new
1151
1213
  splitted_arr=split_array(@cases_arr,@pages.to_i)
1152
1214
  page=1
1153
1215
  splitted_arr.each do |case_arr|
1154
- if @report_pages_ready.include?("#{page}_passed")==false || rewrite==true
1155
- write_page_start(@report_folder+"/cases/#{page}_#{status}_index.html",title,page,splitted_arr.length)
1156
- write_test_case_summary_body(@report_folder+"/cases/#{page}_#{status}_index.html",status,case_arr,nil)
1157
- page_ready=write_page_end(@report_folder+"/cases/#{page}_#{status}_index.html",page,splitted_arr.length)
1216
+
1217
+ if test_case_name
1218
+ if @report_pages_ready.include?("#{page}_#{status}_#{test_case_name}")==false || rewrite==true
1219
+ write_page_start(@report_folder+"/cases/#{page}_#{status}_#{test_case_name}_index.html",title,page,splitted_arr.length)
1220
+ write_test_case_summary_body(@report_folder+"/cases/#{page}_#{status}_#{test_case_name}_index.html",status,case_arr,nil)
1221
+ page_ready=write_page_end(@report_folder+"/cases/#{page}_#{status}_#{test_case_name}_index.html",page,splitted_arr.length)
1222
+ end
1223
+ else
1224
+ if @report_pages_ready.include?("#{page}_#{status}")==false || rewrite==true
1225
+ write_page_start(@report_folder+"/cases/#{page}_#{status}_index.html",title,page,splitted_arr.length)
1226
+ write_test_case_summary_body(@report_folder+"/cases/#{page}_#{status}_index.html",status,case_arr,nil)
1227
+ page_ready=write_page_end(@report_folder+"/cases/#{page}_#{status}_index.html",page,splitted_arr.length)
1228
+ end
1158
1229
  end
1159
1230
  if page_ready!=nil
1160
1231
  @report_pages_ready << "#{page_ready}_#{status}"
@@ -438,9 +438,10 @@ display: block;
438
438
  end
439
439
 
440
440
  def format_duration(seconds)
441
- if Gem.available?('chronic_duration')
441
+ begin
442
+ require 'chronic_duration'
442
443
  duration_str=ChronicDuration.output(seconds)
443
- else
444
+ rescue LoadError
444
445
  m, s = seconds.divmod(60)
445
446
  duration_str="#{m}m#{'%.3f' % s}s"
446
447
  end
@@ -467,7 +468,7 @@ display: block;
467
468
  def copy_code_file_to_test_case_report(file,folder,linen)
468
469
  begin
469
470
  FileUtils.mkdir_p(folder.to_s+'/stack_files') if File::directory?(folder.to_s+'/stack_files')==false
470
- if File.directory?("#{Dir.pwd}/#{@report_folder}/#{folder}")
471
+ if File.directory?("#{Dir.pwd}/#{@report_folder}/#{folder}")
471
472
  write_stack_file_to_html(file,"#{Dir.pwd}/#{@report_folder}/#{folder}/stack_files/#{File.basename(file)}.html",linen)
472
473
  FileUtils.copy(file,"#{Dir.pwd}/#{@report_folder}/#{folder}/stack_files/#{File.basename(file)}")
473
474
  else
@@ -483,16 +484,16 @@ display: block;
483
484
 
484
485
  def reporter_link_to_code(log_line,folder=nil)
485
486
  begin
486
- log_line.gsub(/([\w\*\/\w\/\.-]+)\:(\d+)/) do |match|
487
- line=match[/(\d+)/]
488
- f=match[/([\w\*\/\w\/\.-]+)/]
487
+ log_line.gsub(/([\w \*\/\w\/\.-]+)\:(\d+)/) do |match|
488
+ line=match[/\:(\d+)/]
489
+ f=match[/([\w \*\/\w\/\.-]+)/]
489
490
  file="#{File.dirname(f.strip)}/#{File.basename(f.strip)}"
490
491
  file = file if File.exist?(file)
491
492
  file = "#{Dir.pwd}/#{file}" if File.exist?("#{Dir.pwd}/#{file}")
492
493
  if File.exist?(file) && match.include?('testability-driver')==false
493
- copy_code_file_to_test_case_report(file,folder,line.strip)
494
+ copy_code_file_to_test_case_report(file,folder,line.gsub(':','').strip)
494
495
  link_to_stack='<a style="color: #FF0000" href="stack_files/'<<
495
- File.basename(file.to_s)+'.html#'+line.to_s<<
496
+ File.basename(file.to_s)+'.html#'+line.to_s.gsub(':','')<<
496
497
  '">'+match+'</a>'
497
498
  log_line=log_line.gsub(match,link_to_stack)
498
499
  end
@@ -645,7 +646,12 @@ display: block;
645
646
  when "TDriver test environment","Total run","Statistics","Passed","Failed","Not run","Crash","Reboot","TDriver log"
646
647
  stylesheet='<link rel="stylesheet" title="TDriverReportStyle" href="../tdriver_report_style.css"/>'
647
648
  else
648
- stylesheet='<link rel="stylesheet" title="TDriverReportStyle" href="../../tdriver_report_style.css"/>'
649
+ if title.include?("Test:")
650
+ stylesheet='<link rel="stylesheet" title="TDriverReportStyle" href="../tdriver_report_style.css"/>'
651
+ else
652
+ stylesheet='<link rel="stylesheet" title="TDriverReportStyle" href="../../tdriver_report_style.css"/>'
653
+ end
654
+
649
655
  end
650
656
  html_start='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' <<
651
657
  '<html xmlns="http://www.w3.org/1999/xhtml">'<<
@@ -896,12 +902,11 @@ display: block;
896
902
  end
897
903
  tdriver_group = nil
898
904
  html_body=nil
899
- GC.start
905
+
900
906
  end
901
- def write_test_case_summary_body(page,status,tc_arr,chronological_page=nil,report_page=nil)
907
+ def write_test_case_summary_body(page,status,tc_arr,chronological_page=nil,report_page=nil,test_case_name=nil)
902
908
  html_body=Array.new
903
- case status
904
- when 'passed'
909
+ if @pass_statuses.include?(status) || status == "passed"
905
910
  title='<div class="page_title"><center><h1>Passed</h1></center></div>'<<
906
911
  '<div class="summary_passed">' <<
907
912
  '<form action="save_total_run_results" >'
@@ -915,7 +920,7 @@ display: block;
915
920
  html_body << '<form action="save_results_to" ><input type="submit" name="save_results_to" value="Download report" /></form>' if @report_editable=='true'
916
921
  tdriver_group=nil
917
922
  html_result=nil
918
- when 'failed'
923
+ elsif @fail_statuses.include?(status) || status == "failed"
919
924
  title='<div class="page_title"><center><h1>Failed</h1></center></div>'<<
920
925
  '<div class="summary_failed">' <<
921
926
  '<form action="save_total_run_results" >'
@@ -929,7 +934,7 @@ display: block;
929
934
  html_body << '<form action="save_results_to" ><input type="submit" name="save_results_to" value="Download report" /></form>' if @report_editable=='true'
930
935
  tdriver_group=nil
931
936
  html_result=nil
932
- when 'not_run'
937
+ elsif @not_run_statuses.include?(status) || status == "not_run"
933
938
  title='<div class="page_title"><center><h1>Not run</h1></center></div>'<<
934
939
  '<div class="summary_not_run">' <<
935
940
  '<form action="save_total_run_results" >'
@@ -943,6 +948,8 @@ display: block;
943
948
  html_body << '<form action="save_results_to" ><input type="submit" name="save_results_to" value="Download report" /></form>' if @report_editable=='true'
944
949
  tdriver_group=nil
945
950
  html_result=nil
951
+ else
952
+ case status
946
953
  when 'crash'
947
954
  title='<div class="page_title"><center><h1>Crash</h1></center></div>'<<
948
955
  '<div class="summary_crash">' <<
@@ -1017,25 +1024,27 @@ display: block;
1017
1024
  tdriver_group=nil
1018
1025
  chronological_html_result=nil
1019
1026
  chronological_html_body=nil
1020
- end
1027
+ end # case
1028
+ end # if
1029
+
1021
1030
  html_body << '</div>'
1022
1031
  File.open(page, 'a') do |f2|
1023
1032
  f2.puts html_body
1024
1033
  end
1025
1034
  html_body=nil
1026
- GC.start
1035
+
1027
1036
  end
1028
1037
 
1029
1038
  def write_summary_body(page,start_time,end_time,run_time,total_run,total_passed,total_failed,total_not_run,total_crash_files,total_device_resets,summary_arr=nil)
1030
- fail_rate=0
1031
- pass_rate=0
1032
- if total_run.to_i > 0
1039
+ fail_rate="0"
1040
+ pass_rate="0"
1041
+ if total_run.to_i > total_not_run.to_i
1033
1042
  begin
1034
1043
  fail_rate=(total_failed.to_f/(total_run.to_f-total_not_run.to_f))*100
1035
1044
  pass_rate=(total_passed.to_f/(total_run.to_f-total_not_run.to_f))*100
1036
1045
  fail_rate="%0.2f" % fail_rate
1037
1046
  pass_rate="%0.2f" % pass_rate
1038
- rescue
1047
+ rescue # Note that 0.0/0.0 does result in NaN, it does not cause an exception
1039
1048
  fail_rate="0"
1040
1049
  pass_rate="0"
1041
1050
  end
@@ -1310,14 +1319,25 @@ display: block;
1310
1319
  failed_link="#{report_page}_failed_index.html\""
1311
1320
  not_run_link="#{report_page}_not_run_index.html\""
1312
1321
  else
1313
- tdriver_test_results_link='../../index.html"'
1314
- tdriver_test_environment_link='../../environment/index.html"'
1315
- tdriver_log_link='../tdriver_log_index.html"'
1316
- total_run_link="../1_total_run_index.html\""
1317
- statistics_link='../statistics_index.html"'
1318
- passed_link="../1_passed_index.html\""
1319
- failed_link="../1_failed_index.html\""
1320
- not_run_link="../1_not_run_index.html\""
1322
+ if title.include?("Test:")
1323
+ tdriver_test_results_link='../index.html"'
1324
+ tdriver_test_environment_link='../environment/index.html"'
1325
+ tdriver_log_link='tdriver_log_index.html"'
1326
+ total_run_link="1_total_run_index.html\""
1327
+ statistics_link='statistics_index.html"'
1328
+ passed_link="1_passed_index.html\""
1329
+ failed_link="#{report_page}_failed_index.html\" class=\"current\""
1330
+ not_run_link="1_not_run_index.html\""
1331
+ else
1332
+ tdriver_test_results_link='../../index.html"'
1333
+ tdriver_test_environment_link='../../environment/index.html"'
1334
+ tdriver_log_link='../tdriver_log_index.html"'
1335
+ total_run_link="../1_total_run_index.html\""
1336
+ statistics_link='../statistics_index.html"'
1337
+ passed_link="../1_passed_index.html\""
1338
+ failed_link="../1_failed_index.html\""
1339
+ not_run_link="../1_not_run_index.html\""
1340
+ end
1321
1341
  end
1322
1342
  html_body='<div class="navigation_section"><div class="navigation_tabs">'<<
1323
1343
  '<ul id="navigation_tabs_ul">'<<