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: ec0edc792af50fb0dad0d52f46e083cf16e1910c
4
- data.tar.gz: 6948d0fe557738b1cd245563204e266b3fad3431
3
+ metadata.gz: d11eb39a746ce84d8cb000b9c65304a65fd24501
4
+ data.tar.gz: 619c93a8ecd27ec6b3dcd98215f8568690e2cfe6
5
5
  SHA512:
6
- metadata.gz: 46881134ff8500aa412ee302d6e50203ce0ec9477b37ae159a03a8c7a02c5147c993c8aa7c59563f23eaa21a59047e685f1d22b49715cdd7063fc6463ab40d10
7
- data.tar.gz: 5bc086e7a6dfd12f8e65b28c27a9aaa5c52d3cca58dfbb82829f7f43cd662998f8e479729c5839cff80f26ed8fb36fb94807e35b7a2817844598786385865d3f
6
+ metadata.gz: d03e7dd12775e26b3c5ae568b75880da1dfb0a0d1fe7ef81650e0f49a881c196f6c8970be0cf718e85166146b36b978c9345e6713ed26fce86f55774b0032164
7
+ data.tar.gz: 7e0185532379f1296bfc38e38bbf305db426fd454464e54529ad56bbb685371ea71940834d9ae4b86c4d626898ce899c830e63af8935f7e948d70db6ddb27f6c
@@ -1,5 +1,5 @@
1
1
  require 'retriable'
2
- require 'retriable/version' # needed in 1.x. In 2.x auto required.
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
@@ -1,3 +1,3 @@
1
1
  module XamarinTestCloud
2
- VERSION = '1.1.1'
2
+ VERSION = '1.1.2'
3
3
  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,2 @@
1
+ require 'xamarin-test-cloud/version'
2
+ require 'xamarin-test-cloud/retriable_options'
@@ -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.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-30 00:00:00.000000000 Z
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.2.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: