testability-driver 0.9.2

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 (214) hide show
  1. data/README +1 -0
  2. data/bin/start_app_perf +199 -0
  3. data/bin/tdriver-devtools +3 -0
  4. data/config/sut_parameters.rb +39 -0
  5. data/ext/extconf.rb +67 -0
  6. data/ext/native_extensions.c +70 -0
  7. data/lib/matti.rb +30 -0
  8. data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +223 -0
  9. data/lib/tdriver-devtools/behaviour/old/xml/example/impl.rb_invalid +194 -0
  10. data/lib/tdriver-devtools/behaviour/old/xml/generate_behaviour_xml.rb +95 -0
  11. data/lib/tdriver-devtools/behaviour/old/xml/lib/tdriver_generator.rb +722 -0
  12. data/lib/tdriver-devtools/behaviour/old/xml/qdoc_generator.rb +321 -0
  13. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.method.template +43 -0
  14. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.module.template +54 -0
  15. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument.template +7 -0
  16. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument_type.template +7 -0
  17. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.exception.template +5 -0
  18. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.line.template +2 -0
  19. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.template +5 -0
  20. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.method.template +23 -0
  21. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.template +14 -0
  22. data/lib/tdriver-devtools/behaviour/old/xml/update +3 -0
  23. data/lib/tdriver-devtools/behaviour/xml/generate.rb +88 -0
  24. data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +1924 -0
  25. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.default.template +1 -0
  26. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.template +3 -0
  27. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument_type.template +4 -0
  28. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.exception.template +4 -0
  29. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.arguments.template +4 -0
  30. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.deprecated.template +3 -0
  31. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.exceptions.template +3 -0
  32. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.info.template +1 -0
  33. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.returns.template +3 -0
  34. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.tables.template +3 -0
  35. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.template +12 -0
  36. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.returns.template +5 -0
  37. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.item.template +1 -0
  38. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.row.template +2 -0
  39. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.template +8 -0
  40. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.template +14 -0
  41. data/lib/tdriver-devtools/behaviour/xml_generator/example/flick-example.rb +245 -0
  42. data/lib/tdriver-devtools/behaviour/xml_generator/example/sut.rb +964 -0
  43. data/lib/tdriver-devtools/behaviour/xml_generator/generate.rb +68 -0
  44. data/lib/tdriver-devtools/behaviour/xml_generator/lib/custom_rdoc_generator.rb +1865 -0
  45. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument.default.template +1 -0
  46. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument.template +3 -0
  47. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument_type.template +4 -0
  48. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.exception.template +4 -0
  49. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.arguments.template +4 -0
  50. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.deprecated.template +3 -0
  51. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.exceptions.template +3 -0
  52. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.info.template +1 -0
  53. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.returns.template +3 -0
  54. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.tables.template +3 -0
  55. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.template +12 -0
  56. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.returns.template +5 -0
  57. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.item.template +1 -0
  58. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.row.template +2 -0
  59. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.template +7 -0
  60. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.template +14 -0
  61. data/lib/tdriver-devtools/behaviour/xml_generator/update +3 -0
  62. data/lib/tdriver-devtools/doc/behaviour_xml/QtExampleGestureBehaviour.xml +138 -0
  63. data/lib/tdriver-devtools/doc/behaviour_xml/created.rid +1 -0
  64. data/lib/tdriver-devtools/doc/behaviour_xml/tdriver.hash +1 -0
  65. data/lib/tdriver-devtools/doc/feature_xml/qt_widget_hold.feature.xml +9 -0
  66. data/lib/tdriver-devtools/doc/feature_xml/qt_widget_tap.feature.xml +9 -0
  67. data/lib/tdriver-devtools/doc/generate.rb +892 -0
  68. data/lib/tdriver-devtools/doc/update +1 -0
  69. data/lib/tdriver-devtools/doc/xslt/html.rb +7 -0
  70. data/lib/tdriver-devtools/doc/xslt/template.xsl +1861 -0
  71. data/lib/tdriver-devtools/doc/xslt/update +3 -0
  72. data/lib/tdriver-devtools/plugin/placeholder.txt +1 -0
  73. data/lib/tdriver-devtools/tdriver-devtools.rb +404 -0
  74. data/lib/tdriver-devtools/tests/feature_tests/example/flick-example.rb +233 -0
  75. data/lib/tdriver-devtools/tests/feature_tests/example/impl.rb +194 -0
  76. data/lib/tdriver-devtools/tests/feature_tests/generate.rb +82 -0
  77. data/lib/tdriver-devtools/tests/feature_tests/lib/custom_rdoc_generator.rb +468 -0
  78. data/lib/tdriver-devtools/tests/feature_tests/templates/feature_attribute.template +5 -0
  79. data/lib/tdriver-devtools/tests/feature_tests/templates/feature_method.template +5 -0
  80. data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_attribute.template +5 -0
  81. data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_method.template +5 -0
  82. data/lib/tdriver-devtools/tests/feature_tests/update +3 -0
  83. data/lib/tdriver.rb +26 -0
  84. data/lib/tdriver/base/behaviour/behaviour.rb +32 -0
  85. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +94 -0
  86. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +262 -0
  87. data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +111 -0
  88. data/lib/tdriver/base/behaviour/factory.rb +380 -0
  89. data/lib/tdriver/base/behaviour/loader.rb +28 -0
  90. data/lib/tdriver/base/command_data/command_data.rb +51 -0
  91. data/lib/tdriver/base/command_data/loader.rb +25 -0
  92. data/lib/tdriver/base/errors.rb +131 -0
  93. data/lib/tdriver/base/loader.rb +38 -0
  94. data/lib/tdriver/base/state_object.rb +270 -0
  95. data/lib/tdriver/base/sut/adapter.rb +28 -0
  96. data/lib/tdriver/base/sut/controller.rb +119 -0
  97. data/lib/tdriver/base/sut/factory.rb +287 -0
  98. data/lib/tdriver/base/sut/generic/behaviours/application.rb +243 -0
  99. data/lib/tdriver/base/sut/generic/behaviours/controller.rb +67 -0
  100. data/lib/tdriver/base/sut/generic/behaviours/find.rb +96 -0
  101. data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +346 -0
  102. data/lib/tdriver/base/sut/generic/behaviours/sut.rb +1268 -0
  103. data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +182 -0
  104. data/lib/tdriver/base/sut/generic/behaviours/verification.rb +119 -0
  105. data/lib/tdriver/base/sut/generic/commands/application.rb +219 -0
  106. data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +82 -0
  107. data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +58 -0
  108. data/lib/tdriver/base/sut/generic/plugin.rb +96 -0
  109. data/lib/tdriver/base/sut/loader.rb +35 -0
  110. data/lib/tdriver/base/sut/sut.rb +67 -0
  111. data/lib/tdriver/base/test_object/abstract.rb +179 -0
  112. data/lib/tdriver/base/test_object/behaviours/syncronization.rb +94 -0
  113. data/lib/tdriver/base/test_object/behaviours/test_object.rb +787 -0
  114. data/lib/tdriver/base/test_object/factory.rb +618 -0
  115. data/lib/tdriver/base/test_object/identificator.rb +511 -0
  116. data/lib/tdriver/base/test_object/loader.rb +37 -0
  117. data/lib/tdriver/env.rb +21 -0
  118. data/lib/tdriver/loader.rb +36 -0
  119. data/lib/tdriver/matti.rb +35 -0
  120. data/lib/tdriver/report/error_recovery/tdriver_custom_error_recovery.rb +83 -0
  121. data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +158 -0
  122. data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +98 -0
  123. data/lib/tdriver/report/report.rb +47 -0
  124. data/lib/tdriver/report/report_api.rb +207 -0
  125. data/lib/tdriver/report/report_combine.rb +86 -0
  126. data/lib/tdriver/report/report_crash_file_capture.rb +167 -0
  127. data/lib/tdriver/report/report_creator.rb +571 -0
  128. data/lib/tdriver/report/report_cucumber.rb +158 -0
  129. data/lib/tdriver/report/report_cucumber_listener.rb +337 -0
  130. data/lib/tdriver/report/report_cucumber_reporter.rb +335 -0
  131. data/lib/tdriver/report/report_data_presentation.rb +152 -0
  132. data/lib/tdriver/report/report_data_table.rb +64 -0
  133. data/lib/tdriver/report/report_execution_statistics.rb +284 -0
  134. data/lib/tdriver/report/report_file_capture.rb +159 -0
  135. data/lib/tdriver/report/report_grouping.rb +539 -0
  136. data/lib/tdriver/report/report_junit_xml.rb +147 -0
  137. data/lib/tdriver/report/report_rspec.rb +108 -0
  138. data/lib/tdriver/report/report_test_case_run.rb +621 -0
  139. data/lib/tdriver/report/report_test_run.rb +1286 -0
  140. data/lib/tdriver/report/report_test_unit.rb +175 -0
  141. data/lib/tdriver/report/report_writer.rb +1405 -0
  142. data/lib/tdriver/tdriver.rb +158 -0
  143. data/lib/tdriver/util/common.rb +24 -0
  144. data/lib/tdriver/util/common/array.rb +39 -0
  145. data/lib/tdriver/util/common/crc16.rb +100 -0
  146. data/lib/tdriver/util/common/environment.rb +153 -0
  147. data/lib/tdriver/util/common/error.rb +39 -0
  148. data/lib/tdriver/util/common/file.rb +315 -0
  149. data/lib/tdriver/util/common/gem.rb +108 -0
  150. data/lib/tdriver/util/common/kernel.rb +189 -0
  151. data/lib/tdriver/util/common/loader.rb +39 -0
  152. data/lib/tdriver/util/common/retryable.rb +98 -0
  153. data/lib/tdriver/util/common/string.rb +77 -0
  154. data/lib/tdriver/util/dbaccess/dbaccess.rb +188 -0
  155. data/lib/tdriver/util/dbaccess/dbconnection.rb +41 -0
  156. data/lib/tdriver/util/dbaccess/error.rb +35 -0
  157. data/lib/tdriver/util/dbaccess/loader.rb +29 -0
  158. data/lib/tdriver/util/dynamic_attribute_filter.rb +182 -0
  159. data/lib/tdriver/util/hooking.rb +434 -0
  160. data/lib/tdriver/util/loader.rb +65 -0
  161. data/lib/tdriver/util/localisation.rb +24 -0
  162. data/lib/tdriver/util/localisation/error.rb +32 -0
  163. data/lib/tdriver/util/localisation/loader.rb +28 -0
  164. data/lib/tdriver/util/localisation/localisation.rb +479 -0
  165. data/lib/tdriver/util/logger.rb +377 -0
  166. data/lib/tdriver/util/operator_data/error.rb +29 -0
  167. data/lib/tdriver/util/operator_data/loader.rb +26 -0
  168. data/lib/tdriver/util/operator_data/operator_data.rb +93 -0
  169. data/lib/tdriver/util/other/config.rb +221 -0
  170. data/lib/tdriver/util/parameter.rb +24 -0
  171. data/lib/tdriver/util/parameter/error.rb +45 -0
  172. data/lib/tdriver/util/parameter/loader.rb +37 -0
  173. data/lib/tdriver/util/parameter/parameter.rb +285 -0
  174. data/lib/tdriver/util/parameter/parameter_hash.rb +101 -0
  175. data/lib/tdriver/util/parameter/parameter_template.rb +120 -0
  176. data/lib/tdriver/util/parameter/parameter_user_api.rb +84 -0
  177. data/lib/tdriver/util/parameter/parameter_xml.rb +247 -0
  178. data/lib/tdriver/util/plugin/abstract.rb +60 -0
  179. data/lib/tdriver/util/plugin/error.rb +25 -0
  180. data/lib/tdriver/util/plugin/loader.rb +28 -0
  181. data/lib/tdriver/util/plugin/service.rb +200 -0
  182. data/lib/tdriver/util/recorder.rb +292 -0
  183. data/lib/tdriver/util/stats.rb +90 -0
  184. data/lib/tdriver/util/user_data/error.rb +29 -0
  185. data/lib/tdriver/util/user_data/loader.rb +26 -0
  186. data/lib/tdriver/util/user_data/user_data.rb +103 -0
  187. data/lib/tdriver/util/video_rec.rb +264 -0
  188. data/lib/tdriver/util/xml/abstraction.rb +47 -0
  189. data/lib/tdriver/util/xml/builder.rb +54 -0
  190. data/lib/tdriver/util/xml/document.rb +32 -0
  191. data/lib/tdriver/util/xml/element.rb +32 -0
  192. data/lib/tdriver/util/xml/error.rb +46 -0
  193. data/lib/tdriver/util/xml/loader.rb +46 -0
  194. data/lib/tdriver/util/xml/nil_element.rb +89 -0
  195. data/lib/tdriver/util/xml/nodeset.rb +32 -0
  196. data/lib/tdriver/util/xml/parsers/libxml/libxml.rb +140 -0
  197. data/lib/tdriver/util/xml/parsers/loader.rb +22 -0
  198. data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +111 -0
  199. data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +54 -0
  200. data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +58 -0
  201. data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +58 -0
  202. data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +147 -0
  203. data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +42 -0
  204. data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +187 -0
  205. data/lib/tdriver/util/xml/xml.rb +170 -0
  206. data/lib/tdriver/verify/verify.rb +687 -0
  207. data/lib/tdriver/verify/verify.rb_org +630 -0
  208. data/lib/tdriver/version.rb +21 -0
  209. data/xml/behaviours/generic.xml +495 -0
  210. data/xml/defaults/generic.xml +97 -0
  211. data/xml/defaults/sut_generic.xml +36 -0
  212. data/xml/parameters/tdriver_parameters.xml +23 -0
  213. data/xml/templates/generic.xml +227 -0
  214. metadata +327 -0
@@ -0,0 +1,37 @@
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
+ # load test object abstract class
24
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'abstract' ) )
25
+
26
+ # load test object identificator
27
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'identificator' ) )
28
+
29
+ # load test object factory
30
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'factory' ) )
31
+
32
+ # load test object behaviours
33
+ MobyUtil::FileHelper.load_modules( File.expand_path( File.join( File.dirname( __FILE__ ), 'behaviours' ) ) )
34
+
35
+ # load report api for continous verification reporting purposes
36
+ require File.expand_path( File.join( File.dirname( __FILE__ ), '../../report/report_api' ) ) if MobyUtil::Parameter[ :report_attach_continuous_verification_to_reporter, nil ]=='true'
37
+
@@ -0,0 +1,21 @@
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
+ ENV['TDRIVER_PATH'] = File.expand_path( File.join( File.dirname( __FILE__ ), '..', '..' ) )
21
+
@@ -0,0 +1,36 @@
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
+ # load globally used external modules
21
+ require 'singleton'
22
+ require 'set'
23
+
24
+ # load native extensions is available
25
+ begin; require File.expand_path( File.join( File.dirname( __FILE__ ), 'native_extensions' ) ); rescue LoadError; end
26
+
27
+ # generic utility modules
28
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'util/loader' ) )
29
+
30
+ # base modules
31
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'base/loader' ) )
32
+
33
+ # misc modules
34
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'report/report' ) )
35
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'verify/verify' ) )
36
+
@@ -0,0 +1,35 @@
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
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'tdriver' ) )
21
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'loader' ) )
22
+
23
+ class MATTI
24
+
25
+ def self.method_missing( method_id, *args )
26
+
27
+ file, line = caller.first.split(":")
28
+
29
+ $stderr.puts "%s:%s warning: deprecated class %s, use %s#%s instead" % [ file, line, self.name, "TDriver", method_id.to_s ]
30
+
31
+ TDriver.respond_to?( method_id ) ? TDriver.method( method_id ).call( *args ) : super
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,83 @@
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 TDriverCustomErrorRecovery
21
+
22
+ # This method is called by TDriver Reporter when error is detected in connection
23
+ # === params
24
+ # === returns
25
+ # === raises
26
+ def error_in_connection()
27
+
28
+ end
29
+
30
+ # This method is called by TDriver Reporter when test set execution is starting
31
+ # === params
32
+ # === returns
33
+ # === raises
34
+ def starting_test_set_run()
35
+
36
+ end
37
+
38
+ # This method is called by TDriver Reporter when test case execution is starting
39
+ # === params
40
+ # test_case: the test case name
41
+ # connected_suts: All the connected TDriver suts
42
+ # === returns
43
+ # === raises
44
+ def starting_test_case(test_case,connected_suts)
45
+
46
+ end
47
+
48
+ # This method is called by TDriver Reporter when a error is detected in test case execution
49
+ # === params
50
+ # connected_suts: All the connected TDriver suts
51
+ # === returns
52
+ # === raises
53
+ def error_in_test_case(connected_suts)
54
+
55
+ end
56
+
57
+ # This method is called by TDriver Reporter when test case details are updated
58
+ # === params
59
+ # details: Execution details recived from the current test case
60
+ # === returns
61
+ # === raises
62
+ def updating_test_case_details(details)
63
+
64
+ end
65
+
66
+ # This method is called by TDriver Reporter when test case execution is ended
67
+ # === params
68
+ # connected_suts: All the connected TDriver suts
69
+ # === returns
70
+ # === raises
71
+ def ending_test_case(status,connected_suts)
72
+
73
+ end
74
+
75
+ # This method is called by TDriver Reporter when test set execution is ending
76
+ # === params
77
+ # === returns
78
+ # === raises
79
+ def ending_test_set_run()
80
+
81
+ end
82
+
83
+ end
@@ -0,0 +1,158 @@
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
+ module TDriverErrorRecovery
22
+
23
+ # Initializes error recovery settings
24
+ # === params
25
+ # === returns
26
+ # === raises
27
+ def initialize_error_recovery
28
+ @recovery_settings=TDriverErrorRecoverySettings.new
29
+ if @recovery_settings.get_ats4_error_recovery_enabled=='true'
30
+ eval('module TDriver_Error_Recovery_ATS4
31
+ require \'dl/import\'
32
+ extend DL::Importable
33
+ dlload "callbackif"
34
+ extern "void restartDatagateway(const char*)"
35
+ extern "int error()"
36
+ end')
37
+ end
38
+
39
+ end
40
+
41
+ # Starts the error recovery for SUTs
42
+ # === params
43
+ # === returns
44
+ # === raises
45
+ def start_error_recovery()
46
+ resetted=false
47
+ if @recovery_settings.get_error_recovery_enabled=='true'
48
+ MobyUtil::Logger.instance.log "behaviour" , "PASS;Starting error recovery"
49
+ if @recovery_settings.get_reconnect_device=='true'
50
+ if @recovery_settings.get_ping_connection=='true'
51
+ resetted=ping_devices_and_reconnect()
52
+ else
53
+ reconnect_devices()
54
+ resetted=true
55
+ end
56
+ end
57
+ MobyUtil::Logger.instance.log "behaviour" , "PASS;Error recovery complete"
58
+ end
59
+ resetted
60
+ end
61
+
62
+ # attempts a reconnect for the current SUT
63
+ # === params
64
+ # current_sut
65
+ # === returns
66
+ # === raises
67
+ def attempt_reconnect(current_sut)
68
+ MobyUtil::Logger.instance.log "behaviour" , "WARNING;Connection lost attempting to reconnect"
69
+ attempt_reconnects=@recovery_settings.get_reconnect_attempts
70
+ current_reconnect_attempt=0
71
+ b_error_recovery_succesful=false
72
+ while current_reconnect_attempt.to_i<attempt_reconnects.to_i
73
+ if @recovery_settings.get_ats4_error_recovery_enabled=='true'
74
+ MobyUtil::Logger.instance.log "behaviour" , "WARNING;Restarting ATS4 DataGateway"
75
+ TDriver_Error_Recovery_ATS4.restartDatagateway(current_sut.id.to_s);
76
+ sleep @recovery_settings.get_wait_time_for_ats4_error_recovery.to_i
77
+ MobyUtil::Logger.instance.log "behaviour" , "WARNING;ATS4 DataGateway restarted"
78
+ else
79
+ MobyUtil::Logger.instance.log "behaviour" , "WARNING;Resetting sut: #{current_sut.id.to_s}"
80
+ current_sut.reset
81
+ MobyUtil::Logger.instance.log "behaviour" , "WARNING;Sut resetted"
82
+ end
83
+ if ping_device(current_sut)==true
84
+ b_error_recovery_succesful=true
85
+ MobyUtil::Logger.instance.log "behaviour" , "PASS;Device reconnected"
86
+ current_reconnect_attempt=attempt_reconnects.to_i
87
+ else
88
+ current_reconnect_attempt+=1
89
+ end
90
+ end
91
+ Kernel::raise BehaviourError.new("Error Recovery", "Error recovery failed after #{attempt_reconnects} recovry attemprs") if b_error_recovery_succesful==false
92
+ end
93
+
94
+ # Reconnects the devices without ping
95
+ # === params
96
+ # === returns
97
+ # === raises
98
+ def reconnect_devices()
99
+ begin
100
+ MobyBase::SUTFactory.instance.connected_suts.each do |sut_id, sut_attributes|
101
+ suts=@recovery_settings.get_monitored_sut
102
+ suts.each do |monitored_sut|
103
+ if sut_id.to_s==monitored_sut.to_s
104
+ attempt_reconnect(sut_attributes[:sut])
105
+ end
106
+ end
107
+ end
108
+ rescue
109
+ end
110
+ end
111
+
112
+ # Ping the current SUT by querying xml state
113
+ # === params
114
+ # current sut
115
+ # === returns
116
+ # true for succesful ping
117
+ # false for failed ping
118
+ # === raises
119
+ def ping_device(current_sut)
120
+ begin
121
+ xml_state=current_sut.get_ui_dump()
122
+ if xml_state==nil
123
+ MobyUtil::Logger.instance.log "behaviour" , "WARNING;Device ping failed"
124
+ false
125
+ else
126
+ MobyUtil::Logger.instance.log "behaviour" , "PASS;Device ping succesful"
127
+ true
128
+ end
129
+ rescue Exception => e
130
+ MobyUtil::Logger.instance.log "behaviour" , "WARNING;Device ping failed"
131
+ false
132
+ end
133
+ end
134
+
135
+ # Ping the devices and reconnect if ping fails
136
+ # === params
137
+ # === returns
138
+ # === raises
139
+ def ping_devices_and_reconnect()
140
+ resetted=false
141
+ MobyBase::SUTFactory.instance.connected_suts.each do |sut_id, sut_attributes|
142
+ begin
143
+ suts=@recovery_settings.get_monitored_sut
144
+ suts.each do |monitored_sut|
145
+ if sut_id.to_s==monitored_sut.to_s
146
+ if ping_device(sut_attributes[:sut])==false
147
+ resetted=true
148
+ attempt_reconnect(sut_attributes[:sut])
149
+ end
150
+ end
151
+ end
152
+ rescue
153
+ end
154
+ end
155
+ resetted
156
+ end
157
+
158
+ end
@@ -0,0 +1,98 @@
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
+
24
+ class TDriverErrorRecoverySettings
25
+ def initialize
26
+
27
+ @error_recovery_enabled=nil
28
+
29
+ @ping_connection=nil
30
+
31
+ @ping_interval=nil
32
+
33
+ @reconnect_device=nil
34
+
35
+ @reconnect_attempts=nil
36
+
37
+ @monitored_suts=[]
38
+
39
+ @ats4_error_recovery_enabled=false
40
+
41
+ @wait_time_for_ats4_error_recovery=60
42
+
43
+ read_settings
44
+ end
45
+ # Read error recovery settings
46
+ # === params
47
+ # === returns
48
+ # === raises
49
+ def read_settings()
50
+ @error_recovery_enabled=MobyUtil::Parameter[ :error_recovery_enabled ]
51
+ Kernel::raise MobyBase::BehaviourError.new("error recovery", "error recovery enabled parameter not defined in tdriver_parameters.xml") if @error_recovery_enabled == nil
52
+
53
+ @ats4_error_recovery_enabled=MobyUtil::Parameter[ :ats4_error_recovery_enabled ]
54
+ Kernel::raise MobyBase::BehaviourError.new("error recovery", "ats4 error recovery enabled parameter not defined in tdriver_parameters.xml") if @ats4_error_recovery_enabled == nil
55
+
56
+ @wait_time_for_ats4_error_recovery=MobyUtil::Parameter[ :wait_time_for_ats4_error_recovery ]
57
+ Kernel::raise MobyBase::BehaviourError.new("error recovery", "ats4 error recovery wait time parameter not defined in tdriver_parameters.xml") if @wait_time_for_ats4_error_recovery == nil
58
+
59
+ @ping_connection=MobyUtil::Parameter[ :ping_connection ]
60
+ Kernel::raise MobyBase::BehaviourError.new("error recovery", "ping connection parameter not defined in tdriver_parameters.xml") if @ping_connection == nil
61
+
62
+ @reconnect_device=MobyUtil::Parameter[ :reconnect_device ]
63
+ Kernel::raise MobyBase::BehaviourError.new("error recovery", "reconnect device patameter not defined in tdriver_parameters.xml") if @reconnect_device == nil
64
+
65
+ @reconnect_attempts=MobyUtil::Parameter[ :reconnect_attempts ]
66
+ Kernel::raise MobyBase::BehaviourError.new("error recovery", "reconnect attempts patameter not defined in tdriver_parameters.xml") if @reconnect_attempts == nil
67
+
68
+ str_parameter=MobyUtil::Parameter[ :error_recovery_monitored_sut_ids ]
69
+ Kernel::raise MobyBase::BehaviourError.new("error recovery", "error_recovery_monitored_sut_ids patameter not defined in tdriver_parameters.xml") if str_parameter == nil
70
+ @monitored_suts=str_parameter.split('|')
71
+
72
+
73
+ end
74
+ def get_ats4_error_recovery_enabled
75
+ MobyUtil::Parameter[ :ats4_error_recovery_enabled ]
76
+ end
77
+ def get_wait_time_for_ats4_error_recovery
78
+ MobyUtil::Parameter[ :wait_time_for_ats4_error_recovery ]
79
+ end
80
+ def get_error_recovery_enabled
81
+ MobyUtil::Parameter[ :error_recovery_enabled ]
82
+ end
83
+ def get_ping_connection
84
+ MobyUtil::Parameter[ :ping_connection ]
85
+ end
86
+ def get_reconnect_device
87
+ MobyUtil::Parameter[ :reconnect_device ]
88
+ end
89
+ def get_reconnect_attempts
90
+ MobyUtil::Parameter[ :reconnect_attempts ]
91
+ end
92
+ def get_monitored_sut
93
+ str_parameter=MobyUtil::Parameter[ :error_recovery_monitored_sut_ids ]
94
+ @monitored_suts=str_parameter.split('|')
95
+ @monitored_suts
96
+ end
97
+
98
+ end