cutedriver-driver 2.0.0.20210120164037

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 (226) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +16 -0
  3. data/bin/start_app_perf +200 -0
  4. data/bin/tdriver-devtools +3 -0
  5. data/config/sut_parameters.rb +52 -0
  6. data/config/sut_setup.rb +32 -0
  7. data/config/sut_teardown.rb +32 -0
  8. data/config/tdriver_custom_error_recovery.rb +83 -0
  9. data/ext/extconf.rb +70 -0
  10. data/ext/native_extensions.c +315 -0
  11. data/lib/matti.rb +25 -0
  12. data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +120 -0
  13. data/lib/tdriver-devtools/behaviour/old/xml/example/impl.rb_invalid +194 -0
  14. data/lib/tdriver-devtools/behaviour/old/xml/generate_behaviour_xml.rb +95 -0
  15. data/lib/tdriver-devtools/behaviour/old/xml/lib/tdriver_generator.rb +722 -0
  16. data/lib/tdriver-devtools/behaviour/old/xml/qdoc_generator.rb +321 -0
  17. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.method.template +43 -0
  18. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.module.template +54 -0
  19. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument.template +7 -0
  20. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument_type.template +7 -0
  21. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.exception.template +5 -0
  22. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.line.template +2 -0
  23. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.template +5 -0
  24. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.method.template +23 -0
  25. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.template +14 -0
  26. data/lib/tdriver-devtools/behaviour/old/xml/update +3 -0
  27. data/lib/tdriver-devtools/behaviour/xml/generate.rb +88 -0
  28. data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +1945 -0
  29. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.default.template +1 -0
  30. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.template +3 -0
  31. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument_type.template +4 -0
  32. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.exception.template +4 -0
  33. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.arguments.template +4 -0
  34. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.deprecated.template +3 -0
  35. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.exceptions.template +3 -0
  36. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.info.template +1 -0
  37. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.returns.template +3 -0
  38. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.tables.template +3 -0
  39. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.template +12 -0
  40. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.returns.template +5 -0
  41. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.item.template +1 -0
  42. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.row.template +2 -0
  43. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.template +8 -0
  44. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.template +14 -0
  45. data/lib/tdriver-devtools/doc/behaviour_xml/QtExampleGestureBehaviour.xml +138 -0
  46. data/lib/tdriver-devtools/doc/behaviour_xml/created.rid +1 -0
  47. data/lib/tdriver-devtools/doc/behaviour_xml/tdriver.hash +1 -0
  48. data/lib/tdriver-devtools/doc/feature_xml/qt_widget_hold.feature.xml +9 -0
  49. data/lib/tdriver-devtools/doc/feature_xml/qt_widget_tap.feature.xml +9 -0
  50. data/lib/tdriver-devtools/doc/generate.rb +917 -0
  51. data/lib/tdriver-devtools/doc/update +1 -0
  52. data/lib/tdriver-devtools/doc/xslt/html.rb +7 -0
  53. data/lib/tdriver-devtools/doc/xslt/template.xsl +2170 -0
  54. data/lib/tdriver-devtools/doc/xslt/update +3 -0
  55. data/lib/tdriver-devtools/plugin/placeholder.txt +1 -0
  56. data/lib/tdriver-devtools/tdriver-devtools.rb +404 -0
  57. data/lib/tdriver-devtools/tests/feature_tests/example/behaviour_example.rb +100 -0
  58. data/lib/tdriver-devtools/tests/feature_tests/generate.rb +82 -0
  59. data/lib/tdriver-devtools/tests/feature_tests/lib/custom_rdoc_generator.rb +468 -0
  60. data/lib/tdriver-devtools/tests/feature_tests/templates/feature_attribute.template +5 -0
  61. data/lib/tdriver-devtools/tests/feature_tests/templates/feature_method.template +5 -0
  62. data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_attribute.template +5 -0
  63. data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_method.template +5 -0
  64. data/lib/tdriver-devtools/tests/feature_tests/update +3 -0
  65. data/lib/tdriver.rb +23 -0
  66. data/lib/tdriver/base/behaviour/abstract.rb +29 -0
  67. data/lib/tdriver/base/behaviour/behaviours/object_abstract.rb +107 -0
  68. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +99 -0
  69. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +278 -0
  70. data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +119 -0
  71. data/lib/tdriver/base/behaviour/factory.rb +495 -0
  72. data/lib/tdriver/base/behaviour/loader.rb +46 -0
  73. data/lib/tdriver/base/command_data/command_data.rb +51 -0
  74. data/lib/tdriver/base/command_data/loader.rb +29 -0
  75. data/lib/tdriver/base/controller/abstraction.rb +56 -0
  76. data/lib/tdriver/base/controller/loader.rb +21 -0
  77. data/lib/tdriver/base/errors.rb +134 -0
  78. data/lib/tdriver/base/loader.rb +47 -0
  79. data/lib/tdriver/base/state_object.rb +373 -0
  80. data/lib/tdriver/base/sut/adapter.rb +54 -0
  81. data/lib/tdriver/base/sut/controller.rb +151 -0
  82. data/lib/tdriver/base/sut/factory.rb +339 -0
  83. data/lib/tdriver/base/sut/generic/behaviours/agent.rb +77 -0
  84. data/lib/tdriver/base/sut/generic/behaviours/application.rb +427 -0
  85. data/lib/tdriver/base/sut/generic/behaviours/controller.rb +67 -0
  86. data/lib/tdriver/base/sut/generic/behaviours/find.rb +107 -0
  87. data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +337 -0
  88. data/lib/tdriver/base/sut/generic/behaviours/sut.rb +1888 -0
  89. data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +210 -0
  90. data/lib/tdriver/base/sut/generic/behaviours/verification.rb +222 -0
  91. data/lib/tdriver/base/sut/generic/commands/agent.rb +43 -0
  92. data/lib/tdriver/base/sut/generic/commands/application.rb +274 -0
  93. data/lib/tdriver/base/sut/generic/commands/fixture.rb +47 -0
  94. data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +94 -0
  95. data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +64 -0
  96. data/lib/tdriver/base/sut/generic/plugin.rb +97 -0
  97. data/lib/tdriver/base/sut/loader.rb +35 -0
  98. data/lib/tdriver/base/sut/sut.rb +98 -0
  99. data/lib/tdriver/base/test_object/abstract.rb +208 -0
  100. data/lib/tdriver/base/test_object/adapter.rb +740 -0
  101. data/lib/tdriver/base/test_object/behaviours/syncronization.rb +144 -0
  102. data/lib/tdriver/base/test_object/behaviours/test_object.rb +1047 -0
  103. data/lib/tdriver/base/test_object/cache.rb +134 -0
  104. data/lib/tdriver/base/test_object/factory.rb +684 -0
  105. data/lib/tdriver/base/test_object/loader.rb +51 -0
  106. data/lib/tdriver/base/test_object/verification.rb +178 -0
  107. data/lib/tdriver/base/test_object/xml/abstraction.rb +63 -0
  108. data/lib/tdriver/base/test_object/xml/adapter.rb +773 -0
  109. data/lib/tdriver/env.rb +21 -0
  110. data/lib/tdriver/loader.rb +57 -0
  111. data/lib/tdriver/matti.rb +35 -0
  112. data/lib/tdriver/report/error_recovery/tdriver_custom_error_recovery.rb +83 -0
  113. data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +168 -0
  114. data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +106 -0
  115. data/lib/tdriver/report/report.rb +61 -0
  116. data/lib/tdriver/report/report_api.rb +348 -0
  117. data/lib/tdriver/report/report_combine.rb +86 -0
  118. data/lib/tdriver/report/report_crash_file_capture.rb +178 -0
  119. data/lib/tdriver/report/report_creator.rb +665 -0
  120. data/lib/tdriver/report/report_cucumber.rb +158 -0
  121. data/lib/tdriver/report/report_cucumber_listener.rb +184 -0
  122. data/lib/tdriver/report/report_cucumber_reporter.rb +181 -0
  123. data/lib/tdriver/report/report_data_presentation.rb +156 -0
  124. data/lib/tdriver/report/report_data_table.rb +64 -0
  125. data/lib/tdriver/report/report_execution_statistics.rb +400 -0
  126. data/lib/tdriver/report/report_file_capture.rb +159 -0
  127. data/lib/tdriver/report/report_graph_generator.rb +59 -0
  128. data/lib/tdriver/report/report_grouping.rb +541 -0
  129. data/lib/tdriver/report/report_javascript.rb +199 -0
  130. data/lib/tdriver/report/report_junit_xml.rb +147 -0
  131. data/lib/tdriver/report/report_rspec.rb +108 -0
  132. data/lib/tdriver/report/report_test_case_run.rb +725 -0
  133. data/lib/tdriver/report/report_test_run.rb +1476 -0
  134. data/lib/tdriver/report/report_test_unit.rb +223 -0
  135. data/lib/tdriver/report/report_writer.rb +1621 -0
  136. data/lib/tdriver/tdriver.rb +209 -0
  137. data/lib/tdriver/util/agent/loader.rb +22 -0
  138. data/lib/tdriver/util/agent/service.rb +107 -0
  139. data/lib/tdriver/util/common/array.rb +39 -0
  140. data/lib/tdriver/util/common/boolean.rb +48 -0
  141. data/lib/tdriver/util/common/crc16.rb +149 -0
  142. data/lib/tdriver/util/common/environment.rb +154 -0
  143. data/lib/tdriver/util/common/error.rb +40 -0
  144. data/lib/tdriver/util/common/exception.rb +53 -0
  145. data/lib/tdriver/util/common/exceptions.rb +12 -0
  146. data/lib/tdriver/util/common/file.rb +328 -0
  147. data/lib/tdriver/util/common/gem.rb +109 -0
  148. data/lib/tdriver/util/common/hash.rb +288 -0
  149. data/lib/tdriver/util/common/kernel.rb +253 -0
  150. data/lib/tdriver/util/common/loader.rb +47 -0
  151. data/lib/tdriver/util/common/numeric.rb +159 -0
  152. data/lib/tdriver/util/common/object.rb +159 -0
  153. data/lib/tdriver/util/common/retryable.rb +179 -0
  154. data/lib/tdriver/util/common/stackable.rb +185 -0
  155. data/lib/tdriver/util/common/string.rb +174 -0
  156. data/lib/tdriver/util/database/access.rb +240 -0
  157. data/lib/tdriver/util/database/connection.rb +44 -0
  158. data/lib/tdriver/util/database/error.rb +34 -0
  159. data/lib/tdriver/util/database/loader.rb +28 -0
  160. data/lib/tdriver/util/filters/attribute_filter.rb +121 -0
  161. data/lib/tdriver/util/filters/loader.rb +29 -0
  162. data/lib/tdriver/util/fixture/loader.rb +22 -0
  163. data/lib/tdriver/util/fixture/service.rb +211 -0
  164. data/lib/tdriver/util/hooking/hooking.rb +477 -0
  165. data/lib/tdriver/util/keymap/keymap.rb +81 -0
  166. data/lib/tdriver/util/loader.rb +80 -0
  167. data/lib/tdriver/util/localisation/error.rb +31 -0
  168. data/lib/tdriver/util/localisation/loader.rb +25 -0
  169. data/lib/tdriver/util/localisation/localisation.rb +762 -0
  170. data/lib/tdriver/util/logger/loader.rb +22 -0
  171. data/lib/tdriver/util/logger/logger.rb +591 -0
  172. data/lib/tdriver/util/operator_data/error.rb +29 -0
  173. data/lib/tdriver/util/operator_data/loader.rb +27 -0
  174. data/lib/tdriver/util/operator_data/operator_data.rb +93 -0
  175. data/lib/tdriver/util/other/config.rb +221 -0
  176. data/lib/tdriver/util/parameter/error.rb +48 -0
  177. data/lib/tdriver/util/parameter/loader.rb +25 -0
  178. data/lib/tdriver/util/parameter/parameter.rb +1161 -0
  179. data/lib/tdriver/util/plugin/abstract.rb +61 -0
  180. data/lib/tdriver/util/plugin/error.rb +0 -0
  181. data/lib/tdriver/util/plugin/loader.rb +28 -0
  182. data/lib/tdriver/util/plugin/service.rb +319 -0
  183. data/lib/tdriver/util/recorder/loader.rb +25 -0
  184. data/lib/tdriver/util/recorder/recorder.rb +72 -0
  185. data/lib/tdriver/util/recorder/scripter.rb +294 -0
  186. data/lib/tdriver/util/statistics/statistics.rb +89 -0
  187. data/lib/tdriver/util/user_data/error.rb +28 -0
  188. data/lib/tdriver/util/user_data/loader.rb +25 -0
  189. data/lib/tdriver/util/user_data/user_data.rb +104 -0
  190. data/lib/tdriver/util/video/camera.rb +67 -0
  191. data/lib/tdriver/util/video/camera_linux.rb +153 -0
  192. data/lib/tdriver/util/video/camera_windows.rb +174 -0
  193. data/lib/tdriver/util/video/loader.rb +31 -0
  194. data/lib/tdriver/util/video/video_utils.rb +139 -0
  195. data/lib/tdriver/util/xml/abstraction.rb +117 -0
  196. data/lib/tdriver/util/xml/attribute.rb +32 -0
  197. data/lib/tdriver/util/xml/builder.rb +53 -0
  198. data/lib/tdriver/util/xml/comment.rb +32 -0
  199. data/lib/tdriver/util/xml/document.rb +32 -0
  200. data/lib/tdriver/util/xml/element.rb +32 -0
  201. data/lib/tdriver/util/xml/error.rb +46 -0
  202. data/lib/tdriver/util/xml/loader.rb +62 -0
  203. data/lib/tdriver/util/xml/nil_node.rb +95 -0
  204. data/lib/tdriver/util/xml/nodeset.rb +32 -0
  205. data/lib/tdriver/util/xml/parsers/libxml/libxml.rb +140 -0
  206. data/lib/tdriver/util/xml/parsers/loader.rb +21 -0
  207. data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +167 -0
  208. data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +66 -0
  209. data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +64 -0
  210. data/lib/tdriver/util/xml/parsers/nokogiri/comment.rb +39 -0
  211. data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +66 -0
  212. data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +39 -0
  213. data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +58 -0
  214. data/lib/tdriver/util/xml/parsers/nokogiri/node.rb +212 -0
  215. data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +237 -0
  216. data/lib/tdriver/util/xml/parsers/nokogiri/text.rb +39 -0
  217. data/lib/tdriver/util/xml/text.rb +32 -0
  218. data/lib/tdriver/util/xml/xml.rb +332 -0
  219. data/lib/tdriver/verify/verify.rb +2398 -0
  220. data/lib/tdriver/version.rb +21 -0
  221. data/xml/behaviours/generic.xml +530 -0
  222. data/xml/defaults/generic.xml +11 -0
  223. data/xml/defaults/sut_generic.xml +8 -0
  224. data/xml/parameters/tdriver_parameters.xml +23 -0
  225. data/xml/templates/generic.xml +292 -0
  226. metadata +324 -0
