xamarin-test-cloud 1.1.1 → 1.1.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.
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:
|