xamarin-test-cloud 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d11eb39a746ce84d8cb000b9c65304a65fd24501
|
4
|
+
data.tar.gz: 619c93a8ecd27ec6b3dcd98215f8568690e2cfe6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d03e7dd12775e26b3c5ae568b75880da1dfb0a0d1fe7ef81650e0f49a881c196f6c8970be0cf718e85166146b36b978c9345e6713ed26fce86f55774b0032164
|
7
|
+
data.tar.gz: 7e0185532379f1296bfc38e38bbf305db426fd454464e54529ad56bbb685371ea71940834d9ae4b86c4d626898ce899c830e63af8935f7e948d70db6ddb27f6c
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'retriable'
|
2
|
-
require 'retriable/version'
|
2
|
+
require 'retriable/version'
|
3
3
|
|
4
4
|
module XamarinTestCloud
|
5
5
|
# A class to bridge the gap between retriable 1.x and 2.0.
|
@@ -25,3 +25,22 @@ module XamarinTestCloud
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
# Only in retriable 1.4.0 (so far).
|
29
|
+
unless Retriable.public_instance_methods.include?(:retriable)
|
30
|
+
require 'retriable/retry'
|
31
|
+
module Retriable
|
32
|
+
extend self
|
33
|
+
|
34
|
+
def retriable(opts = {}, &block)
|
35
|
+
raise LocalJumpError unless block_given?
|
36
|
+
|
37
|
+
Retry.new do |r|
|
38
|
+
r.tries = opts[:tries] if opts[:tries]
|
39
|
+
r.on = opts[:on] if opts[:on]
|
40
|
+
r.interval = opts[:interval] if opts[:interval]
|
41
|
+
r.timeout = opts[:timeout] if opts[:timeout]
|
42
|
+
r.on_retry = opts[:on_retry] if opts[:on_retry]
|
43
|
+
end.perform(&block)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module XamarinTestCloud
|
2
|
+
module Cukes
|
3
|
+
module Retriable
|
4
|
+
|
5
|
+
class Error < StandardError
|
6
|
+
end
|
7
|
+
|
8
|
+
def method_that_raises(n)
|
9
|
+
unless n >= 3
|
10
|
+
raise XamarinTestCloud::Cukes::Retriable::Error, "n: '#{n}' argument is < 3"
|
11
|
+
end
|
12
|
+
true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
World(XamarinTestCloud::Cukes::Retriable)
|
19
|
+
|
20
|
+
Then(/^I call retriable$/) do
|
21
|
+
|
22
|
+
tries = 5
|
23
|
+
interval = 0.05
|
24
|
+
|
25
|
+
on_retry = Proc.new do |_, try, elapsed_time, next_interval|
|
26
|
+
if elapsed_time && next_interval
|
27
|
+
puts "Updating device state attempt #{try} failed in '#{elapsed_time}'; will retry in '#{next_interval}'"
|
28
|
+
else
|
29
|
+
puts "Updating device state attempt #{try} failed; will retry in #{interval}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
on_opts =
|
34
|
+
{
|
35
|
+
:on_retry => on_retry,
|
36
|
+
:on => [XamarinTestCloud::Cukes::Retriable::Error]
|
37
|
+
}
|
38
|
+
|
39
|
+
retry_opts = XamarinTestCloud::RetriableOptions.tries_and_interval(tries, interval)
|
40
|
+
|
41
|
+
opts = on_opts.merge(retry_opts)
|
42
|
+
|
43
|
+
counter = 0
|
44
|
+
Retriable.retriable(opts) do
|
45
|
+
begin
|
46
|
+
method_that_raises(counter)
|
47
|
+
ensure
|
48
|
+
counter = counter + 1
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'open3'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
if RUBY_VERSION.to_i == 1
|
7
|
+
retriable_versions = ['1.3.3.1', '1.4.0', '1.4.1', '~> 1.3.3.1', ">= 1.3.3.1', '< 2.1"]
|
8
|
+
else
|
9
|
+
retriable_versions = ['1.3.3.1', '1.4.0', '1.4.1', '2.0.0', '2.0.1', '2.0.2', ">= 1.3.3.1', '< 2.1"]
|
10
|
+
end
|
11
|
+
|
12
|
+
system('rake', *['install'])
|
13
|
+
|
14
|
+
working_dir = File.dirname(__FILE__)
|
15
|
+
|
16
|
+
def log_header(message)
|
17
|
+
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
18
|
+
puts "\n### #{message} ###"
|
19
|
+
else
|
20
|
+
puts "\n\e[#{35}m### #{message} ###\e[0m"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
Dir.chdir working_dir do
|
25
|
+
|
26
|
+
retriable_versions.each do |version|
|
27
|
+
|
28
|
+
log_header("Testing retriable version '#{version}'")
|
29
|
+
|
30
|
+
FileUtils.rm_f('Gemfile.lock')
|
31
|
+
|
32
|
+
File.open('Gemfile', 'w') do |file|
|
33
|
+
file.puts "source 'https://rubygems.org'"
|
34
|
+
file.puts "gem 'retriable', '#{version}'"
|
35
|
+
file.puts "gem 'cucumber', '~> 1.3'"
|
36
|
+
file.puts "gem 'xamarin-test-cloud'"
|
37
|
+
end
|
38
|
+
|
39
|
+
env = { 'BUNDLE_GEMFILE' => 'Gemfile' }
|
40
|
+
|
41
|
+
system(env, 'bundle', *['install'], {:out => '/dev/null'})
|
42
|
+
|
43
|
+
exit_status = $?.exitstatus
|
44
|
+
unless exit_status == 0
|
45
|
+
puts "Could not bundle: exiting '#{exit_status}'"
|
46
|
+
exit exit_status
|
47
|
+
end
|
48
|
+
|
49
|
+
system(env, 'bundle', *['exec','cucumber'])
|
50
|
+
exit_status = $?.exitstatus
|
51
|
+
unless exit_status == 0
|
52
|
+
puts "Cucumbers failed for retriable '#{version}': exiting '#{exit_status}'"
|
53
|
+
exit exit_status
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xamarin-test-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Krukow
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-03
|
12
|
+
date: 2015-09-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -93,20 +93,6 @@ dependencies:
|
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: '1.6'
|
96
|
-
- !ruby/object:Gem::Dependency
|
97
|
-
name: mime-types
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "<"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '2.0'
|
103
|
-
type: :runtime
|
104
|
-
prerelease: false
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - "<"
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '2.0'
|
110
96
|
- !ruby/object:Gem::Dependency
|
111
97
|
name: retriable
|
112
98
|
requirement: !ruby/object:Gem::Requirement
|
@@ -280,6 +266,9 @@ files:
|
|
280
266
|
- test/ipa/features/support/env.rb
|
281
267
|
- test/ipa/features/support/hooks.rb
|
282
268
|
- test/ipa/features/support/launch.rb
|
269
|
+
- test/retriable/features/step_definitions/retriable_steps.rb
|
270
|
+
- test/retriable/features/support/env.rb
|
271
|
+
- test/retriable/run-tests.rb
|
283
272
|
- test/test_parser.rb
|
284
273
|
homepage: http://xamarin.com/test-cloud
|
285
274
|
licenses: []
|
@@ -300,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
300
289
|
version: '0'
|
301
290
|
requirements: []
|
302
291
|
rubyforge_project:
|
303
|
-
rubygems_version: 2.
|
292
|
+
rubygems_version: 2.4.8
|
304
293
|
signing_key:
|
305
294
|
specification_version: 4
|
306
295
|
summary: Command-line interface to Xamarin Test Cloud
|
@@ -310,5 +299,7 @@ test_files:
|
|
310
299
|
- test/ipa/features/support/env.rb
|
311
300
|
- test/ipa/features/support/hooks.rb
|
312
301
|
- test/ipa/features/support/launch.rb
|
302
|
+
- test/retriable/features/step_definitions/retriable_steps.rb
|
303
|
+
- test/retriable/features/support/env.rb
|
304
|
+
- test/retriable/run-tests.rb
|
313
305
|
- test/test_parser.rb
|
314
|
-
has_rdoc:
|