@@ -0,0 +1,178 @@
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
+ ##
18
+ ############################################################################
19
+
20
+ class TDriverReportCrashFileCapture
21
+ include TDriverReportFileCapture
22
+ def initialize
23
+ @crash_file_locations=Array.new
24
+ @crash_file_suts=Array.new
25
+ @crash_file_names=Array.new
26
+ @crash_file_count=0
27
+ @monitor_crash_files='false'
28
+ read_crash_monitor_settings()
29
+ read_file_monitor_settings()
30
+ end
31
+
32
+ def return_settings_value_array(setting)
33
+ setting_value=setting
34
+ setting_arr=Array.new
35
+ setting_arr=setting_value.split(',')
36
+ setting_arr
37
+ end
38
+
39
+ def read_crash_monitor_settings()
40
+ @crash_file_locations=return_settings_value_array( $parameters[ :report_crash_file_locations, nil ])
41
+ @crash_file_suts=return_settings_value_array( $parameters[ :report_crash_file_monitored_sut_ids, nil ])
42
+ @crash_file_names=return_settings_value_array( $parameters[ :report_crash_file_names, nil ])
43
+ @monitor_crash_files = $parameters[ :report_crash_file_monitor, 'false' ]
44
+ end
45
+
46
+ def clean_crash_files_from_sut()
47
+ if @monitor_crash_files == 'true'
48
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
49
+ if sut_attributes[:is_connected]
50
+ @crash_file_suts.each do |monitored_sut|
51
+ if monitored_sut == sut_id.to_s
52
+ sut_crash_files=Array.new
53
+ sut_crash_files=list_sut_crash_files(sut_attributes[:sut])
54
+ sut_crash_files.each do |crash_file|
55
+ delete_crash_file(sut_attributes[:sut],crash_file[0])
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ def confirm_crash_notes
65
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
66
+ if sut_attributes[:is_connected]
67
+ @crash_file_suts.each do |monitored_sut|
68
+ if monitored_sut == sut_id.to_s
69
+ sut_attributes[:sut].clear_crash_notes(5)
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ def list_sut_crash_files(current_sut)
77
+ crash_file_arr=Array.new
78
+ @crash_file_count=0
79
+ #for every location:
80
+ @crash_file_locations.each do |location|
81
+ begin
82
+ #get file names
83
+ current_location_files = current_sut.ftp( :Command => :List_files, :Remote_dir => location )
84
+ #collect crash names and add paths
85
+ current_location_files.each do |sut_file|
86
+ if file_is_crash_file(sut_file)
87
+ crash_file_arr << [location.gsub("/",'\\')+'\\'+sut_file.to_s,sut_file.to_s]
88
+ @crash_file_count+=1
89
+ end
90
+ end
91
+ rescue => ex
92
+ #puts ex.message
93
+ end
94
+ end
95
+ crash_file_arr
96
+ end
97
+
98
+ def download_crash_file(current_sut,file_name,download_folder,download_file)
99
+ begin
100
+ current_sut.ftp( :Command => :Download, :Local_filename => download_folder+download_file, :Remote_filename => file_name )
101
+ rescue => ex
102
+ #puts ex.message
103
+ end
104
+ end
105
+
106
+ def delete_crash_file(current_sut,file_name)
107
+ begin
108
+ current_sut.ftp( :Command => :Delete, :Remote_filename => file_name )
109
+ rescue => ex
110
+ #puts ex.message
111
+ end
112
+ end
113
+
114
+ def file_is_crash_file(file_name)
115
+ is_crash_file=false
116
+ @crash_file_names.each do |crash_file_identity|
117
+ if file_name.to_s.include? crash_file_identity.to_s
118
+ is_crash_file=true
119
+ end
120
+ end
121
+ is_crash_file
122
+ end
123
+
124
+ def check_if_crash_files_exist()
125
+ sut_crash_files=Array.new
126
+ if @monitor_crash_files == 'true'
127
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
128
+ if sut_attributes[:is_connected]
129
+ @crash_file_suts.each do |monitored_sut|
130
+ if monitored_sut == sut_id.to_s
131
+ sut_crash_files << list_sut_crash_files(sut_attributes[:sut])
132
+ end
133
+ end
134
+ end
135
+ end
136
+ @crash_file_count
137
+ else
138
+ @crash_file_count
139
+ end
140
+ end
141
+
142
+ def download_crash_files(download_folder)
143
+ if @monitor_crash_files == 'true'
144
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
145
+ if sut_attributes[:is_connected]
146
+ @crash_file_suts.each do |monitored_sut|
147
+ if monitored_sut == sut_id.to_s
148
+ sut_crash_files=Array.new
149
+ sut_crash_files=list_sut_crash_files(sut_attributes[:sut])
150
+ sut_crash_files.each do |crash_file|
151
+ download_crash_file(sut_attributes[:sut],crash_file[0],download_folder.gsub("/",'\\')+'\\',crash_file[1])
152
+ delete_crash_file(sut_attributes[:sut],crash_file[0])
153
+ end
154
+ sut_attributes[:sut].clear_crash_notes(5)
155
+ end
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
161
+
162
+ def capture_crash_files()
163
+ if @monitor_crash_files == 'true'
164
+ begin
165
+ dump_folder=@test_case_folder+'/crash_files'
166
+ if File::directory?(dump_folder)==false
167
+ FileUtils.mkdir_p dump_folder
168
+ end
169
+ download_crash_files(dump_folder)
170
+ rescue Exception => e
171
+ @test_case_execution_log=@test_case_execution_log.to_s + '<br />' + "Unable to capture crash files: " + e.message
172
+ end
173
+ end
174
+ end
175
+ end
176
+
177
+
178
+
@@ -0,0 +1,665 @@
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
+ ##
18
+ ############################################################################
19
+
20
+ module TDriverReportCreator
21
+ include TDriverErrorRecovery
22
+ include TDriverCustomErrorRecovery
23
+
24
+ #This method initializes new test run
25
+ #
26
+ # === params
27
+ # nil
28
+ # === returns
29
+ # nil
30
+ # === raises
31
+ def start_run()
32
+
33
+ @_video_file_name = "failed_test.avi"
34
+ @_previous_video_file_name = "previous_test.avi"
35
+ @_stored_details=[]
36
+ clean_video_files
37
+
38
+ if $tdriver_reporter == nil
39
+ initialize_error_recovery
40
+ $run_status_thread_active=false
41
+ $test_case_run_index=0
42
+ $tdriver_reporter=TestRun.new
43
+ $tdriver_reporter.initialize_tdriver_report_folder()
44
+ $tdriver_report_created=false
45
+ $current_tdriver_report_folder=$tdriver_reporter.report_folder
46
+
47
+ $new_junit_xml_results=ReportJUnitXml.new($current_tdriver_report_folder)
48
+ $tdriver_reporter.set_end_time(Time.now)
49
+ $tdriver_reporter.set_total_failed(0)
50
+ $tdriver_reporter.set_total_passed(0)
51
+ $tdriver_reporter.set_total_not_run(0)
52
+ $tdriver_reporter.set_total_run(0)
53
+ $tdriver_reporter.update_summary_page('inprogress')
54
+ $tdriver_reporter.update_environment_page()
55
+ at_exit {
56
+ while $run_status_thread_active == true
57
+ sleep 1
58
+ end
59
+ if $new_test_case!=nil
60
+ if $new_test_case.test_case_ended==false
61
+ end_test_case($new_test_case.test_case_name,'not_run')
62
+ end
63
+ end
64
+ puts 'Generating report summary...'
65
+ exit_status=''
66
+
67
+ exit_status << "Stderr:#{$stderr}<hr/>"
68
+ exit_status << "Stdout:#{$stdout}<hr/>"
69
+ exit_status << "Exit command:#{$!}<br/>"
70
+ exit_status << "Backtrace:#{$@}"
71
+
72
+ $tdriver_reporter.update_summary_page('finished',exit_status)
73
+ puts 'Summary generated...'
74
+ puts 'Generating total run table...'
75
+ $tdriver_reporter.update_test_case_summary_pages('all')
76
+ puts 'Total run table generated...'
77
+ if $tdriver_reporter.report_exclude_passed_cases=='false'
78
+ puts 'Generating passed cases table...'
79
+ $tdriver_reporter.update_test_case_summary_pages('passed')
80
+ puts 'Passed table generated...'
81
+ end
82
+ puts 'Generating failed cases table...'
83
+ $tdriver_reporter.update_test_case_summary_pages('failed')
84
+ puts 'Failed table generated...'
85
+ puts 'Generating not run cases table...'
86
+ $tdriver_reporter.update_test_case_summary_pages('not run')
87
+ puts 'Not run table generated...'
88
+ puts 'Generating statistics table...'
89
+ $tdriver_reporter.update_test_case_summary_pages('statistics')
90
+ puts 'Statistics generated...'
91
+ puts 'Grouping results by result and name...'
92
+ $tdriver_reporter.group_results_by_test_case()
93
+ puts 'Tests grouped by result and name...'
94
+ if $parameters[ :create_run_table_csv, false ]=='true'
95
+ puts 'Generating CSV...'
96
+ $tdriver_reporter.create_csv
97
+ puts 'CSV generated...'
98
+ end
99
+ puts 'Generating Junit xml...'
100
+ $new_junit_xml_results.create_junit_xml()
101
+ puts 'Junit generated...'
102
+ #$tdriver_reporter.delete_result_storage()
103
+ $tdriver_reporter.disconnect_connected_devices()
104
+ $tdriver_reporter.update_tdriver_log_page()
105
+ puts 'Report generated to:'
106
+ puts $tdriver_reporter.report_folder()
107
+ clean_video_files
108
+ ending_test_set_run if $parameters[ :custom_error_recovery_module, nil ]!=nil
109
+ if $tdriver_reporter.total_failed.to_i > 0
110
+ Kernel.exit(1)
111
+ elsif $tdriver_reporter.total_run.to_i == 0
112
+ Kernel.exit(1)
113
+ elsif $tdriver_reporter.total_not_run.to_i > 0
114
+ Kernel.exit(1)
115
+ end
116
+ }
117
+ else
118
+ initialize_error_recovery
119
+ end
120
+ starting_test_set_run if $parameters[ :custom_error_recovery_module, nil ]!=nil
121
+ end
122
+ #This method registers a connection error
123
+ #
124
+ # === params
125
+ # status: last test case result
126
+ # === returns
127
+ # nil
128
+ # === raises
129
+ def error_in_connection_detected
130
+ error_in_connection if $parameters[ :custom_error_recovery_module, nil ]!=nil
131
+ $tdriver_reporter.connection_errors+=1 if $tdriver_reporter
132
+ $new_test_case.connection_errors+=1 if $new_test_case
133
+ $new_test_case.set_test_case_execution_log('<b style="color: #FF0000">WARNING: Connection error detected!</b>') if $new_test_case
134
+ end
135
+ #This method returns the group where the test case belongs
136
+ #
137
+ # === params
138
+ # status: last test case result
139
+ # === returns
140
+ # nil
141
+ # === raises
142
+ def extract_group_from_test_case_name(test_case_name)
143
+ found_in_group='not_in_any_user_defined_group'
144
+ groups=$parameters[ :report_groups, nil ]
145
+ unless groups == nil
146
+ groups_ar=groups.split('|')
147
+ groups_ar.each do |group|
148
+ group_ar=group.split(':')
149
+ group_ar.each do |group_name|
150
+ found_in_group=group_name if test_case_name.include? group_name
151
+ end
152
+ end
153
+ else
154
+ found_in_group=$new_test_case.test_case_group
155
+ end
156
+ found_in_group
157
+ end
158
+ #This method updates the current test run status
159
+ #
160
+ # === params
161
+ # status: last test case result
162
+ # === returns
163
+ # nil
164
+ # === raises
165
+ def update_run(test_case_name,status,reboots,crashes,execution_log)
166
+ group=extract_group_from_test_case_name($new_test_case.test_case_name_full)
167
+ current_status=''
168
+ if(status=='failed')
169
+ current_status=$tdriver_reporter.fail_statuses.first
170
+ $tdriver_reporter.set_total_failed(1)
171
+ end
172
+ if(status=='passed')
173
+ current_status=$tdriver_reporter.pass_statuses.first
174
+ $tdriver_reporter.set_total_passed(1)
175
+ end
176
+ if(status!='passed' && status!='failed')
177
+
178
+ current_status=$tdriver_reporter.not_run_statuses.first
179
+ $tdriver_reporter.set_total_not_run(1)
180
+ end
181
+
182
+ $tdriver_reporter.write_to_result_storage(
183
+ current_status,
184
+ test_case_name,
185
+ group,
186
+ reboots,
187
+ crashes,
188
+ $new_test_case.test_case_start_time,
189
+ $new_test_case.test_case_chronological_view_data,
190
+ $new_test_case.test_case_run_time,
191
+ $new_test_case.tc_memory_amount_end,
192
+ $new_test_case.test_case_index,
193
+ execution_log,
194
+ '',
195
+ '',
196
+ $new_test_case.test_case_total_dump_count,
197
+ $new_test_case.test_case_total_data_sent,
198
+ $new_test_case.test_case_total_data_received,
199
+ $new_test_case.test_case_user_data,
200
+ $new_test_case.test_case_user_data_columns,
201
+ $new_test_case.connection_errors
202
+ )
203
+
204
+ $tdriver_reporter.test_case_user_xml_data=Hash.new
205
+ $tdriver_reporter.set_end_time(Time.now)
206
+ $tdriver_reporter.set_total_run(1)
207
+ $tdriver_reporter.update_summary_page('inprogress')
208
+ $tdriver_reporter.update_environment_page()
209
+ if $parameters[ :realtime_status_page_update, false ]=='true'
210
+ if $run_status_thread_active == false
211
+ $run_status_thread_active=true
212
+ Thread.new do
213
+ begin
214
+ #Update test case summary pages
215
+ $tdriver_reporter.update_test_case_summary_pages('all')
216
+ $tdriver_reporter.update_test_case_summary_pages('passed') if $tdriver_reporter.report_exclude_passed_cases=='false'
217
+ $tdriver_reporter.update_test_case_summary_pages('failed')
218
+ $tdriver_reporter.update_test_case_summary_pages('not run')
219
+ $tdriver_reporter.update_test_case_summary_pages('statistics')
220
+ $tdriver_reporter.group_results_by_test_case()
221
+ $new_junit_xml_results.create_junit_xml()
222
+ $tdriver_reporter.update_tdriver_log_page()
223
+ #ML: Update summary every 10 seconds improves performance during execution
224
+ sleep 10
225
+ $run_status_thread_active=false
226
+ GC.start
227
+ rescue Exception => e
228
+ $run_status_thread_active=false
229
+ end
230
+ end
231
+ end
232
+ end
233
+ end
234
+
235
+
236
+ #This method updates the current test case user data
237
+ #
238
+ # === params
239
+ #
240
+ # === returns
241
+ # nil
242
+ # === raises
243
+ def update_test_case_user_data()
244
+ if $new_test_case != nil
245
+ user_data_rows, user_data_cols=$tdriver_reporter.get_user_data
246
+ $new_test_case.set_test_case_user_data(user_data_rows, user_data_cols)
247
+ chronological_data_rows=$tdriver_reporter.test_case_user_chronological_table_data
248
+ $new_test_case.set_test_case_chronological_view_data(chronological_data_rows)
249
+ $tdriver_reporter.set_user_data(nil)
250
+ $tdriver_reporter.set_user_chronological_table_data(nil)
251
+ end
252
+ end
253
+
254
+ #This method starts a new test case run
255
+ #
256
+ # === params
257
+ # test_case: the new test case name
258
+ # === returns
259
+ # nil
260
+ # === raises
261
+ def start_test_case(test_case)
262
+ if $new_test_case!=nil
263
+ if $new_test_case.test_case_ended==false
264
+ end_test_case($new_test_case.test_case_name,@tc_status)
265
+ end
266
+ end
267
+ $test_case_run_index=$test_case_run_index.to_i+1
268
+ $new_test_case=TestCaseRun.new
269
+ $new_test_case.set_test_cases_folder($current_tdriver_report_folder.to_s+'/cases')
270
+ $new_test_case.set_test_case_name(test_case.to_s)
271
+ $new_test_case.set_test_case_start_time(Time.now)
272
+ $new_test_case.set_test_case_index($test_case_run_index.to_i)
273
+ $new_test_case.test_case_dump_count_at_start=$tdriver_reporter.total_dump_count.clone
274
+ $new_test_case.test_case_data_sent_at_start=$tdriver_reporter.total_sent_data.clone
275
+ $new_test_case.test_case_data_received_at_start=$tdriver_reporter.total_received_data.clone
276
+
277
+ create_test_case_folder('result')
278
+ begin
279
+ if start_error_recovery()==true
280
+ $tdriver_reporter.set_total_device_resets(1)
281
+ $new_test_case.set_test_case_reboots(1)
282
+ end
283
+ rescue Exception => e
284
+ update_test_case("Error recovery failed Exception: #{e.message} Backtrace: #{e.backtrace}")
285
+ end_test_case($new_test_case.test_case_name,'failed')
286
+ exit(1)
287
+ end
288
+ $new_test_case.read_crash_monitor_settings()
289
+
290
+ $new_test_case.read_file_monitor_settings()
291
+
292
+ $new_test_case.clean_crash_files_from_sut() if $test_case_run_index==1 && $parameters[ :report_crash_file_monitor_crash_file_cleanup, false ]=='true'
293
+
294
+ amount_of_crash_files=$new_test_case.check_if_crash_files_exist()
295
+
296
+ if amount_of_crash_files.to_i > 0
297
+ $new_test_case.capture_crash_files()
298
+ $new_test_case.clean_crash_files_from_sut()
299
+ $tdriver_reporter.set_total_crash_files(amount_of_crash_files.to_i)
300
+ $new_test_case.set_test_case_crash_files(amount_of_crash_files.to_i)
301
+ else
302
+ if $parameters[ :report_crash_file_monitor_confirm_any_crash_note, false ]=='true'
303
+ $new_test_case.confirm_crash_notes
304
+ end
305
+ end
306
+
307
+ amount_of_files=$new_test_case.check_if_files_exist()
308
+ if amount_of_files.to_i > 0
309
+ $new_test_case.capture_files()
310
+ $new_test_case.clean_files_from_sut()
311
+ $tdriver_reporter.set_total_crash_files(amount_of_files.to_i)
312
+ $new_test_case.set_test_case_crash_files(amount_of_files.to_i)
313
+ end
314
+
315
+ if $parameters[ :report_monitor_memory, 'false']=='true'
316
+ begin
317
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
318
+ $new_test_case.set_tc_memory_amount_total($tdriver_reporter.get_sut_total_memory(sut_id,sut_attributes))
319
+ $new_test_case.set_tc_memory_amount_start($tdriver_reporter.get_sut_used_memory(sut_id,sut_attributes))
320
+ end
321
+ rescue
322
+ $new_test_case.set_tc_memory_amount_total(0)
323
+ $new_test_case.set_tc_memory_amount_start(0)
324
+ end
325
+ end
326
+ logging_enabled = MobyUtil::Logger.instance.enabled
327
+ begin
328
+
329
+ if $parameters[:report_video, "false"] != "false"
330
+ # copy previous recording
331
+ MobyUtil::Logger.instance.enabled=false
332
+
333
+ each_video_device do | video_device, device_index |
334
+ begin
335
+ FileUtils.mv(tdriver_report_folder() + "/cam_" + device_index + "_" + @_video_file_name, tdriver_report_folder() + "/cam_" + device_index + "_" + @_previous_video_file_name )
336
+ rescue
337
+ # do nothing..
338
+ end
339
+
340
+ end
341
+ $new_test_case.start_video_recording( @_video_file_name, @_previous_video_file_name )
342
+
343
+ MobyUtil::Logger.instance.enabled=logging_enabled
344
+
345
+ end
346
+ rescue Exception => e
347
+
348
+ ensure
349
+ MobyUtil::Logger.instance.enabled=logging_enabled
350
+ end
351
+ update_test_case_user_data()
352
+ starting_test_case(test_case, TDriver::SUTFactory.connected_suts) if $parameters[ :custom_error_recovery_module, nil ]!=nil
353
+ end
354
+ #This method updates the current test case execution log
355
+ #
356
+ # === params
357
+ # details: details to be added in to the execution log
358
+ # === returns
359
+ # nil
360
+ # === raises
361
+ def update_test_case(details)
362
+ if $new_test_case==nil
363
+ @_stored_details << details
364
+ else
365
+ if @_stored_details!=[] && @_stored_details!=nil
366
+ @_stored_details.each do |detail|
367
+ $new_test_case.set_test_case_execution_log(detail)
368
+ end
369
+ $new_test_case.set_test_case_execution_log(details,true)
370
+ @_stored_details=[]
371
+ else
372
+ $new_test_case.set_test_case_execution_log(details,true)
373
+ end
374
+ updating_test_case_details(details) if $parameters[ :custom_error_recovery_module, nil ]!=nil
375
+ if $parameters[ :report_monitor_memory, 'false']=='true'
376
+ begin
377
+ start_memory=$new_test_case.tc_memory_amount_start()
378
+ if start_memory=='-'
379
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
380
+ memory=$tdriver_reporter.get_sut_used_memory(sut_id,sut_attributes)
381
+ $new_test_case.set_tc_memory_amount_start(memory)
382
+ end
383
+ end
384
+ rescue
385
+ $new_test_case.set_tc_memory_amount_start(0)
386
+ end
387
+ end
388
+ end
389
+ end
390
+
391
+
392
+ #This method creates or renames the test case folder
393
+ #
394
+ # === params
395
+ # test_case: the test case name
396
+ # status: status of the test case
397
+ # === returns
398
+ # nil
399
+ # === raises
400
+ def create_test_case_folder(status)
401
+ if $new_test_case!=nil
402
+ if $new_test_case.test_case_folder==nil
403
+ $new_test_case.create_test_case_folder(status)
404
+ else
405
+ $new_test_case.rename_test_case_folder(status)
406
+ end
407
+ end
408
+ end
409
+
410
+ #This method takes a screenshot of current test case execution
411
+ #
412
+ # === params
413
+ # === returns
414
+ # nil
415
+ # === raises
416
+ def capture_screen_test_case()
417
+ begin
418
+ create_test_case_folder($tdriver_reporter.fail_statuses.first)
419
+ $new_test_case.capture_dump()
420
+
421
+ if $new_test_case.video_recording?
422
+ $new_test_case.copy_video_capture()
423
+ end
424
+
425
+ error_in_test_case(TDriver::SUTFactory.connected_suts) if $parameters[ :custom_error_recovery_module, nil ]!=nil
426
+ rescue => ex
427
+ puts ex.message
428
+ puts ex.backtrace
429
+ end
430
+ end
431
+ #This updates the test case behaviour log
432
+ #
433
+ # === params
434
+ # === returns
435
+ # nil
436
+ # === raises
437
+ def update_test_case_memory_usage()
438
+ begin
439
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
440
+ if sut_attributes[:is_connected]
441
+ memory=$tdriver_reporter.get_sut_used_memory(sut_id,sut_attributes)
442
+ $tdriver_reporter.get_sut_total_dump_count(sut_id,sut_attributes)
443
+ $tdriver_reporter.get_sut_total_sent_data(sut_id,sut_attributes)
444
+ $tdriver_reporter.get_sut_total_received_data(sut_id,sut_attributes)
445
+ $new_test_case.set_tc_memory_amount_end(memory)
446
+ $tdriver_reporter.set_memory_amount_end(memory)
447
+ end
448
+ end
449
+ rescue
450
+ $new_test_case.set_tc_memory_amount_end(0)
451
+ end
452
+ end
453
+ #This updates the test case behaviour log
454
+ #
455
+ # === params
456
+ # === returns
457
+ # nil
458
+ # === raises
459
+ def update_test_case_behaviour_log()
460
+ begin
461
+ if $parameters[:behaviour_logging] == 'true'
462
+ if $new_test_case.test_case_logging_level.to_i > 0
463
+ $tdriver_report_log_output.string.each do |line|
464
+ $new_test_case.set_test_case_behaviour_log(line,nil)
465
+ $tdriver_reporter.set_test_run_behaviour_log(line,$new_test_case.test_case_name_full) if $new_test_case.report_short_folders=='false'
466
+ $tdriver_reporter.set_test_run_behaviour_log(line,"#{$new_test_case.test_case_status}_#{$new_test_case.test_case_index}") if $new_test_case.report_short_folders=='true'
467
+ end
468
+ end
469
+ end
470
+ rescue
471
+ end
472
+ end
473
+
474
+ def calculate_execution_footprint_data_for_test_case
475
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
476
+ if sut_attributes[:is_connected]
477
+ $tdriver_reporter.get_sut_total_dump_count(sut_id,sut_attributes)
478
+ $tdriver_reporter.get_sut_total_sent_data(sut_id,sut_attributes)
479
+ $tdriver_reporter.get_sut_total_received_data(sut_id,sut_attributes)
480
+ end
481
+ end
482
+
483
+ $new_test_case.test_case_dump_count_at_end=$tdriver_reporter.total_dump_count
484
+ $new_test_case.test_case_dump_count_at_end.each do |item|
485
+ at_start=$new_test_case.test_case_dump_count_at_start[item[0]].to_i
486
+ at_start=0 if at_start==nil
487
+ at_end=item[1].to_i
488
+ total=at_end-at_start
489
+ $new_test_case.test_case_total_dump_count[item[0]]=total
490
+ end
491
+
492
+ $new_test_case.test_case_data_sent_at_end=$tdriver_reporter.total_sent_data
493
+ $new_test_case.test_case_data_sent_at_end.each do |item|
494
+ at_start=$new_test_case.test_case_data_sent_at_start[item[0]].to_i
495
+ at_start=0 if at_start==nil
496
+ at_end=item[1].to_i
497
+ total=at_end-at_start
498
+ $new_test_case.test_case_total_data_sent[item[0]]=total
499
+ end
500
+
501
+ $new_test_case.test_case_data_received_at_end=$tdriver_reporter.total_received_data
502
+ $new_test_case.test_case_data_received_at_end.each do |item|
503
+ at_start=$new_test_case.test_case_data_received_at_start[item[0]].to_i
504
+ at_start=0 if at_start==nil
505
+ at_end=item[1].to_i
506
+ total=at_end-at_start
507
+ $new_test_case.test_case_total_data_received[item[0]]=total
508
+ end
509
+
510
+ end
511
+
512
+ #This method ends the current test case execution
513
+ #
514
+ # === params
515
+ # test_case: the test case name
516
+ # status: status of the test case
517
+ # === returns
518
+ # nil
519
+ # === raises
520
+ def end_test_case(test_case,status)
521
+ $new_test_case.set_test_case_ended(true) if $new_test_case
522
+ update_test_case_user_data()
523
+ if $new_test_case != nil
524
+ calculate_execution_footprint_data_for_test_case
525
+ if $parameters[:report_crash_file_monitor] == 'true'
526
+ found_crash_files = $new_test_case.check_if_crash_files_exist()
527
+ if found_crash_files.to_i > 0
528
+ $tdriver_reporter.set_total_crash_files(found_crash_files.to_i)
529
+ $new_test_case.set_test_case_crash_files(found_crash_files.to_i)
530
+ status='failed'
531
+ end
532
+ end
533
+ if $parameters[:report_file_monitor] == 'true'
534
+ found_files = $new_test_case.check_if_files_exist()
535
+ if found_files.to_i > 0
536
+ $tdriver_reporter.set_total_crash_files(found_files.to_i)
537
+ $new_test_case.set_test_case_crash_files(found_files.to_i)
538
+ status='failed' if $parameters[:report_fail_test_if_files_found]=='true'
539
+ end
540
+ end
541
+
542
+ temp_rec = $new_test_case.video_recording?
543
+
544
+ if temp_rec
545
+ $new_test_case.stop_video_recording
546
+ end
547
+ if $tdriver_reporter.test_case_user_defined_status!=nil
548
+ status=$tdriver_reporter.test_case_user_defined_status
549
+ $tdriver_reporter.set_test_case_user_defined_status(nil)
550
+ end
551
+ if(status=='failed')
552
+ $new_test_case.set_test_case_status($tdriver_reporter.fail_statuses.first)
553
+ create_test_case_folder($tdriver_reporter.fail_statuses.first)
554
+ if found_crash_files.to_i > 0
555
+ $new_test_case.capture_crash_files()
556
+ end
557
+ if $new_test_case.video_recording?
558
+ $new_test_case.copy_video_capture()
559
+ end
560
+ end
561
+ if(status=='passed')
562
+
563
+ no_activity_videos = ""
564
+ if $parameters[:report_check_device_active, 'false']=='true'
565
+ if temp_rec
566
+
567
+ no_activity_videos = $new_test_case.target_video_alive
568
+ end
569
+ end
570
+
571
+ if no_activity_videos == ""
572
+ $new_test_case.set_test_case_status($tdriver_reporter.pass_statuses.first)
573
+ create_test_case_folder($tdriver_reporter.pass_statuses.first)
574
+ else
575
+ # switch case to failed status
576
+ status='failed'
577
+ $new_test_case.copy_video_capture
578
+ $new_test_case.update_test_case "The case failed due to video analysis (#{no_activity_videos}) indicating that the target is no longer responding."
579
+
580
+ $new_test_case.set_test_case_status($tdriver_reporter.fail_statuses.first)
581
+ create_test_case_folder($tdriver_reporter.fail_statuses.first)
582
+ if found_crash_files.to_i > 0
583
+ $new_test_case.capture_crash_files()
584
+ end
585
+
586
+ end
587
+
588
+ end
589
+ if(status!='passed' && status!='failed')
590
+ $new_test_case.set_test_case_status($tdriver_reporter.not_run_statuses.first)
591
+ create_test_case_folder($tdriver_reporter.not_run_statuses.first)
592
+ end
593
+ $new_test_case.set_test_case_end_time(Time.now)
594
+ update_test_case_behaviour_log()
595
+ update_test_case_memory_usage() if $parameters[ :report_monitor_memory, 'false']=='true'
596
+ execution_log=$new_test_case.test_case_execution_log
597
+ if $parameters[:report_trace_capture_only_in_failed_case, 'true']!='true'
598
+ $new_test_case.capture_trace_files()
599
+ else
600
+ if status=='failed'
601
+ $new_test_case.capture_trace_files()
602
+ end
603
+ end
604
+ if found_files.to_i > 0
605
+ $new_test_case.capture_files()
606
+ end
607
+ $new_test_case.update_test_case_page()
608
+ $new_test_case.clean_files_from_sut()
609
+
610
+ 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)
611
+
612
+ $new_junit_xml_results.add_test_result(status, $new_test_case.test_case_start_time, $new_test_case.test_case_end_time)
613
+ tdriver_update_sequential_fails( status ) if $parameters[ :runner_sequence_skip, "false" ] == "true"
614
+
615
+ $new_test_case=nil
616
+ execution_log=nil
617
+
618
+ end
619
+ ending_test_case(status, TDriver::SUTFactory.connected_suts) if $parameters[ :custom_error_recovery_module, nil ]!=nil
620
+ end
621
+ def add_report_group(value)
622
+ $tdriver_reporter.set_generic_reporting_groups(value)
623
+ end
624
+ def add_test_case_group(value)
625
+ $new_test_case.set_test_case_group(value)
626
+ end
627
+
628
+ # Cleans any temporary files created by recording video
629
+ def clean_video_files
630
+ [ @_video_file_name, @_previous_video_file_name ].each do | file_name |
631
+
632
+ each_video_device do | video_device, device_index |
633
+ begin
634
+ delete_file = tdriver_report_folder() + "/cam_" + device_index + "_" + file_name
635
+ if File.exists?( delete_file )
636
+ File.delete( delete_file )
637
+ end
638
+ rescue
639
+ # delete failed, do nothing
640
+ end
641
+ end
642
+ end
643
+ end
644
+
645
+ def each_video_device
646
+
647
+ if $parameters[:report_video, nil] != nil
648
+
649
+ device_index = 0
650
+ $parameters[:report_video].split("|").each do | video_device |
651
+ if !video_device.strip.empty?
652
+ yield video_device.strip, device_index.to_s
653
+ device_index += 1
654
+ end
655
+ end
656
+
657
+ end
658
+
659
+ end
660
+
661
+ end #TDriverReportCreator
662
+
663
+
664
+
665
+