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.
- checksums.yaml +7 -0
- data/README.md +16 -0
- data/bin/start_app_perf +200 -0
- data/bin/tdriver-devtools +3 -0
- data/config/sut_parameters.rb +52 -0
- data/config/sut_setup.rb +32 -0
- data/config/sut_teardown.rb +32 -0
- data/config/tdriver_custom_error_recovery.rb +83 -0
- data/ext/extconf.rb +70 -0
- data/ext/native_extensions.c +315 -0
- data/lib/matti.rb +25 -0
- data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +120 -0
- data/lib/tdriver-devtools/behaviour/old/xml/example/impl.rb_invalid +194 -0
- data/lib/tdriver-devtools/behaviour/old/xml/generate_behaviour_xml.rb +95 -0
- data/lib/tdriver-devtools/behaviour/old/xml/lib/tdriver_generator.rb +722 -0
- data/lib/tdriver-devtools/behaviour/old/xml/qdoc_generator.rb +321 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.method.template +43 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.module.template +54 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument.template +7 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument_type.template +7 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.exception.template +5 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.line.template +2 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.template +5 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.method.template +23 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.template +14 -0
- data/lib/tdriver-devtools/behaviour/old/xml/update +3 -0
- data/lib/tdriver-devtools/behaviour/xml/generate.rb +88 -0
- data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +1945 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.default.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument_type.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.exception.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.arguments.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.deprecated.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.exceptions.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.info.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.returns.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.tables.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.template +12 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.returns.template +5 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.item.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.row.template +2 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.template +8 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.template +14 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/QtExampleGestureBehaviour.xml +138 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/created.rid +1 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/tdriver.hash +1 -0
- data/lib/tdriver-devtools/doc/feature_xml/qt_widget_hold.feature.xml +9 -0
- data/lib/tdriver-devtools/doc/feature_xml/qt_widget_tap.feature.xml +9 -0
- data/lib/tdriver-devtools/doc/generate.rb +917 -0
- data/lib/tdriver-devtools/doc/update +1 -0
- data/lib/tdriver-devtools/doc/xslt/html.rb +7 -0
- data/lib/tdriver-devtools/doc/xslt/template.xsl +2170 -0
- data/lib/tdriver-devtools/doc/xslt/update +3 -0
- data/lib/tdriver-devtools/plugin/placeholder.txt +1 -0
- data/lib/tdriver-devtools/tdriver-devtools.rb +404 -0
- data/lib/tdriver-devtools/tests/feature_tests/example/behaviour_example.rb +100 -0
- data/lib/tdriver-devtools/tests/feature_tests/generate.rb +82 -0
- data/lib/tdriver-devtools/tests/feature_tests/lib/custom_rdoc_generator.rb +468 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/feature_attribute.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/feature_method.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_attribute.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_method.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/update +3 -0
- data/lib/tdriver.rb +23 -0
- data/lib/tdriver/base/behaviour/abstract.rb +29 -0
- data/lib/tdriver/base/behaviour/behaviours/object_abstract.rb +107 -0
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +99 -0
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +278 -0
- data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +119 -0
- data/lib/tdriver/base/behaviour/factory.rb +495 -0
- data/lib/tdriver/base/behaviour/loader.rb +46 -0
- data/lib/tdriver/base/command_data/command_data.rb +51 -0
- data/lib/tdriver/base/command_data/loader.rb +29 -0
- data/lib/tdriver/base/controller/abstraction.rb +56 -0
- data/lib/tdriver/base/controller/loader.rb +21 -0
- data/lib/tdriver/base/errors.rb +134 -0
- data/lib/tdriver/base/loader.rb +47 -0
- data/lib/tdriver/base/state_object.rb +373 -0
- data/lib/tdriver/base/sut/adapter.rb +54 -0
- data/lib/tdriver/base/sut/controller.rb +151 -0
- data/lib/tdriver/base/sut/factory.rb +339 -0
- data/lib/tdriver/base/sut/generic/behaviours/agent.rb +77 -0
- data/lib/tdriver/base/sut/generic/behaviours/application.rb +427 -0
- data/lib/tdriver/base/sut/generic/behaviours/controller.rb +67 -0
- data/lib/tdriver/base/sut/generic/behaviours/find.rb +107 -0
- data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +337 -0
- data/lib/tdriver/base/sut/generic/behaviours/sut.rb +1888 -0
- data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +210 -0
- data/lib/tdriver/base/sut/generic/behaviours/verification.rb +222 -0
- data/lib/tdriver/base/sut/generic/commands/agent.rb +43 -0
- data/lib/tdriver/base/sut/generic/commands/application.rb +274 -0
- data/lib/tdriver/base/sut/generic/commands/fixture.rb +47 -0
- data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +94 -0
- data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +64 -0
- data/lib/tdriver/base/sut/generic/plugin.rb +97 -0
- data/lib/tdriver/base/sut/loader.rb +35 -0
- data/lib/tdriver/base/sut/sut.rb +98 -0
- data/lib/tdriver/base/test_object/abstract.rb +208 -0
- data/lib/tdriver/base/test_object/adapter.rb +740 -0
- data/lib/tdriver/base/test_object/behaviours/syncronization.rb +144 -0
- data/lib/tdriver/base/test_object/behaviours/test_object.rb +1047 -0
- data/lib/tdriver/base/test_object/cache.rb +134 -0
- data/lib/tdriver/base/test_object/factory.rb +684 -0
- data/lib/tdriver/base/test_object/loader.rb +51 -0
- data/lib/tdriver/base/test_object/verification.rb +178 -0
- data/lib/tdriver/base/test_object/xml/abstraction.rb +63 -0
- data/lib/tdriver/base/test_object/xml/adapter.rb +773 -0
- data/lib/tdriver/env.rb +21 -0
- data/lib/tdriver/loader.rb +57 -0
- data/lib/tdriver/matti.rb +35 -0
- data/lib/tdriver/report/error_recovery/tdriver_custom_error_recovery.rb +83 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +168 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +106 -0
- data/lib/tdriver/report/report.rb +61 -0
- data/lib/tdriver/report/report_api.rb +348 -0
- data/lib/tdriver/report/report_combine.rb +86 -0
- data/lib/tdriver/report/report_crash_file_capture.rb +178 -0
- data/lib/tdriver/report/report_creator.rb +665 -0
- data/lib/tdriver/report/report_cucumber.rb +158 -0
- data/lib/tdriver/report/report_cucumber_listener.rb +184 -0
- data/lib/tdriver/report/report_cucumber_reporter.rb +181 -0
- data/lib/tdriver/report/report_data_presentation.rb +156 -0
- data/lib/tdriver/report/report_data_table.rb +64 -0
- data/lib/tdriver/report/report_execution_statistics.rb +400 -0
- data/lib/tdriver/report/report_file_capture.rb +159 -0
- data/lib/tdriver/report/report_graph_generator.rb +59 -0
- data/lib/tdriver/report/report_grouping.rb +541 -0
- data/lib/tdriver/report/report_javascript.rb +199 -0
- data/lib/tdriver/report/report_junit_xml.rb +147 -0
- data/lib/tdriver/report/report_rspec.rb +108 -0
- data/lib/tdriver/report/report_test_case_run.rb +725 -0
- data/lib/tdriver/report/report_test_run.rb +1476 -0
- data/lib/tdriver/report/report_test_unit.rb +223 -0
- data/lib/tdriver/report/report_writer.rb +1621 -0
- data/lib/tdriver/tdriver.rb +209 -0
- data/lib/tdriver/util/agent/loader.rb +22 -0
- data/lib/tdriver/util/agent/service.rb +107 -0
- data/lib/tdriver/util/common/array.rb +39 -0
- data/lib/tdriver/util/common/boolean.rb +48 -0
- data/lib/tdriver/util/common/crc16.rb +149 -0
- data/lib/tdriver/util/common/environment.rb +154 -0
- data/lib/tdriver/util/common/error.rb +40 -0
- data/lib/tdriver/util/common/exception.rb +53 -0
- data/lib/tdriver/util/common/exceptions.rb +12 -0
- data/lib/tdriver/util/common/file.rb +328 -0
- data/lib/tdriver/util/common/gem.rb +109 -0
- data/lib/tdriver/util/common/hash.rb +288 -0
- data/lib/tdriver/util/common/kernel.rb +253 -0
- data/lib/tdriver/util/common/loader.rb +47 -0
- data/lib/tdriver/util/common/numeric.rb +159 -0
- data/lib/tdriver/util/common/object.rb +159 -0
- data/lib/tdriver/util/common/retryable.rb +179 -0
- data/lib/tdriver/util/common/stackable.rb +185 -0
- data/lib/tdriver/util/common/string.rb +174 -0
- data/lib/tdriver/util/database/access.rb +240 -0
- data/lib/tdriver/util/database/connection.rb +44 -0
- data/lib/tdriver/util/database/error.rb +34 -0
- data/lib/tdriver/util/database/loader.rb +28 -0
- data/lib/tdriver/util/filters/attribute_filter.rb +121 -0
- data/lib/tdriver/util/filters/loader.rb +29 -0
- data/lib/tdriver/util/fixture/loader.rb +22 -0
- data/lib/tdriver/util/fixture/service.rb +211 -0
- data/lib/tdriver/util/hooking/hooking.rb +477 -0
- data/lib/tdriver/util/keymap/keymap.rb +81 -0
- data/lib/tdriver/util/loader.rb +80 -0
- data/lib/tdriver/util/localisation/error.rb +31 -0
- data/lib/tdriver/util/localisation/loader.rb +25 -0
- data/lib/tdriver/util/localisation/localisation.rb +762 -0
- data/lib/tdriver/util/logger/loader.rb +22 -0
- data/lib/tdriver/util/logger/logger.rb +591 -0
- data/lib/tdriver/util/operator_data/error.rb +29 -0
- data/lib/tdriver/util/operator_data/loader.rb +27 -0
- data/lib/tdriver/util/operator_data/operator_data.rb +93 -0
- data/lib/tdriver/util/other/config.rb +221 -0
- data/lib/tdriver/util/parameter/error.rb +48 -0
- data/lib/tdriver/util/parameter/loader.rb +25 -0
- data/lib/tdriver/util/parameter/parameter.rb +1161 -0
- data/lib/tdriver/util/plugin/abstract.rb +61 -0
- data/lib/tdriver/util/plugin/error.rb +0 -0
- data/lib/tdriver/util/plugin/loader.rb +28 -0
- data/lib/tdriver/util/plugin/service.rb +319 -0
- data/lib/tdriver/util/recorder/loader.rb +25 -0
- data/lib/tdriver/util/recorder/recorder.rb +72 -0
- data/lib/tdriver/util/recorder/scripter.rb +294 -0
- data/lib/tdriver/util/statistics/statistics.rb +89 -0
- data/lib/tdriver/util/user_data/error.rb +28 -0
- data/lib/tdriver/util/user_data/loader.rb +25 -0
- data/lib/tdriver/util/user_data/user_data.rb +104 -0
- data/lib/tdriver/util/video/camera.rb +67 -0
- data/lib/tdriver/util/video/camera_linux.rb +153 -0
- data/lib/tdriver/util/video/camera_windows.rb +174 -0
- data/lib/tdriver/util/video/loader.rb +31 -0
- data/lib/tdriver/util/video/video_utils.rb +139 -0
- data/lib/tdriver/util/xml/abstraction.rb +117 -0
- data/lib/tdriver/util/xml/attribute.rb +32 -0
- data/lib/tdriver/util/xml/builder.rb +53 -0
- data/lib/tdriver/util/xml/comment.rb +32 -0
- data/lib/tdriver/util/xml/document.rb +32 -0
- data/lib/tdriver/util/xml/element.rb +32 -0
- data/lib/tdriver/util/xml/error.rb +46 -0
- data/lib/tdriver/util/xml/loader.rb +62 -0
- data/lib/tdriver/util/xml/nil_node.rb +95 -0
- data/lib/tdriver/util/xml/nodeset.rb +32 -0
- data/lib/tdriver/util/xml/parsers/libxml/libxml.rb +140 -0
- data/lib/tdriver/util/xml/parsers/loader.rb +21 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +167 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +66 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +64 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/comment.rb +39 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +66 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +39 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +58 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/node.rb +212 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +237 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/text.rb +39 -0
- data/lib/tdriver/util/xml/text.rb +32 -0
- data/lib/tdriver/util/xml/xml.rb +332 -0
- data/lib/tdriver/verify/verify.rb +2398 -0
- data/lib/tdriver/version.rb +21 -0
- data/xml/behaviours/generic.xml +530 -0
- data/xml/defaults/generic.xml +11 -0
- data/xml/defaults/sut_generic.xml +8 -0
- data/xml/parameters/tdriver_parameters.xml +23 -0
- data/xml/templates/generic.xml +292 -0
- metadata +324 -0
@@ -0,0 +1,67 @@
|
|
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 MobyBehaviour
|
22
|
+
|
23
|
+
# == description
|
24
|
+
# SUT controller behaviours
|
25
|
+
#
|
26
|
+
# == behaviour
|
27
|
+
# GenericSutController
|
28
|
+
#
|
29
|
+
# == requires
|
30
|
+
# *
|
31
|
+
#
|
32
|
+
# == input_type
|
33
|
+
# *
|
34
|
+
#
|
35
|
+
# == sut_type
|
36
|
+
# *
|
37
|
+
#
|
38
|
+
# == sut_version
|
39
|
+
# *
|
40
|
+
#
|
41
|
+
# == objects
|
42
|
+
# sut
|
43
|
+
#
|
44
|
+
module SutController
|
45
|
+
|
46
|
+
include MobyBehaviour::Behaviour
|
47
|
+
|
48
|
+
# == nodoc
|
49
|
+
def execution_order
|
50
|
+
|
51
|
+
@_sutController.execution_order
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
# == nodoc
|
56
|
+
def execution_order=( order )
|
57
|
+
|
58
|
+
@_sutController.execution_order = order
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
# enable hooking for performance measurement & debug logging
|
63
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
64
|
+
|
65
|
+
end # SutController
|
66
|
+
|
67
|
+
end # MobyBehaviour
|
@@ -0,0 +1,107 @@
|
|
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
|
+
# Find behaviour
|
21
|
+
# Methods for finding test objects on the suttest objet state
|
22
|
+
module MobyBehaviour
|
23
|
+
|
24
|
+
# == description
|
25
|
+
# This module contains generic find behaviour
|
26
|
+
#
|
27
|
+
# == behaviour
|
28
|
+
# GenericFind
|
29
|
+
#
|
30
|
+
# == requires
|
31
|
+
# *
|
32
|
+
#
|
33
|
+
# == input_type
|
34
|
+
# *
|
35
|
+
#
|
36
|
+
# == sut_type
|
37
|
+
# *
|
38
|
+
#
|
39
|
+
# == sut_version
|
40
|
+
# *
|
41
|
+
#
|
42
|
+
# == objects
|
43
|
+
# *;sut
|
44
|
+
module Find
|
45
|
+
|
46
|
+
include MobyBehaviour::Behaviour
|
47
|
+
|
48
|
+
# == nodoc
|
49
|
+
# == description
|
50
|
+
# Finds a child test_object given its name and type and returns it as a reference
|
51
|
+
#
|
52
|
+
# == arguments
|
53
|
+
# attributes
|
54
|
+
# Hash
|
55
|
+
# description: one or more attributes defining the rules for the test object search. Must not be empty.
|
56
|
+
# example: { :name => 'oneButton' }
|
57
|
+
# default: {}
|
58
|
+
#
|
59
|
+
# == returns
|
60
|
+
# MobyBase::TestObject
|
61
|
+
# description: found test object
|
62
|
+
# example: -
|
63
|
+
#
|
64
|
+
# == exceptions
|
65
|
+
# TypeError
|
66
|
+
# description: Wrong argument type <class> for attributes (expected Hash)
|
67
|
+
#
|
68
|
+
# ArgumentError
|
69
|
+
# description: Attributes hash must not be empty
|
70
|
+
#
|
71
|
+
# == info
|
72
|
+
# Same as calling child method.
|
73
|
+
def find( attributes = {} )
|
74
|
+
|
75
|
+
begin
|
76
|
+
|
77
|
+
# verify that attributes argument type is correct
|
78
|
+
attributes.check_type Hash, 'Wrong argument type $1 for attributes (expected $2)'
|
79
|
+
|
80
|
+
# verify that attributes hash is not empty
|
81
|
+
attributes.not_empty 'Attributes hash must not be empty'
|
82
|
+
|
83
|
+
# retrieve desired object
|
84
|
+
result = child( attributes )
|
85
|
+
|
86
|
+
rescue
|
87
|
+
|
88
|
+
$logger.behaviour "FAIL;Failed to find test object.;#{ id.to_s };sut;{};find;#{ attributes.kind_of?( Hash ) ? attributes.inspect : attributes.class.to_s }"
|
89
|
+
|
90
|
+
# raise original exception
|
91
|
+
raise
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
$logger.behaviour "PASS;Test object found.;#{ id.to_s };sut;{};application;#{ attributes.inspect }"
|
96
|
+
|
97
|
+
# pass the result object
|
98
|
+
result
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
# enable hooking for performance measurement & debug logging
|
103
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
104
|
+
|
105
|
+
end # Find
|
106
|
+
|
107
|
+
end # MobyBehaviour
|
@@ -0,0 +1,337 @@
|
|
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 MobyBehaviour
|
21
|
+
# == description
|
22
|
+
# This module contains implementation to control device flashing
|
23
|
+
#
|
24
|
+
# == behaviour
|
25
|
+
# GenericFlashBehaviour
|
26
|
+
#
|
27
|
+
# == requires
|
28
|
+
# *
|
29
|
+
# == input_type
|
30
|
+
# *
|
31
|
+
#
|
32
|
+
# == sut_type
|
33
|
+
# *
|
34
|
+
#
|
35
|
+
# == sut_version
|
36
|
+
# *
|
37
|
+
#
|
38
|
+
# == objects
|
39
|
+
# sut
|
40
|
+
#
|
41
|
+
module FlashBehaviour
|
42
|
+
|
43
|
+
include MobyBehaviour::Behaviour
|
44
|
+
|
45
|
+
# == description
|
46
|
+
# Instructs the sut to start the flash operation with default TDriver parameters
|
47
|
+
#
|
48
|
+
#
|
49
|
+
# == arguments
|
50
|
+
# == returns
|
51
|
+
# Boolean
|
52
|
+
# description: Indicating that did flashing success
|
53
|
+
# example: true
|
54
|
+
# == exceptions
|
55
|
+
# BehaviourError
|
56
|
+
# description: If mandatory parameters are missing
|
57
|
+
# BehaviourError
|
58
|
+
# description: If flashing is failed
|
59
|
+
#
|
60
|
+
# == tables
|
61
|
+
# flash_prameters
|
62
|
+
# title: Flash parameters
|
63
|
+
# description: Flash parameters for sut
|
64
|
+
# |Parameter|Description|Example|
|
65
|
+
# |:flash_attempts|How many times TDriver will attempt to flash the device|<parameter name="flash_attempts" value="2" />|
|
66
|
+
# |:timeout_between_command_sequence|Timeout in seconds between the switchbox commands|<parameter name="timeout_between_command_sequence" value="25" />|
|
67
|
+
# |:switchbox_commands_before_flash|Commands you want to be executed before flash|<parameter name="switchbox_commands_before_flash" value="" />|
|
68
|
+
# |:commands_before_flash|Flash commands before flash|<parameter name="commands_before_flash" value="" />|
|
69
|
+
# |:flash_command|Intial flash command|<parameter name="flash_command" value="" />|
|
70
|
+
# |:timeout_before_executing_commands_during_flash|Timeout in seconds before executing the commands during flash|<parameter name="timeout_before_executing_commands_during_flash" value="20" />|
|
71
|
+
# |:switchbox_commands_during_flash|Commands you want to be executed during flash|<parameter name="switchbox_commands_during_flash" value="" />|
|
72
|
+
# |:optional_parameters_after_flashing|Optional flash parameters|<parameter name="optional_parameters_after_flashing" value="" />|
|
73
|
+
# |:flash_images|Images to flash|<parameter name="flash_images" value="" />|
|
74
|
+
# |:sleep_time_after_flash_command|Wait time for the flash process to finish|<parameter name="sleep_time_after_flash_command" value="70" />|
|
75
|
+
# |:command_after_flash|Flash command after flash|<parameter name="command_after_flash" value="" />|
|
76
|
+
# |:switchbox_commands_after_failed_flash|Commands for switchbox after failed flash|<parameter name="switchbox_commands_after_failed_flash" value="" />|
|
77
|
+
# |:commands_after_failed_flash|Commands after failed flash|<parameter name="commands_after_failed_flash" value="" />|
|
78
|
+
# |:flash_command_success_string|If no error then no string is displayed|<parameter name="flash_command_success_string" value="" />|
|
79
|
+
# |:switchbox_commands_after_flash|Commands you want to be executed after flash|<parameter name="switchbox_commands_after_flash" value="" />|
|
80
|
+
|
81
|
+
def flash()
|
82
|
+
|
83
|
+
flash_images
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
# == description
|
88
|
+
# Instructs the sut to start the flash operation with the configured flash files
|
89
|
+
#
|
90
|
+
# == arguments
|
91
|
+
# flash_files
|
92
|
+
# String
|
93
|
+
# description: The location of the software image file
|
94
|
+
# example: "C:/images/flash_image.img"
|
95
|
+
# == returns
|
96
|
+
# Boolean
|
97
|
+
# description: Indicating that did flashing success
|
98
|
+
# example: true
|
99
|
+
# == raises
|
100
|
+
# BehaviourError If mandatory parameters are missing
|
101
|
+
# BehaviourError If flashing is failed
|
102
|
+
# === examples
|
103
|
+
# @sut.flash_images("C:/path/image_file.img")
|
104
|
+
# == tables
|
105
|
+
# flash_prameters
|
106
|
+
# title: Flash parameters
|
107
|
+
# description: Flash parameters for sut
|
108
|
+
# |Parameter|Description|Example|
|
109
|
+
# |:flash_attempts|How many times TDriver will attempt to flash the device|<parameter name="flash_attempts" value="2" />|
|
110
|
+
# |:timeout_between_command_sequence|Timeout in seconds between the switchbox commands|<parameter name="timeout_between_command_sequence" value="25" />|
|
111
|
+
# |:switchbox_commands_before_flash|Commands you want to be executed before flash|<parameter name="switchbox_commands_before_flash" value="" />|
|
112
|
+
# |:commands_before_flash|Flash commands before flash|<parameter name="commands_before_flash" value="" />|
|
113
|
+
# |:flash_command|Intial flash command|<parameter name="flash_command" value="" />|
|
114
|
+
# |:timeout_before_executing_commands_during_flash|Timeout in seconds before executing the commands during flash|<parameter name="timeout_before_executing_commands_during_flash" value="20" />|
|
115
|
+
# |:switchbox_commands_during_flash|Commands you want to be executed during flash|<parameter name="switchbox_commands_during_flash" value="" />|
|
116
|
+
# |:optional_parameters_after_flashing|Optional flash parameters|<parameter name="optional_parameters_after_flashing" value="" />|
|
117
|
+
# |:flash_images|Images to flash|<parameter name="flash_images" value="" />|
|
118
|
+
# |:sleep_time_after_flash_command|Wait time for the flash process to finish|<parameter name="sleep_time_after_flash_command" value="70" />|
|
119
|
+
# |:command_after_flash|Flash command after flash|<parameter name="command_after_flash" value="" />|
|
120
|
+
# |:switchbox_commands_after_failed_flash|Commands for switchbox after failed flash|<parameter name="switchbox_commands_after_failed_flash" value="" />|
|
121
|
+
# |:commands_after_failed_flash|Commands after failed flash|<parameter name="commands_after_failed_flash" value="" />|
|
122
|
+
# |:flash_command_success_string|If no error then no string is displayed|<parameter name="flash_command_success_string" value="" />|
|
123
|
+
# |:switchbox_commands_after_flash|Commands you want to be executed after flash|<parameter name="switchbox_commands_after_flash" value="" />|
|
124
|
+
def flash_images(flash_files = nil)
|
125
|
+
file, line = caller.first.split(":")
|
126
|
+
|
127
|
+
begin
|
128
|
+
if parameter(:flaxi_flash_attempts)
|
129
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_flash_attempts deprecated use :flash_attempts instead"
|
130
|
+
parameter[:flash_attempts]=parameter(:flaxi_flash_attempts)
|
131
|
+
end
|
132
|
+
rescue
|
133
|
+
end
|
134
|
+
|
135
|
+
begin
|
136
|
+
if parameter(:flaxi_commands_before_flash)
|
137
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_commands_before_flash deprecated use :commands_before_flash instead"
|
138
|
+
parameter[:commands_before_flash]=parameter(:flaxi_commands_before_flash)
|
139
|
+
end
|
140
|
+
rescue
|
141
|
+
end
|
142
|
+
|
143
|
+
begin
|
144
|
+
if parameter(:flaxi_flash_command)
|
145
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_flash_command deprecated use :flash_command instead"
|
146
|
+
parameter[:flash_command]=parameter(:flaxi_flash_command)
|
147
|
+
end
|
148
|
+
rescue
|
149
|
+
end
|
150
|
+
|
151
|
+
begin
|
152
|
+
if parameter(:flaxi_optional_parameters_after_flashing)
|
153
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_optional_parameters_after_flashing deprecated use :optional_parameters_after_flashing instead"
|
154
|
+
parameter[:optional_parameters_after_flashing]=parameter(:flaxi_optional_parameters_after_flashing)
|
155
|
+
end
|
156
|
+
rescue
|
157
|
+
end
|
158
|
+
|
159
|
+
begin
|
160
|
+
if parameter(:flaxi_flash_images)
|
161
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_flash_images deprecated use :flash_images instead"
|
162
|
+
parameter[:flash_images]=parameter(:flaxi_flash_images)
|
163
|
+
end
|
164
|
+
rescue
|
165
|
+
end
|
166
|
+
|
167
|
+
begin
|
168
|
+
if parameter(:flaxi_sleep_time_after_flash_command)
|
169
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_sleep_time_after_flash_command deprecated use :sleep_time_after_flash_command instead"
|
170
|
+
parameter[:sleep_time_after_flash_command]=parameter(:flaxi_sleep_time_after_flash_command)
|
171
|
+
end
|
172
|
+
rescue
|
173
|
+
end
|
174
|
+
|
175
|
+
begin
|
176
|
+
if parameter(:flaxi_command_after_flash)
|
177
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_command_after_flash deprecated use :command_after_flash instead"
|
178
|
+
parameter[:command_after_flash]=parameter(:flaxi_command_after_flash)
|
179
|
+
end
|
180
|
+
rescue
|
181
|
+
end
|
182
|
+
|
183
|
+
begin
|
184
|
+
if parameter(:flaxi_commands_after_failed_flash)
|
185
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_commands_after_failed_flash deprecated use :commands_after_failed_flash instead"
|
186
|
+
parameter[:commands_after_failed_flash]=parameter(:flaxi_commands_after_failed_flash)
|
187
|
+
end
|
188
|
+
rescue
|
189
|
+
end
|
190
|
+
|
191
|
+
begin
|
192
|
+
if parameter(:flaxi_flash_command_success_string)
|
193
|
+
$stderr.puts "#{ file.to_s }:#{ line.to_s } warning: parameter :flaxi_flash_command_success_string deprecated use :flash_command_success_string instead"
|
194
|
+
parameter[:flash_command_success_string]=parameter(:flaxi_flash_command_success_string)
|
195
|
+
end
|
196
|
+
rescue
|
197
|
+
end
|
198
|
+
|
199
|
+
if flash_files==nil
|
200
|
+
flash_files=parameter(:flash_images)
|
201
|
+
raise MobyBase::BehaviourError.new("flash_images", "flash_images not defined for sut in tdriver_parameters.xml") if flash_files == nil
|
202
|
+
end
|
203
|
+
|
204
|
+
str_flash_command=parameter(:flash_command)
|
205
|
+
raise MobyBase::BehaviourError.new("flash_images", "flash_command not defined for sut in tdriver_parameters.xml") if str_flash_command == nil
|
206
|
+
|
207
|
+
str_optional_parameters=parameter(:optional_parameters_after_flashing,'')
|
208
|
+
raise MobyBase::BehaviourError.new("flash_images", "optional_parameters_after_flashing not defined for sut in tdriver_parameters.xml") if str_optional_parameters == nil
|
209
|
+
|
210
|
+
#build flash command
|
211
|
+
flash_command="#{str_flash_command} #{flash_files} #{str_optional_parameters}"
|
212
|
+
|
213
|
+
#start flashing
|
214
|
+
result = start_flashing( flash_command )
|
215
|
+
|
216
|
+
raise MobyBase::BehaviourError.new("flash_images", "Flashing failed") if result.to_s == 'false'
|
217
|
+
sleep parameter[:sleep_time_after_flash_command].to_i
|
218
|
+
end
|
219
|
+
|
220
|
+
private
|
221
|
+
|
222
|
+
def execute_command_sequence(command_sequence)
|
223
|
+
|
224
|
+
sequence_timeout=parameter(:timeout_between_command_sequence)
|
225
|
+
|
226
|
+
#command sequenc
|
227
|
+
str_command=parameter(command_sequence)
|
228
|
+
|
229
|
+
#generate the sequence
|
230
|
+
str_command_arr = str_command.split('|')
|
231
|
+
|
232
|
+
#execute command sequence
|
233
|
+
str_command_arr.each do |command|
|
234
|
+
system(command)
|
235
|
+
sleep sequence_timeout.to_i
|
236
|
+
end
|
237
|
+
|
238
|
+
end
|
239
|
+
|
240
|
+
def flash_error_recovery()
|
241
|
+
|
242
|
+
#switchbox commands after failed flash
|
243
|
+
execute_command_sequence(:switchbox_commands_after_failed_flash)
|
244
|
+
|
245
|
+
#flaxi commands after failed flash
|
246
|
+
execute_command_sequence(:commands_after_failed_flash)
|
247
|
+
|
248
|
+
end
|
249
|
+
|
250
|
+
def start_flashing(flash_command)
|
251
|
+
|
252
|
+
flash_attempts=parameter(:flash_attempts)
|
253
|
+
raise MobyBase::BehaviourError.new("start_flashing", "flash_attempts not defined for sut in tdriver_parameters.xml") if flash_attempts == nil
|
254
|
+
|
255
|
+
current_flash_attempt=0
|
256
|
+
flash_result='false'
|
257
|
+
|
258
|
+
|
259
|
+
while current_flash_attempt < flash_attempts.to_i
|
260
|
+
initialize_prommer
|
261
|
+
|
262
|
+
initialize_device
|
263
|
+
Thread.new do
|
264
|
+
#this intializes the commands that are executed during flash
|
265
|
+
wait_timeout=0
|
266
|
+
wait_timeout=parameter(:timeout_before_executing_commands_during_flash,10) if parameter(:timeout_before_executing_commands_during_flash)
|
267
|
+
sleep wait_timeout.to_i
|
268
|
+
#commands executed during flash
|
269
|
+
execute_command_sequence(:switchbox_commands_during_flash) if parameter(:switchbox_commands_during_flash)
|
270
|
+
end
|
271
|
+
flash_result=system(flash_command)
|
272
|
+
if flash_result.to_s=='true'
|
273
|
+
current_flash_attempt=flash_attempts.to_i
|
274
|
+
else
|
275
|
+
flash_error_recovery
|
276
|
+
end
|
277
|
+
current_flash_attempt+=1
|
278
|
+
end
|
279
|
+
|
280
|
+
finalize_prommer
|
281
|
+
|
282
|
+
finalize_device
|
283
|
+
|
284
|
+
flash_result
|
285
|
+
end
|
286
|
+
|
287
|
+
# Instructs the SUT to initialize prommer using foobox
|
288
|
+
# === params
|
289
|
+
# === returns
|
290
|
+
# === raises
|
291
|
+
def initialize_prommer()
|
292
|
+
|
293
|
+
#switchbox command sequence before flash
|
294
|
+
execute_command_sequence(:switchbox_commands_before_flash)
|
295
|
+
|
296
|
+
end
|
297
|
+
|
298
|
+
# Instructs the SUT to initialize device using flaxi
|
299
|
+
# === params
|
300
|
+
# === returns
|
301
|
+
# === raises
|
302
|
+
def initialize_device()
|
303
|
+
|
304
|
+
#flaxi command sequence before flash
|
305
|
+
execute_command_sequence(:commands_before_flash)
|
306
|
+
|
307
|
+
end
|
308
|
+
|
309
|
+
# Instructs the SUT to finalize prommer using foobox
|
310
|
+
# === params
|
311
|
+
# === returns
|
312
|
+
# === raises
|
313
|
+
def finalize_prommer()
|
314
|
+
|
315
|
+
#switchbox command sequence before flash
|
316
|
+
execute_command_sequence(:switchbox_commands_after_flash)
|
317
|
+
|
318
|
+
end
|
319
|
+
|
320
|
+
# Instructs the SUT to finalize device using flaxi
|
321
|
+
# === params
|
322
|
+
# === returns
|
323
|
+
# === raises
|
324
|
+
def finalize_device()
|
325
|
+
|
326
|
+
#flaxi command sequence before flash
|
327
|
+
execute_command_sequence(:command_after_flash)
|
328
|
+
|
329
|
+
end
|
330
|
+
|
331
|
+
# enable hooking for performance measurement & debug logging
|
332
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
333
|
+
|
334
|
+
end
|
335
|
+
|
336
|
+
end
|
337
|
+
|