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,725 @@
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
+
21
+
22
+
23
+ module TDriverReportCreator
24
+ #Test case class for new test case run
25
+ class TestCaseRun < TDriverReportCrashFileCapture
26
+ include TDriverReportWriter
27
+ attr_accessor(
28
+ :test_case_folder,
29
+ :test_cases_folder,
30
+ :test_case_name,
31
+ :test_case_ended,
32
+ :test_case_name_full,
33
+ :test_case_index,
34
+ :test_case_start_time,
35
+ :test_case_end_time,
36
+ :test_case_run_time,
37
+ :test_case_status,
38
+ :test_case_execution_log,
39
+ :test_case_user_data,
40
+ :test_case_user_data_columns,
41
+ :test_case_chronological_view_data,
42
+ :test_case_total_dump_count,
43
+ :test_case_total_data_sent,
44
+ :test_case_total_data_received,
45
+ :test_case_dump_count_at_start,
46
+ :test_case_dump_count_at_end,
47
+ :test_case_data_sent_at_start,
48
+ :test_case_data_sent_at_end,
49
+ :test_case_data_received_at_start,
50
+ :test_case_data_received_at_end,
51
+ :capture_screen_error,
52
+ :failed_dump_error,
53
+ :test_case_reboots,
54
+ :test_case_crash_files,
55
+ :test_case_behaviour_log,
56
+ :failed_screenshot,
57
+ :test_case_group,
58
+ :tc_video_recording,
59
+ :tc_video_filename,
60
+ :tc_previous_video_filename,
61
+ :tc_video_recorders,
62
+ :tc_memory_amount_start,
63
+ :tc_memory_amount_end,
64
+ :tc_memory_amount_start,
65
+ :tc_memory_amount_total,
66
+ :pass_statuses,
67
+ :fail_statuses,
68
+ :not_run_statuses,
69
+ :test_case_logging_level,
70
+ :trace_directory,
71
+ :connection_errors,
72
+ :report_short_folders
73
+ )
74
+ def initialize()
75
+ @test_case_folder=nil
76
+ @test_cases_folder=nil
77
+ @test_case_name=nil
78
+ @test_case_ended=false
79
+ @test_case_name_full=nil
80
+ @test_case_index=nil
81
+ @test_case_start_time=nil
82
+ @test_case_end_time=nil
83
+ @test_case_run_time=nil
84
+ @test_case_status=nil
85
+ @test_case_execution_log=nil
86
+ @test_case_user_data=nil
87
+ @test_case_user_data_columns=nil
88
+ @test_case_chronological_view_data=nil
89
+ @capture_screen_error=nil
90
+ @failed_dump_error=nil
91
+ @test_case_reboots=0
92
+ @test_case_crash_files=0
93
+ @connection_errors=0
94
+ @test_case_behaviour_log = Array.new
95
+ @failed_screenshot=nil
96
+ @test_case_group=nil
97
+ @tc_video_recording=false
98
+ @tc_video_filename=nil
99
+ @tc_previous_video_filename=nil
100
+ @tc_video_recorders=[]
101
+ @tc_memory_amount_start='-'
102
+ @tc_memory_amount_end='-'
103
+ @tc_memory_amount_total='-'
104
+ @test_case_total_dump_count=Hash.new
105
+ @test_case_total_data_sent=Hash.new
106
+ @test_case_total_data_received=Hash.new
107
+ @test_case_dump_count_at_start=Hash.new
108
+ @test_case_dump_count_at_end=Hash.new
109
+ @test_case_data_sent_at_start=Hash.new
110
+ @test_case_data_sent_at_end=Hash.new
111
+ @test_case_data_received_at_start=Hash.new
112
+ @test_case_data_received_at_end=Hash.new
113
+ @pass_statuses= $parameters[ :report_passed_statuses, "passed" ].split('|')
114
+ @fail_statuses= $parameters[ :report_failed_statuses, "failed" ].split('|')
115
+ @not_run_statuses= $parameters[ :report_not_run_statuses, "not run" ].split('|')
116
+ @test_case_logging_level = $parameters[ :logging_level, nil ]
117
+ @trace_directory= $parameters[ :report_trace_folder, nil]
118
+ @report_short_folders= $parameters[ :report_short_folders, 'false']
119
+ $tdriver_report_log_output = StringIO.new ""
120
+ begin
121
+ if $parameters[:behaviour_logging] == 'true'
122
+ if @test_case_logging_level.to_i > 0
123
+ logger_instance = MobyUtil::Logger.instance.get_logger( 'TDriver' )
124
+ begin
125
+ MobyUtil::Logger.instance.remove_outputter(logger_instance, 'io' )
126
+ rescue
127
+ end
128
+ o = Log4r::IOOutputter.new("io",$tdriver_report_log_output)
129
+ MobyUtil::Logger.instance.set_outputter_pattern(o, $parameters[ :logging_outputter_pattern, '%d [%c] [%l] %M' ])
130
+ MobyUtil::Logger.instance.add_outputter(logger_instance, o)
131
+ end
132
+ end
133
+ rescue
134
+ end
135
+ end
136
+ #This method sets the test case group
137
+ #
138
+ # === params
139
+ # value: test case report folder
140
+ # === returns
141
+ # nil
142
+ # === raises
143
+ def set_test_case_group(value)
144
+ @test_case_group=value
145
+ end
146
+ #This method sets the test case reboots
147
+ #
148
+ # === params
149
+ # value: amount
150
+ # === returns
151
+ # nil
152
+ # === raises
153
+ def set_test_case_reboots(value)
154
+ @test_case_reboots=@test_case_reboots.to_i+value.to_i
155
+ end
156
+ #This method sets the test case crash files
157
+ #
158
+ # === params
159
+ # value: amount
160
+ # === returns
161
+ # nil
162
+ # === raises
163
+ def set_test_case_crash_files(value)
164
+ @test_case_crash_files=@test_case_crash_files.to_i+value.to_i
165
+ end
166
+ #This method sets the tdriver test cases report folder
167
+ #
168
+ # === params
169
+ # value: test cases report folder
170
+ # === returns
171
+ # nil
172
+ # === raises
173
+ def set_test_cases_folder(value)
174
+ @test_cases_folder=value
175
+ end
176
+ #This method sets the tdriver test case has ended
177
+ #
178
+ # === params
179
+ # value: test cases report folder
180
+ # === returns
181
+ # nil
182
+ # === raises
183
+ def set_test_case_ended(value)
184
+ @test_case_ended=value
185
+ end
186
+ #This method sets the tdriver test case report folder
187
+ #
188
+ # === params
189
+ # value: test case report folder
190
+ # === returns
191
+ # nil
192
+ # === raises
193
+ def set_test_case_folder(value)
194
+ @test_case_folder=value
195
+ end
196
+ #This method sets the tdriver test case name
197
+ #
198
+ # === params
199
+ # value: test case name
200
+ # === returns
201
+ # nil
202
+ # === raises
203
+ def set_test_case_name_full(value)
204
+ @test_case_name_full=value
205
+ end
206
+ #This method sets the tdriver test case name
207
+ #
208
+ # === params
209
+ # value: test case name
210
+ # === returns
211
+ # nil
212
+ # === raises
213
+ def set_test_case_name(value)
214
+ @test_case_name_full=value
215
+ #Clean the test case name for unwanted chars
216
+ stripped=value.gsub(/[<\/?*>!)(}{\\\#{@%"'.,:;~-]/,'').squeeze(" ")
217
+ if stripped==nil then
218
+ stripped=value.squeeze(" ")
219
+ end
220
+ stripped1 = stripped.to_s.gsub(' ','_')
221
+ if stripped1==nil
222
+ stripped1=stripped
223
+ end
224
+ str = stripped1.slice(0, 100)
225
+ if str == nil
226
+ str=stripped1
227
+ end
228
+ stripped1=str
229
+ @test_case_name=stripped1.to_s
230
+ end
231
+ #This method sets the test case index
232
+ #
233
+ # === params
234
+ # value: test case index
235
+ # === returns
236
+ # nil
237
+ # === raises
238
+ def set_test_case_index(value)
239
+ @test_case_index=value
240
+ end
241
+ #This method sets the test case start time
242
+ #
243
+ # === params
244
+ # value: test case start time
245
+ # === returns
246
+ # nil
247
+ # === raises
248
+ def set_test_case_start_time(value)
249
+ @test_case_start_time=value
250
+ end
251
+ #This method sets the test case end time
252
+ #
253
+ # === params
254
+ # value: test case end time
255
+ # === returns
256
+ # nil
257
+ # === raises
258
+ def set_test_case_end_time(value)
259
+ @test_case_end_time=value
260
+ end
261
+ #This method sets the test case run time
262
+ #
263
+ # === params
264
+ # value: test case run time
265
+ # === returns
266
+ # nil
267
+ # === raises
268
+ def set_test_case_run_time(value)
269
+ @test_case_run_time=value
270
+ end
271
+ #This method sets the test case status
272
+ #
273
+ # === params
274
+ # value: test case status
275
+ # === returns
276
+ # nil
277
+ # === raises
278
+ def set_test_case_status(value)
279
+ @test_case_status=value
280
+ end
281
+ #This method sets the test case execution log
282
+ #
283
+ # === params
284
+ # value: test case execution log entry
285
+ # === returns
286
+ # nil
287
+ # === raises
288
+ def repalce_chars_to_html_format(value)
289
+
290
+ formatted_line=value.to_s.gsub('<','&#60;')
291
+ formatted_line=formatted_line.gsub('>','&#62;')
292
+
293
+ formatted_line
294
+ end
295
+
296
+ def set_test_case_execution_log(value,format=false)
297
+ value=repalce_chars_to_html_format(value) if format==true
298
+ @test_case_execution_log=@test_case_execution_log.to_s + '<br />' + value.to_s.gsub(/\n/,'<br />')
299
+ end
300
+ #This method sets the test case user data
301
+ #
302
+ # === params
303
+ # value: test case user data
304
+ # === returns
305
+ # nil
306
+ # === raises
307
+ def set_test_case_user_data(data,columns)
308
+ @test_case_user_data=data
309
+ @test_case_user_data_columns=columns
310
+ end
311
+ #This method sets the users data to display in chronological table
312
+ #
313
+ # === params
314
+ # value: test case user data
315
+ # === returns
316
+ # nil
317
+ # === raises
318
+ def set_test_case_chronological_view_data(data)
319
+ @test_case_chronological_view_data=data
320
+ end
321
+ #This method sets the test case behaviour log
322
+ #
323
+ # === params
324
+ # value: test case execution log entry
325
+ # === returns
326
+ # nil
327
+ # === raises
328
+ def set_test_case_behaviour_log(value,test_case)
329
+ @test_case_behaviour_log << [value.to_s,test_case]
330
+ end
331
+
332
+ #This methods checks the available video devices
333
+ #
334
+ # === params
335
+ #
336
+ # === returns
337
+ # nil
338
+ def each_video_device
339
+
340
+ if $parameters[:report_video, nil] != nil
341
+
342
+ device_index = 0
343
+ $parameters[:report_video].split("|").each do | video_device |
344
+ if !video_device.strip.empty?
345
+ yield video_device.strip, device_index.to_s
346
+ device_index += 1
347
+ end
348
+ end
349
+
350
+ end
351
+
352
+ end
353
+
354
+
355
+ #This methods sets video recording of the test case
356
+ #
357
+ # === params
358
+ # rec_name: String, name of video file to create
359
+ # previous_name: String, name of video file of previous test case
360
+ # === returns
361
+ # nil
362
+ def start_video_recording( rec_name, previous_name )
363
+
364
+ @tc_video_filename = rec_name
365
+ @tc_previous_video_filename = previous_name
366
+ tc_video_width = 640
367
+ tc_video_height = 480
368
+ tc_video_fps = 30
369
+ tc_max_time = '99:00:00'
370
+
371
+ begin
372
+ tc_video_width = $parameters[ :report_video_width ].to_i
373
+ rescue
374
+ # parameter not loaded, do nothing
375
+ end
376
+ begin
377
+ tc_video_height = $parameters[ :report_video_height ].to_i
378
+ rescue
379
+ # parameter not loaded, do nothing
380
+ end
381
+ begin
382
+ tc_video_fps = $parameters[ :report_video_fps ].to_i
383
+ rescue
384
+ # parameter not loaded, do nothing
385
+ end
386
+ begin
387
+ tc_max_time = $parameters[ :report_video_max_time ].to_i
388
+ rescue
389
+ # parameter not loaded, do nothing
390
+ end
391
+
392
+
393
+ @tc_video_recorders = []
394
+
395
+ begin
396
+ each_video_device do | video_device, device_index |
397
+
398
+ rec_options = { :width => tc_video_width, :height => tc_video_height, :fps => tc_video_fps }
399
+ rec_options[ :device ] = video_device unless video_device == "true" # use default device if "true"
400
+ video_recorder = MobyUtil::TDriverCam.new_cam( tdriver_report_folder() + "/cam_" + device_index + "_" + @tc_video_filename, rec_options )
401
+ video_recorder.start_recording
402
+ @tc_video_recorders << video_recorder
403
+ @tc_video_recording = true
404
+
405
+ end
406
+ rescue Exception => e
407
+
408
+ # make sure to stop any started cams if startup fails
409
+ stop_video_recording
410
+ raise e
411
+
412
+ end
413
+
414
+ nil
415
+
416
+ end
417
+
418
+ def target_video_alive
419
+
420
+ ret = ""
421
+ each_video_device do | video_device, device_index |
422
+
423
+ check_fps = $parameters[:report_activity_fps, '3']
424
+ check_frame_min = $parameters[:report_activity_frame_treshold, '8']
425
+ check_video_min = $parameters[:report_activity_video_treshold, '29']
426
+
427
+ ret_n = MobyUtil.video_alive? tdriver_report_folder() + "/cam_" + device_index + "_" + @tc_video_filename, check_fps.to_f, check_frame_min.to_f, check_video_min.to_f, false
428
+
429
+ if !ret_n
430
+ ret += ", " if !ret.empty?
431
+ ret += tdriver_report_folder() + "/cam_" + device_index + "_" + @tc_video_filename
432
+ end
433
+
434
+ end
435
+
436
+ return ret
437
+
438
+ end
439
+
440
+ def stop_video_recording()
441
+
442
+
443
+ @tc_video_recorders.each do | video_recorder |
444
+ video_recorder.stop_recording
445
+ end
446
+
447
+ @tc_video_recording = false
448
+
449
+ end
450
+ #This method sets the tdriver test case memory at start
451
+ #
452
+ # === params
453
+ # value: memory
454
+ # === returns
455
+ # nil
456
+ # === raises
457
+ def set_tc_memory_amount_start(value)
458
+ @tc_memory_amount_start=value
459
+ end
460
+ #This method sets the tdriver test case memory at end
461
+ #
462
+ # === params
463
+ # value: memory
464
+ # === returns
465
+ # nil
466
+ # === raises
467
+ def set_tc_memory_amount_end(value)
468
+ @tc_memory_amount_end=value
469
+ end
470
+ #This method sets the tdriver test case total memory
471
+ #
472
+ # === params
473
+ # value: memory
474
+ # === returns
475
+ # nil
476
+ # === raises
477
+ def set_tc_memory_amount_total(value)
478
+ @tc_memory_amount_total=value
479
+ end
480
+
481
+ #This method updates the tdrivertest case details page
482
+ #
483
+ # === params
484
+ # nil
485
+ # === returns
486
+ # nil
487
+ # === raises
488
+ def update_test_case_page(rewrite=false)
489
+ begin
490
+ #Calculate run time
491
+ @test_case_run_time=Time.now-@test_case_start_time
492
+
493
+ #make sure that test case folder exists:
494
+ if File::directory?(@test_case_folder)==false
495
+ FileUtils.mkdir_p @test_case_folder
496
+ end
497
+
498
+ write_page_start(@test_case_folder+'/index.html',@test_case_name)
499
+ write_test_case_body(@test_case_folder+'/index.html',
500
+ @test_case_name_full,
501
+ @test_case_start_time,
502
+ @test_case_end_time,
503
+ @test_case_run_time,
504
+ @test_case_status,
505
+ @test_case_index,
506
+ @test_case_folder,
507
+ @capture_screen_error,
508
+ @failed_dump_error,
509
+ @test_case_reboots,
510
+ @test_case_total_dump_count,
511
+ @test_case_total_data_sent,
512
+ @test_case_total_data_received
513
+ )
514
+ write_page_end(@test_case_folder+'/index.html')
515
+
516
+ rescue Exception => e
517
+ raise e
518
+ end
519
+ return nil
520
+ end
521
+
522
+ #This method makes a copy of the video recording of this test case
523
+ def copy_video_capture()
524
+
525
+ stop_video_recording
526
+
527
+ logging_enabled = MobyUtil::Logger.instance.enabled
528
+ MobyUtil::Logger.instance.enabled=false
529
+ begin
530
+
531
+
532
+ video_folder=@test_case_folder+'/video'
533
+ if File::directory?(video_folder)==false
534
+ FileUtils.mkdir_p video_folder
535
+ end
536
+
537
+
538
+ each_video_device do | video_device, device_index |
539
+
540
+ begin
541
+ FileUtils.copy(tdriver_report_folder() + "/cam_" + device_index + "_" + @tc_video_filename, video_folder)
542
+ rescue
543
+ # Copy failed, do nothing
544
+ end
545
+
546
+ begin
547
+ FileUtils.copy(tdriver_report_folder() + "/cam_" + device_index + "_" + @tc_previous_video_filename, video_folder)
548
+ rescue
549
+
550
+ # Copy failed, do nothing
551
+ end
552
+
553
+ end
554
+
555
+
556
+
557
+ rescue Exception => e
558
+ @test_case_execution_log=@test_case_execution_log.to_s + '<br />' + "Unable to store video file: " + e.message
559
+ end
560
+
561
+ MobyUtil::Logger.instance.enabled=logging_enabled
562
+ return nil
563
+ end
564
+ #This method captures the failed xml dump and image
565
+ #
566
+ # === params
567
+ # nil
568
+ # === returns
569
+ # nil
570
+ # === raises
571
+ def capture_dump(take_screenshot=true,arguments=Hash.new)
572
+ MobyUtil::Logger.instance.enabled=false
573
+ image_html=Array.new
574
+ state_html=Array.new
575
+ self.set_test_case_execution_log('<hr />')
576
+ begin
577
+ dump_folder=@test_case_folder+'/state_xml'
578
+ if File::directory?(dump_folder)==false
579
+ FileUtils.mkdir_p dump_folder
580
+ end
581
+ TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
582
+
583
+ t = Time.now
584
+ time_stamp=t.strftime( "%Y%m%d%H%M%S" )
585
+ if take_screenshot==true
586
+ begin
587
+ sut_attributes[:sut].capture_screen( :Filename => dump_folder+'/'+time_stamp+'_'+sut_id.to_s+'_state.png', :Redraw => true ) if sut_attributes[:is_connected]
588
+ if arguments[:file]
589
+ base_name=File.basename(arguments[:file])
590
+ base_folder=File.dirname(arguments[:file])
591
+ sut_attributes[:sut].capture_screen( :Filename => "#{base_folder}/#{sut_id.to_s}_#{base_name}", :Redraw => true ) if sut_attributes[:is_connected]
592
+ end
593
+ image_html='<div class="img"><a href="state_xml/'<<
594
+ time_stamp+'_'+sut_id.to_s+'_state.png'<<
595
+ '" target="_blank"><img alt="" src="state_xml/'<<
596
+ time_stamp+'_'+sut_id.to_s+'_state.png'<<
597
+ '" width="10%" height="10%" /></a>'
598
+ if arguments[:text]
599
+ image_html << "<div class=\"desc\">#{arguments[:text]}</div>"
600
+ end
601
+ image_html << '</div>'
602
+ self.set_test_case_execution_log(image_html.to_s)
603
+ rescue Exception=>e
604
+ @capture_screen_error="Unable to capture sceen image #{sut_id}: " + e.message
605
+ self.set_test_case_execution_log(@capture_screen_error.to_s)
606
+ end
607
+ end
608
+
609
+ begin
610
+ if sut_attributes[:is_connected]
611
+ original_filter=sut_attributes[:sut].parameter[ :filter_type]
612
+ original_find=sut_attributes[:sut].parameter[ :use_find_object]
613
+ sut_attributes[:sut].parameter[ :filter_type] = 'none'
614
+ sut_attributes[:sut].parameter[ :use_find_object] = 'false'
615
+ sut_attributes[:sut].refresh
616
+ failed_xml_state=sut_attributes[:sut].xml_data()
617
+ File.open(dump_folder+'/'+time_stamp+'_'+sut_id.to_s+'_state.xml', 'w') { |file| file.write(failed_xml_state) }
618
+ state_html='<a href="state_xml/'<<
619
+ time_stamp+'_'+sut_id.to_s+'_state.xml'<<
620
+ '">'+time_stamp+'_'+sut_id.to_s+'_state.xml'+'</a>'
621
+ self.set_test_case_execution_log(state_html.to_s)
622
+ end
623
+ rescue Exception=>e
624
+ @failed_dump_error="Unable to capture state xml #{sut_id}: " + e.message
625
+ self.set_test_case_execution_log(@failed_dump_error.to_s)
626
+ ensure
627
+ sut_attributes[:sut].parameter[ :filter_type]=original_filter
628
+ sut_attributes[:sut].parameter[ :use_find_object]=original_find
629
+ end
630
+ end
631
+ rescue Exception => e
632
+ @capture_screen_error="Unable to capture state: " + e.message
633
+ self.set_test_case_execution_log(@capture_screen_error.to_s)
634
+ ensure
635
+ if $parameters[ :logging_level, 0 ].to_i > 0
636
+ MobyUtil::Logger.instance.enabled=true
637
+ else
638
+ MobyUtil::Logger.instance.enabled=false
639
+ end
640
+ self.set_test_case_execution_log('<hr />')
641
+ end
642
+ end
643
+ #This method captures the trace files
644
+ #
645
+ # === params
646
+ # nil
647
+ # === returns
648
+ # nil
649
+ # === raises
650
+ def capture_trace_files()
651
+ if $parameters[ :report_trace_capture, false]=="true"
652
+ begin
653
+ trace_folder= $parameters[ :report_trace_folder, nil]
654
+ if trace_folder!=nil
655
+ if File::directory?(trace_folder)==true
656
+ dump_folder=@test_case_folder+'/trace_files'
657
+ if File::directory?(dump_folder)==false
658
+ FileUtils.mkdir_p dump_folder
659
+ end
660
+ FileUtils.cp_r trace_folder, @test_case_folder+'/trace_files'
661
+ end
662
+ end
663
+ rescue Exception => ex
664
+ self.set_test_case_execution_log(ex.message)
665
+ self.set_test_case_execution_log(ex.backtrace)
666
+ end
667
+ end
668
+ end
669
+ #This method creates a new TDriver test case folder when testing is ended
670
+ #
671
+ # === params
672
+ # nil
673
+ # === returns
674
+ # nil
675
+ # === raises
676
+ def create_test_case_folder(status)
677
+ begin
678
+ #check if report directory exists
679
+ if @report_short_folders == 'true'
680
+ @test_case_folder=@test_cases_folder+'/'+status+'_'+@test_case_index.to_s
681
+ else
682
+ @test_case_folder=@test_cases_folder+'/'+status+'_'+@test_case_index.to_s+'_'+@test_case_name
683
+ end
684
+
685
+ if File::directory?(@test_case_folder)==false
686
+ FileUtils.mkdir_p @test_case_folder
687
+ end
688
+ rescue Exception => e
689
+ raise e
690
+ end
691
+ return nil
692
+ end
693
+
694
+ #This method renames a new TDriver test case folder when testing is ended
695
+ #
696
+ # === params
697
+ # nil
698
+ # === returns
699
+ # nil
700
+ # === raises
701
+ def rename_test_case_folder(status)
702
+ begin
703
+ #check if report directory exists
704
+ old_test_case_folder=@test_case_folder
705
+ if @report_short_folders == 'true'
706
+ new_test_case_folder=@test_case_folder.sub('result'+'_'+@test_case_index.to_s,status+'_'+@test_case_index.to_s)
707
+ else
708
+ 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)
709
+ end
710
+
711
+ if File::directory?(new_test_case_folder)==false
712
+ FileUtils.mv old_test_case_folder, new_test_case_folder , :force => true # no error
713
+ @test_case_folder=new_test_case_folder
714
+ end
715
+ rescue Exception => e
716
+ raise e
717
+ end
718
+ return nil
719
+ end
720
+
721
+ def video_recording?
722
+ @tc_video_recording
723
+ end
724
+ end
725
+ end