testability-driver-qt-sut-plugin 1.3.0 → 1.3.1
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.
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/events.rb +24 -10
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/file_transfer.rb +57 -44
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/multitouch.rb +1 -1
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/sut.rb +3 -17
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/synchronization.rb +5 -1
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/application.rb +0 -11
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/plugin.rb +5 -3
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/adapter.rb +15 -21
- metadata +2 -2
@@ -72,6 +72,7 @@ module MobyBehaviour
|
|
72
72
|
def enable_events(filter_array = nil, params = {})
|
73
73
|
|
74
74
|
begin
|
75
|
+
|
75
76
|
command = plugin_command #in qt_behaviour
|
76
77
|
command.command_name( 'EnableEvents' )
|
77
78
|
params_str = ''
|
@@ -81,15 +82,18 @@ module MobyBehaviour
|
|
81
82
|
command.service( 'collectEvents' )
|
82
83
|
@sut.execute_command( command)
|
83
84
|
@@_events_enabled = true
|
84
|
-
|
85
|
+
|
86
|
+
rescue
|
85
87
|
|
86
88
|
$logger.behaviour "FAIL;Failed enable_events with refresh \"#{filter_array.to_s}\".;#{ identity };enable_events;"
|
87
|
-
|
89
|
+
raise $!
|
88
90
|
|
89
91
|
end
|
90
92
|
|
91
93
|
$logger.behaviour "PASS;Operation enable_events executed successfully with refresh \"#{ filter_array.to_s }\".;#{ identity };enable_events;"
|
94
|
+
|
92
95
|
nil
|
96
|
+
|
93
97
|
end
|
94
98
|
|
95
99
|
# == description
|
@@ -104,37 +108,46 @@ module MobyBehaviour
|
|
104
108
|
# Exception
|
105
109
|
# description: In case of an error
|
106
110
|
#
|
107
|
-
def disable_events
|
111
|
+
def disable_events
|
108
112
|
|
109
113
|
begin
|
114
|
+
|
110
115
|
command = plugin_command #in qt_behaviour
|
111
116
|
command.command_name( 'DisableEvents' )
|
112
117
|
command.service( 'collectEvents' )
|
113
118
|
@sut.execute_command( command)
|
114
119
|
@@_events_enabled = false
|
115
|
-
|
120
|
+
|
121
|
+
rescue
|
122
|
+
|
116
123
|
$logger.behaviour "FAIL;Failed disable_events.;#{ identity };disable_events;"
|
117
|
-
|
124
|
+
|
125
|
+
raise $!
|
126
|
+
|
118
127
|
end
|
119
128
|
|
120
129
|
$logger.behaviour "PASS;Operation disable_events executed successfully.;#{ identity };disable_events;"
|
130
|
+
|
121
131
|
nil
|
122
132
|
|
123
133
|
end
|
124
134
|
|
125
135
|
# == description
|
126
|
-
# Gets event list occured since the enabling of events. The format of the XML string is the same as with the UI state
|
136
|
+
# Gets event list occured since the enabling of events. The format of the XML string is the same as with the UI state.\n
|
137
|
+
# [b]NOTE:[/b] It is highly recommended to create a StateObject with result XML and access the data through appropriate API.\n
|
138
|
+
# \n
|
139
|
+
# See [link="#GenericSut:state_object"]state_object[/link] method for more details.
|
127
140
|
#
|
128
141
|
# == returns
|
129
142
|
# String
|
130
|
-
# description:
|
143
|
+
# description: XML containing the details of the events logger since enable_events
|
131
144
|
# example: -
|
132
145
|
#
|
133
146
|
# == exceptions
|
134
147
|
# Exception
|
135
148
|
# description: In case of an error
|
136
149
|
#
|
137
|
-
def get_events
|
150
|
+
def get_events
|
138
151
|
|
139
152
|
ret = nil
|
140
153
|
|
@@ -146,10 +159,11 @@ module MobyBehaviour
|
|
146
159
|
ret = @sut.execute_command( command)
|
147
160
|
# TODO: how to parse the output?
|
148
161
|
|
149
|
-
rescue
|
162
|
+
rescue
|
150
163
|
|
151
164
|
$logger.behaviour "FAIL;Failed get_events.;#{ identity };get_events;"
|
152
|
-
|
165
|
+
|
166
|
+
raise $!
|
153
167
|
|
154
168
|
end
|
155
169
|
|
data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/file_transfer.rb
CHANGED
@@ -144,7 +144,7 @@ module MobyBehaviour
|
|
144
144
|
|
145
145
|
if arguments[ :file ]!=nil
|
146
146
|
file=arguments[ :file ].gsub('\\','/')
|
147
|
-
else
|
147
|
+
else
|
148
148
|
file='*.*'
|
149
149
|
end
|
150
150
|
|
@@ -165,13 +165,13 @@ module MobyBehaviour
|
|
165
165
|
end_index=(name.index File.basename(name))-1
|
166
166
|
start_index=(name.index device_path)+device_path.length
|
167
167
|
file_folder=name[start_index..end_index]
|
168
|
-
|
168
|
+
receive_file_from_device(name,File.join("#{tmp_path}#{file_folder}",File.basename(name)))
|
169
169
|
end
|
170
170
|
return list_of_files
|
171
171
|
else
|
172
172
|
Kernel::raise ArgumentError.new( "Argument :file not found") unless arguments.include?( :file )
|
173
|
-
|
174
|
-
|
173
|
+
return receive_file_from_device(File.join(tmp_path,name),File.join(tmp_path,name))
|
174
|
+
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
@@ -223,10 +223,10 @@ module MobyBehaviour
|
|
223
223
|
Kernel::raise ArgumentError.new( "Argument :from not found") unless arguments.include?( :from )
|
224
224
|
local_dir.entries.each do | local_file_or_subdir |
|
225
225
|
if !File.directory?( File.join( arguments[ :from ], local_file_or_subdir ) )
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
226
|
+
send_file_to_device(
|
227
|
+
File.join( arguments[ :from ], local_file_or_subdir ),
|
228
|
+
File.join( arguments[ :to ], File.basename(local_file_or_subdir))
|
229
|
+
)
|
230
230
|
transfered_files << "#{arguments[ :to ]}/#{File.basename(local_file_or_subdir)}"
|
231
231
|
elsif local_file_or_subdir != "." && local_file_or_subdir != ".."
|
232
232
|
fixture("file","mk_dir",{:file_name=>"#{arguments[ :to ]}/#{local_file_or_subdir}"})
|
@@ -237,10 +237,10 @@ module MobyBehaviour
|
|
237
237
|
elsif arguments.include?( :file ) && arguments.include?( :from )
|
238
238
|
local_dir.entries.each do | local_file_or_subdir |
|
239
239
|
if !File.directory?( File.join( arguments[ :from ], local_file_or_subdir ) )
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
240
|
+
send_file_to_device(
|
241
|
+
File.join( arguments[ :from ],local_file_or_subdir ),
|
242
|
+
File.join( arguments[ :to ], File.basename(local_file_or_subdir))
|
243
|
+
) if local_file_or_subdir.include?(file)
|
244
244
|
transfered_files << "#{arguments[ :to ]}/#{File.basename(local_file_or_subdir)}"
|
245
245
|
elsif local_file_or_subdir != "." && local_file_or_subdir != ".."
|
246
246
|
fixture("file","mk_dir",{:file_name=>"#{arguments[ :to ]}/#{local_file_or_subdir}"})
|
@@ -251,9 +251,10 @@ module MobyBehaviour
|
|
251
251
|
else
|
252
252
|
Kernel::raise ArgumentError.new( "Argument :file not found") unless arguments.include?( :file )
|
253
253
|
fixture("file","mk_dir",{:file_name=>{:file_name=>arguments[ :to ]}})
|
254
|
-
|
255
|
-
|
256
|
-
|
254
|
+
send_file_to_device(
|
255
|
+
File.join(Dir.pwd,file),
|
256
|
+
File.join(arguments[ :to ],File.basename(file))
|
257
|
+
)
|
257
258
|
transfered_files << "#{arguments[ :to ]}/#{File.basename(file)}"
|
258
259
|
end
|
259
260
|
return transfered_files
|
@@ -300,40 +301,52 @@ module MobyBehaviour
|
|
300
301
|
|
301
302
|
private
|
302
303
|
|
303
|
-
def
|
304
|
-
if File::directory?(
|
305
|
-
FileUtils.mkdir_p
|
304
|
+
def receive_file_from_device(device_file,local_file)
|
305
|
+
if File::directory?(File.dirname(local_file))==false
|
306
|
+
FileUtils.mkdir_p File.dirname(local_file)
|
307
|
+
end
|
308
|
+
new_file = File.new(local_file, 'wb')
|
309
|
+
block_size = 100000
|
310
|
+
temp_size = block_size
|
311
|
+
offset = 0
|
312
|
+
while( temp_size == block_size )
|
313
|
+
temp_data = Base64.decode64( fixture("file", "read_file_part",
|
314
|
+
{:file_name => device_file,
|
315
|
+
:file_offset => offset,
|
316
|
+
:data_lenght => block_size
|
317
|
+
}) )
|
318
|
+
temp_size = temp_data.size
|
319
|
+
offset = offset + temp_size
|
320
|
+
new_file.write(temp_data)
|
306
321
|
end
|
307
|
-
new_file = File.open(target_folder + "/" + File.basename(source_file), 'w')
|
308
|
-
new_file << Base64.decode64( fixture("file", "read_file", {:file_name => source_file}) )
|
309
322
|
new_file.close
|
310
|
-
return
|
323
|
+
return local_file
|
311
324
|
end
|
312
325
|
|
313
|
-
def
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
326
|
+
def send_file_to_device(local_file, device_file)
|
327
|
+
fixture("file", "delete_file", {:file_name => device_file})
|
328
|
+
block_max_size = 100000
|
329
|
+
offset = 0
|
330
|
+
file_size = File.stat(local_file).size
|
331
|
+
|
332
|
+
file_to_be_sent = File.open(local_file,"rb")
|
333
|
+
while(offset < file_size)
|
334
|
+
block_size = file_size - offset
|
335
|
+
if(block_size > block_max_size)
|
336
|
+
block_size = block_max_size
|
337
|
+
end
|
338
|
+
buff = file_to_be_sent.readpartial(block_size)
|
339
|
+
if(buff != nil)
|
340
|
+
file_data = Base64.encode64(buff)
|
341
|
+
fixture("file","write_file_append",
|
342
|
+
{ :file_name=>device_file,
|
343
|
+
:file_data=>file_data,
|
344
|
+
:file_offset=>offset,
|
345
|
+
:data_lenght=>buff.size} )
|
346
|
+
offset = offset + buff.size
|
347
|
+
end
|
320
348
|
end
|
321
|
-
|
322
|
-
return file_data.to_s
|
323
|
-
=end
|
324
|
-
|
325
|
-
begin
|
326
|
-
|
327
|
-
# return file content as string
|
328
|
-
File.open( source_file, 'rb:binary' ).read
|
329
|
-
|
330
|
-
rescue
|
331
|
-
|
332
|
-
# return empty string in case of exception raised
|
333
|
-
''
|
334
|
-
|
335
|
-
end
|
336
|
-
|
349
|
+
file_to_be_sent.close
|
337
350
|
end
|
338
351
|
|
339
352
|
|
data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/multitouch.rb
CHANGED
@@ -274,7 +274,7 @@ module MobyBehaviour
|
|
274
274
|
# description: In case the given parameters are not valid.
|
275
275
|
#
|
276
276
|
# == info
|
277
|
-
# See method
|
277
|
+
# See [link="#QtMultitouch:rotate"]rotate[/link] method for more details
|
278
278
|
#
|
279
279
|
def one_point_rotate(radius, start_angle, rotate_direction, distance, speed, center_point = nil)
|
280
280
|
params = {:type => :one_point, :radius => radius, :rotate_direction => rotate_direction, :distance => distance, :speed => speed, :direction => start_angle}
|
@@ -164,26 +164,12 @@ module MobyBehaviour
|
|
164
164
|
|
165
165
|
end
|
166
166
|
|
167
|
-
# ==
|
168
|
-
#
|
169
|
-
# == returns
|
170
|
-
# String
|
171
|
-
# description: XML string containing crashed applications, their names, process ids and crash times
|
172
|
-
# example: "<tasMessage dateTime="2010.11.02 14:48:11.056" version="0.9.1" ><tasInfo id="1" name="Qt4.6.2" type="qt" ><object id="" name="QApplications" type="applications" ></object></tasInfo></tasMessage>"
|
167
|
+
# == nodoc
|
168
|
+
# NOT SUPPORTED ANYMORE
|
173
169
|
def list_crashed_apps
|
174
170
|
|
175
|
-
|
171
|
+
raise ArgumentError, 'Behaviour "list_crashed_apps" is no longer supported.'
|
176
172
|
|
177
|
-
begin
|
178
|
-
# execute the application control service request
|
179
|
-
apps = execute_command( MobyCommand::Application.new( :ListCrashedApps ) )
|
180
|
-
$logger.behaviour "PASS;Successfully listed crashed applications.;#{ id };sut;{};list_crashed_apps;"
|
181
|
-
rescue Exception => e
|
182
|
-
$logger.behaviour "FAIL;Failed to list crashed applications.;#{ id };sut;{};list_crashed_apps;"
|
183
|
-
raise RuntimeError, "Unable to list crashed applications: Exception: #{ e.message } (#{ e.class })"
|
184
|
-
end
|
185
|
-
|
186
|
-
apps
|
187
173
|
end
|
188
174
|
|
189
175
|
# == description
|
data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/synchronization.rb
CHANGED
@@ -133,7 +133,11 @@ module MobyBehaviour
|
|
133
133
|
|
134
134
|
ensure
|
135
135
|
|
136
|
-
|
136
|
+
begin
|
137
|
+
self.fixture( "signal", "remove_signals" )
|
138
|
+
rescue Exception => e
|
139
|
+
$logger.warning "Fixture removal failed. Message received: #{e.message}"
|
140
|
+
end
|
137
141
|
|
138
142
|
end
|
139
143
|
|
data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/application.rb
CHANGED
@@ -104,17 +104,6 @@ module MobyController
|
|
104
104
|
|
105
105
|
command_xml = make_xml_message( service_details, 'startedApps', nil )
|
106
106
|
|
107
|
-
# list crashed applications
|
108
|
-
when :ListCrashedApps
|
109
|
-
|
110
|
-
service_details = {
|
111
|
-
:service => 'listCrashedApps',
|
112
|
-
:name => @_application_name,
|
113
|
-
:id => @_application_uid
|
114
|
-
}
|
115
|
-
|
116
|
-
command_xml = make_xml_message( service_details, 'listCrashedApps', nil )
|
117
|
-
|
118
107
|
# shell command
|
119
108
|
when :Shell
|
120
109
|
|
@@ -18,7 +18,9 @@
|
|
18
18
|
############################################################################
|
19
19
|
|
20
20
|
# verify that TDriver is loaded
|
21
|
-
|
21
|
+
raise RuntimeError, 'This SUT plugin requires Testability Driver and cannot be launched in standalone mode' unless (defined?( MATTI ) || defined?( TDriver ))
|
22
|
+
|
23
|
+
raise RuntimeError, 'Installed Testability Driver is too old; please update to later version' unless defined?( TDriver::TestObjectFactory ) || defined?( TDriver::SUTFactory )
|
22
24
|
|
23
25
|
include TDriverVerify
|
24
26
|
|
@@ -97,7 +99,7 @@ module MobyPlugin
|
|
97
99
|
|
98
100
|
end
|
99
101
|
|
100
|
-
# returns SUT object - this method will be called from
|
102
|
+
# returns SUT object - this method will be called from TDriver::SUTFactory
|
101
103
|
def self.make_sut( sut_id )
|
102
104
|
|
103
105
|
# retrieve sut specific parameters
|
@@ -133,7 +135,7 @@ module MobyPlugin
|
|
133
135
|
sut_controller,
|
134
136
|
|
135
137
|
# pass test object factory class
|
136
|
-
|
138
|
+
TDriver::TestObjectFactory,
|
137
139
|
|
138
140
|
# pass sut id
|
139
141
|
sut_id
|
@@ -36,7 +36,8 @@ module MobyController
|
|
36
36
|
:socket_read_timeout,
|
37
37
|
:socket_write_timeout,
|
38
38
|
:deflate_service_request,
|
39
|
-
:
|
39
|
+
:deflate_minimum_size,
|
40
|
+
:deflate_compression_level
|
40
41
|
)
|
41
42
|
|
42
43
|
# TODO: better way to set the host and port parameters
|
@@ -86,14 +87,10 @@ module MobyController
|
|
86
87
|
# determine which inflate method to use
|
87
88
|
if _sut_parameters[ :win_native, false ].to_s.true?
|
88
89
|
|
89
|
-
@zlib_inflate_method = Zlib::Inflate.new( -Zlib::MAX_WBITS ).method( :inflate )
|
90
|
-
|
91
90
|
@inflate_method = method( :inflate_windows_native )
|
92
91
|
|
93
92
|
else
|
94
93
|
|
95
|
-
@zlib_inflate_method = Zlib::Inflate.method( :inflate )
|
96
|
-
|
97
94
|
@inflate_method = method( :inflate )
|
98
95
|
|
99
96
|
end
|
@@ -384,18 +381,17 @@ module MobyController
|
|
384
381
|
# inflate to be used in native windows env.
|
385
382
|
def inflate_windows_native( body )
|
386
383
|
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
else
|
394
|
-
|
395
|
-
tmp
|
384
|
+
unless body.empty?
|
385
|
+
|
386
|
+
zstream = Zlib::Inflate.new( -Zlib::MAX_WBITS )
|
387
|
+
body = zstream.inflate( body )
|
388
|
+
zstream.finish
|
389
|
+
zstream.close
|
396
390
|
|
397
391
|
end
|
398
392
|
|
393
|
+
body
|
394
|
+
|
399
395
|
end
|
400
396
|
|
401
397
|
# inflate to be used by default
|
@@ -405,15 +401,13 @@ module MobyController
|
|
405
401
|
tmp = body[ 4 .. -1 ]
|
406
402
|
|
407
403
|
unless tmp.empty?
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
else
|
412
|
-
|
413
|
-
tmp
|
414
|
-
|
404
|
+
|
405
|
+
tmp = Zlib::Inflate.inflate( tmp )
|
406
|
+
|
415
407
|
end
|
416
408
|
|
409
|
+
tmp
|
410
|
+
|
417
411
|
end
|
418
412
|
|
419
413
|
# enable hooking for performance measurement & debug logging
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testability-driver-qt-sut-plugin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TDriver team
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-09-14 00:00:00 +03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|