arturop-hydra 0.24.0 → 0.25.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +5 -1
- data/Rakefile +5 -5
- data/VERSION +1 -1
- data/{nulogy-hydra.gemspec → arturop-hydra.gemspec} +13 -19
- data/hydra.gemspec +82 -94
- data/lib/hydra/master.rb +1 -6
- data/lib/hydra/runner.rb +1 -1
- data/lib/hydra/sync.rb +1 -1
- data/lib/hydra/tasks.rb +5 -1
- data/lib/hydra/trace.rb +0 -5
- data/lib/hydra/worker.rb +9 -12
- metadata +16 -24
- data/lib/hydra/proxy_config.rb +0 -27
- data/lib/hydra/threadsafe_io.rb +0 -18
- data/test/fixtures/bad_proxy_config.yml +0 -4
- data/test/fixtures/proxy_config.yml +0 -4
- data/test/fixtures/proxy_config_http.yml +0 -4
- data/test/proxy_config_test.rb +0 -31
data/README.rdoc
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
= Hydra
|
2
2
|
|
3
|
-
Spread your tests over processors and/or multiple machines to test your code faster.
|
3
|
+
Spread your tests over processors and/or multiple machines to test your code faster.
|
4
|
+
|
5
|
+
Ruby 1.8 and 1.9*
|
6
|
+
|
7
|
+
\* Install gem 'test-unit' if using Ruby 1.9
|
4
8
|
|
5
9
|
== Description
|
6
10
|
|
data/Rakefile
CHANGED
@@ -7,13 +7,13 @@ begin
|
|
7
7
|
gem.name = "arturop-hydra"
|
8
8
|
gem.summary = %Q{Distributed testing toolkit}
|
9
9
|
gem.description = %Q{Spread your tests over multiple machines to test your code faster.}
|
10
|
-
gem.email = "
|
11
|
-
gem.homepage = "
|
12
|
-
gem.authors = ["Nick Gauthier", "
|
10
|
+
gem.email = "nick@smartlogicsolutions.com"
|
11
|
+
gem.homepage = "https://github.com/arturopie/hydra"
|
12
|
+
gem.authors = ["Nick Gauthier", "Arturo Pie"]
|
13
13
|
gem.add_development_dependency "shoulda", "= 2.10.3"
|
14
14
|
gem.add_development_dependency "rspec", "= 2.0.0.beta.19"
|
15
|
-
gem.add_development_dependency "cucumber", "=
|
16
|
-
gem.add_development_dependency "therubyracer", "= 0.
|
15
|
+
gem.add_development_dependency "cucumber", "= 0.9.2"
|
16
|
+
gem.add_development_dependency "therubyracer", "= 0.7.4"
|
17
17
|
end
|
18
18
|
Jeweler::GemcutterTasks.new
|
19
19
|
rescue LoadError
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.25.0
|
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name = "
|
8
|
-
s.version = "0.
|
7
|
+
s.name = "arturop-hydra"
|
8
|
+
s.version = "0.25.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Nick Gauthier", "
|
12
|
-
s.date = "2012-
|
11
|
+
s.authors = ["Nick Gauthier", "Arturo Pie"]
|
12
|
+
s.date = "2012-03-08"
|
13
13
|
s.description = "Spread your tests over multiple machines to test your code faster."
|
14
|
-
s.email = "
|
14
|
+
s.email = "nick@smartlogicsolutions.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
17
|
"README.rdoc",
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
"Rakefile",
|
25
25
|
"TODO",
|
26
26
|
"VERSION",
|
27
|
+
"arturop-hydra.gemspec",
|
27
28
|
"caliper.yml",
|
28
29
|
"hydra-icon-64x64.png",
|
29
30
|
"hydra.gemspec",
|
@@ -48,7 +49,6 @@ Gem::Specification.new do |s|
|
|
48
49
|
"lib/hydra/message/worker_messages.rb",
|
49
50
|
"lib/hydra/messaging_io.rb",
|
50
51
|
"lib/hydra/pipe.rb",
|
51
|
-
"lib/hydra/proxy_config.rb",
|
52
52
|
"lib/hydra/runner.rb",
|
53
53
|
"lib/hydra/runner_listener/abstract.rb",
|
54
54
|
"lib/hydra/safe_fork.rb",
|
@@ -58,13 +58,10 @@ Gem::Specification.new do |s|
|
|
58
58
|
"lib/hydra/stdio.rb",
|
59
59
|
"lib/hydra/sync.rb",
|
60
60
|
"lib/hydra/tasks.rb",
|
61
|
-
"lib/hydra/threadsafe_io.rb",
|
62
61
|
"lib/hydra/tmpdir.rb",
|
63
62
|
"lib/hydra/trace.rb",
|
64
63
|
"lib/hydra/worker.rb",
|
65
|
-
"nulogy-hydra.gemspec",
|
66
64
|
"test/fixtures/assert_true.rb",
|
67
|
-
"test/fixtures/bad_proxy_config.yml",
|
68
65
|
"test/fixtures/config.yml",
|
69
66
|
"test/fixtures/conflicting.rb",
|
70
67
|
"test/fixtures/features/step_definitions.rb",
|
@@ -76,8 +73,6 @@ Gem::Specification.new do |s|
|
|
76
73
|
"test/fixtures/json_data.json",
|
77
74
|
"test/fixtures/many_outputs_to_console.rb",
|
78
75
|
"test/fixtures/master_listeners.rb",
|
79
|
-
"test/fixtures/proxy_config.yml",
|
80
|
-
"test/fixtures/proxy_config_http.yml",
|
81
76
|
"test/fixtures/runner_listeners.rb",
|
82
77
|
"test/fixtures/slow.rb",
|
83
78
|
"test/fixtures/sync_test.rb",
|
@@ -89,7 +84,6 @@ Gem::Specification.new do |s|
|
|
89
84
|
"test/master_test.rb",
|
90
85
|
"test/message_test.rb",
|
91
86
|
"test/pipe_test.rb",
|
92
|
-
"test/proxy_config_test.rb",
|
93
87
|
"test/runner_test.rb",
|
94
88
|
"test/ssh_test.rb",
|
95
89
|
"test/sync_test.rb",
|
@@ -97,7 +91,7 @@ Gem::Specification.new do |s|
|
|
97
91
|
"test/test_helper.rb",
|
98
92
|
"test/worker_test.rb"
|
99
93
|
]
|
100
|
-
s.homepage = "
|
94
|
+
s.homepage = "https://github.com/arturopie/hydra"
|
101
95
|
s.require_paths = ["lib"]
|
102
96
|
s.rubygems_version = "1.8.15"
|
103
97
|
s.summary = "Distributed testing toolkit"
|
@@ -108,19 +102,19 @@ Gem::Specification.new do |s|
|
|
108
102
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
109
103
|
s.add_development_dependency(%q<shoulda>, ["= 2.10.3"])
|
110
104
|
s.add_development_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
|
111
|
-
s.add_development_dependency(%q<cucumber>, ["=
|
112
|
-
s.add_development_dependency(%q<therubyracer>, ["= 0.
|
105
|
+
s.add_development_dependency(%q<cucumber>, ["= 0.9.2"])
|
106
|
+
s.add_development_dependency(%q<therubyracer>, ["= 0.7.4"])
|
113
107
|
else
|
114
108
|
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
|
115
109
|
s.add_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
|
116
|
-
s.add_dependency(%q<cucumber>, ["=
|
117
|
-
s.add_dependency(%q<therubyracer>, ["= 0.
|
110
|
+
s.add_dependency(%q<cucumber>, ["= 0.9.2"])
|
111
|
+
s.add_dependency(%q<therubyracer>, ["= 0.7.4"])
|
118
112
|
end
|
119
113
|
else
|
120
114
|
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
|
121
115
|
s.add_dependency(%q<rspec>, ["= 2.0.0.beta.19"])
|
122
|
-
s.add_dependency(%q<cucumber>, ["=
|
123
|
-
s.add_dependency(%q<therubyracer>, ["= 0.
|
116
|
+
s.add_dependency(%q<cucumber>, ["= 0.9.2"])
|
117
|
+
s.add_dependency(%q<therubyracer>, ["= 0.7.4"])
|
124
118
|
end
|
125
119
|
end
|
126
120
|
|
data/hydra.gemspec
CHANGED
@@ -1,113 +1,101 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.23.
|
7
|
+
s.name = "hydra"
|
8
|
+
s.version = "0.23.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Nick Gauthier"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Nick Gauthier", "Arturo Pie"]
|
12
|
+
s.date = "2012-03-08"
|
13
|
+
s.description = "Spread your tests over multiple machines to test your code faster."
|
14
|
+
s.email = "nick@smartlogicsolutions.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
|
18
|
-
|
17
|
+
"README.rdoc",
|
18
|
+
"TODO"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
".document",
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
s.require_paths = ["lib"]
|
86
|
-
s.rubygems_version = %q{1.3.7}
|
87
|
-
s.summary = %q{Distributed testing toolkit}
|
88
|
-
s.test_files = [
|
22
|
+
"LICENSE",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"TODO",
|
26
|
+
"VERSION",
|
27
|
+
"caliper.yml",
|
28
|
+
"hydra-icon-64x64.png",
|
29
|
+
"hydra.gemspec",
|
30
|
+
"hydra_gray.png",
|
31
|
+
"lib/hydra.rb",
|
32
|
+
"lib/hydra/cucumber/formatter.rb",
|
33
|
+
"lib/hydra/cucumber/partial_html.rb",
|
34
|
+
"lib/hydra/hash.rb",
|
35
|
+
"lib/hydra/js/lint.js",
|
36
|
+
"lib/hydra/listener/abstract.rb",
|
37
|
+
"lib/hydra/listener/cucumber.css",
|
38
|
+
"lib/hydra/listener/cucumber_html_report.rb",
|
39
|
+
"lib/hydra/listener/jquery-min.js",
|
40
|
+
"lib/hydra/listener/minimal_output.rb",
|
41
|
+
"lib/hydra/listener/notifier.rb",
|
42
|
+
"lib/hydra/listener/progress_bar.rb",
|
43
|
+
"lib/hydra/listener/report_generator.rb",
|
44
|
+
"lib/hydra/master.rb",
|
45
|
+
"lib/hydra/message.rb",
|
46
|
+
"lib/hydra/message/master_messages.rb",
|
47
|
+
"lib/hydra/message/runner_messages.rb",
|
48
|
+
"lib/hydra/message/worker_messages.rb",
|
49
|
+
"lib/hydra/messaging_io.rb",
|
50
|
+
"lib/hydra/pipe.rb",
|
51
|
+
"lib/hydra/runner.rb",
|
52
|
+
"lib/hydra/runner_listener/abstract.rb",
|
53
|
+
"lib/hydra/safe_fork.rb",
|
54
|
+
"lib/hydra/spec/autorun_override.rb",
|
55
|
+
"lib/hydra/spec/hydra_formatter.rb",
|
56
|
+
"lib/hydra/ssh.rb",
|
57
|
+
"lib/hydra/stdio.rb",
|
58
|
+
"lib/hydra/sync.rb",
|
59
|
+
"lib/hydra/tasks.rb",
|
60
|
+
"lib/hydra/tmpdir.rb",
|
61
|
+
"lib/hydra/trace.rb",
|
62
|
+
"lib/hydra/worker.rb",
|
63
|
+
"test/fixtures/assert_true.rb",
|
64
|
+
"test/fixtures/config.yml",
|
65
|
+
"test/fixtures/conflicting.rb",
|
66
|
+
"test/fixtures/features/step_definitions.rb",
|
67
|
+
"test/fixtures/features/write_alternate_file.feature",
|
68
|
+
"test/fixtures/features/write_file.feature",
|
69
|
+
"test/fixtures/hello_world.rb",
|
70
|
+
"test/fixtures/hydra_worker_init.rb",
|
71
|
+
"test/fixtures/js_file.js",
|
72
|
+
"test/fixtures/json_data.json",
|
73
|
+
"test/fixtures/many_outputs_to_console.rb",
|
74
|
+
"test/fixtures/master_listeners.rb",
|
75
|
+
"test/fixtures/runner_listeners.rb",
|
76
|
+
"test/fixtures/slow.rb",
|
77
|
+
"test/fixtures/sync_test.rb",
|
78
|
+
"test/fixtures/task_test_config.yml",
|
79
|
+
"test/fixtures/write_file.rb",
|
80
|
+
"test/fixtures/write_file_alternate_spec.rb",
|
81
|
+
"test/fixtures/write_file_spec.rb",
|
82
|
+
"test/fixtures/write_file_with_pending_spec.rb",
|
83
|
+
"test/master_test.rb",
|
84
|
+
"test/message_test.rb",
|
89
85
|
"test/pipe_test.rb",
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
"test/fixtures/assert_true.rb",
|
97
|
-
"test/fixtures/slow.rb",
|
98
|
-
"test/fixtures/write_file_spec.rb",
|
99
|
-
"test/fixtures/conflicting.rb",
|
100
|
-
"test/fixtures/write_file_with_pending_spec.rb",
|
101
|
-
"test/fixtures/write_file.rb",
|
102
|
-
"test/message_test.rb",
|
103
|
-
"test/test_helper.rb",
|
104
|
-
"test/master_test.rb",
|
105
|
-
"test/runner_test.rb",
|
106
|
-
"test/worker_test.rb"
|
86
|
+
"test/runner_test.rb",
|
87
|
+
"test/ssh_test.rb",
|
88
|
+
"test/sync_test.rb",
|
89
|
+
"test/task_test.rb",
|
90
|
+
"test/test_helper.rb",
|
91
|
+
"test/worker_test.rb"
|
107
92
|
]
|
93
|
+
s.homepage = "https://github.com/arturopie/hydra"
|
94
|
+
s.require_paths = ["lib"]
|
95
|
+
s.rubygems_version = "1.8.15"
|
96
|
+
s.summary = "Distributed testing toolkit"
|
108
97
|
|
109
98
|
if s.respond_to? :specification_version then
|
110
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
111
99
|
s.specification_version = 3
|
112
100
|
|
113
101
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
data/lib/hydra/master.rb
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
require 'hydra/hash'
|
2
2
|
require 'open3'
|
3
3
|
require 'hydra/tmpdir'
|
4
|
-
require 'hydra/proxy_config'
|
5
4
|
require 'erb'
|
6
5
|
require 'yaml'
|
7
|
-
require 'hydra/threadsafe_io'
|
8
6
|
|
9
7
|
module Hydra #:nodoc:
|
10
8
|
# Hydra class responsible for delegate work down to workers.
|
@@ -36,9 +34,6 @@ module Hydra #:nodoc:
|
|
36
34
|
# * :autosort
|
37
35
|
# * Set to false to disable automatic sorting by historical run-time per file
|
38
36
|
def initialize(opts = { })
|
39
|
-
|
40
|
-
$stdout = ThreadsafeIO.new($stdout)
|
41
|
-
|
42
37
|
opts.stringify_keys!
|
43
38
|
config_file = opts.delete('config') { nil }
|
44
39
|
if config_file
|
@@ -50,7 +45,7 @@ module Hydra #:nodoc:
|
|
50
45
|
end
|
51
46
|
|
52
47
|
begin
|
53
|
-
config_yml =
|
48
|
+
config_yml = YAML::load(config_erb)
|
54
49
|
rescue StandardError => e
|
55
50
|
raise(YmlLoadError,"config file was found, but could not be parsed.\n#{$!.inspect}")
|
56
51
|
end
|
data/lib/hydra/runner.rb
CHANGED
@@ -227,7 +227,7 @@ module Hydra #:nodoc:
|
|
227
227
|
}
|
228
228
|
context['reportErrors'] = lambda{|js_errors|
|
229
229
|
js_errors.each do |e|
|
230
|
-
e =
|
230
|
+
e = V8::To.rb(e)
|
231
231
|
errors << "\n\e[1;31mJSLINT: #{file}\e[0m"
|
232
232
|
errors << " Error at line #{e['line'].to_i + 1} " +
|
233
233
|
"character #{e['character'].to_i + 1}: \e[1;33m#{e['reason']}\e[0m"
|
data/lib/hydra/sync.rb
CHANGED
@@ -60,7 +60,7 @@ module Hydra #:nodoc:
|
|
60
60
|
opts.stringify_keys!
|
61
61
|
config_file = opts.delete('config') { nil }
|
62
62
|
if config_file
|
63
|
-
opts.merge!(
|
63
|
+
opts.merge!(YAML.load_file(config_file).stringify_keys!)
|
64
64
|
end
|
65
65
|
@verbose = opts.fetch('verbose') { false }
|
66
66
|
@sync = opts.fetch('sync') { {} }
|
data/lib/hydra/tasks.rb
CHANGED
@@ -2,6 +2,8 @@ require 'open3'
|
|
2
2
|
module Hydra #:nodoc:
|
3
3
|
# Hydra Task Common attributes and methods
|
4
4
|
class Task
|
5
|
+
include Rake::DSL if defined?(Rake::DSL)
|
6
|
+
|
5
7
|
# Name of the task. Default 'hydra'
|
6
8
|
attr_accessor :name
|
7
9
|
|
@@ -130,6 +132,8 @@ module Hydra #:nodoc:
|
|
130
132
|
|
131
133
|
start = Time.now if @show_time
|
132
134
|
|
135
|
+
puts '********************'
|
136
|
+
puts @options.inspect
|
133
137
|
master = Hydra::Master.new(@opts)
|
134
138
|
|
135
139
|
$stdout.puts "\nFinished in #{'%.6f' % (Time.now - start)} seconds." if @show_time
|
@@ -278,7 +282,7 @@ module Hydra #:nodoc:
|
|
278
282
|
def define
|
279
283
|
desc "Run #{@name} remotely on all workers"
|
280
284
|
task "hydra:remote:#{@name}" do
|
281
|
-
config =
|
285
|
+
config = YAML.load_file(@config)
|
282
286
|
environment = config.fetch('environment') { 'test' }
|
283
287
|
workers = config.fetch('workers') { [] }
|
284
288
|
workers = workers.select{|w| w['type'] == 'ssh'}
|
data/lib/hydra/trace.rb
CHANGED
@@ -17,11 +17,6 @@ module Hydra #:nodoc:
|
|
17
17
|
# Checks to ensure we're running verbosely.
|
18
18
|
def trace(str)
|
19
19
|
$stdout.write "#{Time.now.to_f} #{self.class._traceable_prefix}| #{str}\n" if @verbose
|
20
|
-
|
21
|
-
prefix = self.class._traceable_prefix.upcase
|
22
|
-
unless (prefix == 'MASTER' || prefix == 'SYNC')
|
23
|
-
$stdout.write "\n"
|
24
|
-
end
|
25
20
|
end
|
26
21
|
end
|
27
22
|
end
|
data/lib/hydra/worker.rb
CHANGED
@@ -23,7 +23,14 @@ module Hydra #:nodoc:
|
|
23
23
|
|
24
24
|
load_worker_initializer
|
25
25
|
|
26
|
-
|
26
|
+
@runner_event_listeners = Array(opts.fetch(:runner_listeners) { nil })
|
27
|
+
|
28
|
+
@runner_event_listeners.select{|l| l.is_a? String}.each do |l|
|
29
|
+
@runner_event_listeners.delete_at(@runner_event_listeners.index(l))
|
30
|
+
listener = Array.wrap eval(l)
|
31
|
+
|
32
|
+
@runner_event_listeners << listener[0] if listener[0].is_a?(Hydra::RunnerListener::Abstract)
|
33
|
+
end
|
27
34
|
|
28
35
|
@runner_log_file = opts.fetch(:runner_log_file) { nil }
|
29
36
|
|
@@ -38,7 +45,7 @@ module Hydra #:nodoc:
|
|
38
45
|
def load_worker_initializer
|
39
46
|
if File.exist?('./hydra_worker_init.rb')
|
40
47
|
trace('Requiring hydra_worker_init.rb')
|
41
|
-
require 'hydra_worker_init'
|
48
|
+
require './hydra_worker_init'
|
42
49
|
else
|
43
50
|
trace('hydra_worker_init.rb not present')
|
44
51
|
end
|
@@ -162,15 +169,5 @@ module Hydra #:nodoc:
|
|
162
169
|
end
|
163
170
|
return idle_r
|
164
171
|
end
|
165
|
-
|
166
|
-
def eval_listeners runner_listeners
|
167
|
-
@runner_event_listeners = Array(runner_listeners)
|
168
|
-
@runner_event_listeners.select{|l| l.is_a? String}.each do |l|
|
169
|
-
@runner_event_listeners.delete_at(@runner_event_listeners.index(l))
|
170
|
-
listener = eval(l)
|
171
|
-
@runner_event_listeners << listener if listener.is_a?(Hydra::RunnerListener::Abstract)
|
172
|
-
@runner_event_listeners << listener[0] if listener.is_a?(Array) and listener[0].is_a?(Hydra::RunnerListener::Abstract)
|
173
|
-
end
|
174
|
-
end
|
175
172
|
end
|
176
173
|
end
|
metadata
CHANGED
@@ -1,24 +1,22 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arturop-hydra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 123
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 25
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.25.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Nick Gauthier
|
14
|
-
- Justin Fitzsimmons
|
15
|
-
- Victor Savkin
|
16
14
|
- Arturo Pie
|
17
15
|
autorequire:
|
18
16
|
bindir: bin
|
19
17
|
cert_chain: []
|
20
18
|
|
21
|
-
date: 2012-
|
19
|
+
date: 2012-03-08 00:00:00 Z
|
22
20
|
dependencies:
|
23
21
|
- !ruby/object:Gem::Dependency
|
24
22
|
name: shoulda
|
@@ -62,12 +60,12 @@ dependencies:
|
|
62
60
|
requirements:
|
63
61
|
- - "="
|
64
62
|
- !ruby/object:Gem::Version
|
65
|
-
hash:
|
63
|
+
hash: 63
|
66
64
|
segments:
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
70
|
-
version:
|
65
|
+
- 0
|
66
|
+
- 9
|
67
|
+
- 2
|
68
|
+
version: 0.9.2
|
71
69
|
type: :development
|
72
70
|
version_requirements: *id003
|
73
71
|
- !ruby/object:Gem::Dependency
|
@@ -78,16 +76,16 @@ dependencies:
|
|
78
76
|
requirements:
|
79
77
|
- - "="
|
80
78
|
- !ruby/object:Gem::Version
|
81
|
-
hash:
|
79
|
+
hash: 11
|
82
80
|
segments:
|
83
81
|
- 0
|
84
|
-
-
|
85
|
-
-
|
86
|
-
version: 0.
|
82
|
+
- 7
|
83
|
+
- 4
|
84
|
+
version: 0.7.4
|
87
85
|
type: :development
|
88
86
|
version_requirements: *id004
|
89
87
|
description: Spread your tests over multiple machines to test your code faster.
|
90
|
-
email:
|
88
|
+
email: nick@smartlogicsolutions.com
|
91
89
|
executables: []
|
92
90
|
|
93
91
|
extensions: []
|
@@ -103,6 +101,7 @@ files:
|
|
103
101
|
- Rakefile
|
104
102
|
- TODO
|
105
103
|
- VERSION
|
104
|
+
- arturop-hydra.gemspec
|
106
105
|
- caliper.yml
|
107
106
|
- hydra-icon-64x64.png
|
108
107
|
- hydra.gemspec
|
@@ -127,7 +126,6 @@ files:
|
|
127
126
|
- lib/hydra/message/worker_messages.rb
|
128
127
|
- lib/hydra/messaging_io.rb
|
129
128
|
- lib/hydra/pipe.rb
|
130
|
-
- lib/hydra/proxy_config.rb
|
131
129
|
- lib/hydra/runner.rb
|
132
130
|
- lib/hydra/runner_listener/abstract.rb
|
133
131
|
- lib/hydra/safe_fork.rb
|
@@ -137,13 +135,10 @@ files:
|
|
137
135
|
- lib/hydra/stdio.rb
|
138
136
|
- lib/hydra/sync.rb
|
139
137
|
- lib/hydra/tasks.rb
|
140
|
-
- lib/hydra/threadsafe_io.rb
|
141
138
|
- lib/hydra/tmpdir.rb
|
142
139
|
- lib/hydra/trace.rb
|
143
140
|
- lib/hydra/worker.rb
|
144
|
-
- nulogy-hydra.gemspec
|
145
141
|
- test/fixtures/assert_true.rb
|
146
|
-
- test/fixtures/bad_proxy_config.yml
|
147
142
|
- test/fixtures/config.yml
|
148
143
|
- test/fixtures/conflicting.rb
|
149
144
|
- test/fixtures/features/step_definitions.rb
|
@@ -155,8 +150,6 @@ files:
|
|
155
150
|
- test/fixtures/json_data.json
|
156
151
|
- test/fixtures/many_outputs_to_console.rb
|
157
152
|
- test/fixtures/master_listeners.rb
|
158
|
-
- test/fixtures/proxy_config.yml
|
159
|
-
- test/fixtures/proxy_config_http.yml
|
160
153
|
- test/fixtures/runner_listeners.rb
|
161
154
|
- test/fixtures/slow.rb
|
162
155
|
- test/fixtures/sync_test.rb
|
@@ -168,14 +161,13 @@ files:
|
|
168
161
|
- test/master_test.rb
|
169
162
|
- test/message_test.rb
|
170
163
|
- test/pipe_test.rb
|
171
|
-
- test/proxy_config_test.rb
|
172
164
|
- test/runner_test.rb
|
173
165
|
- test/ssh_test.rb
|
174
166
|
- test/sync_test.rb
|
175
167
|
- test/task_test.rb
|
176
168
|
- test/test_helper.rb
|
177
169
|
- test/worker_test.rb
|
178
|
-
homepage:
|
170
|
+
homepage: https://github.com/arturopie/hydra
|
179
171
|
licenses: []
|
180
172
|
|
181
173
|
post_install_message:
|
data/lib/hydra/proxy_config.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'net/http'
|
3
|
-
|
4
|
-
module Hydra
|
5
|
-
class UnknownProxyType < RuntimeError
|
6
|
-
|
7
|
-
end
|
8
|
-
|
9
|
-
class ProxyConfig
|
10
|
-
def self.load(config_yml)
|
11
|
-
config = YAML::load(config_yml)
|
12
|
-
if config.has_key?('proxy')
|
13
|
-
proxy_info = config['proxy']
|
14
|
-
#only file supported so far
|
15
|
-
if proxy_info['type'] == "file"
|
16
|
-
YAML::load_file(proxy_info['path'])
|
17
|
-
elsif proxy_info['type'] == "http"
|
18
|
-
YAML::load(Net::HTTP.get(URI.parse(proxy_info['path'])))
|
19
|
-
else
|
20
|
-
raise UnknownProxyType.new("Proxy config file does not know what to do with type '#{proxy_info["type"]}'.")
|
21
|
-
end
|
22
|
-
else
|
23
|
-
config
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/lib/hydra/threadsafe_io.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'thread'
|
2
|
-
require 'fcntl'
|
3
|
-
|
4
|
-
module Hydra
|
5
|
-
class ThreadsafeIO < IO
|
6
|
-
def initialize(existing_io)
|
7
|
-
fd = existing_io.fcntl(Fcntl::F_DUPFD)
|
8
|
-
super(fd)
|
9
|
-
@mutex = Mutex.new
|
10
|
-
end
|
11
|
-
|
12
|
-
def write(*args)
|
13
|
-
@mutex.synchronize do
|
14
|
-
super(*args)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/test/proxy_config_test.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
-
require 'yaml'
|
3
|
-
require 'hydra/proxy_config'
|
4
|
-
|
5
|
-
class ProxyConfigTest < Test::Unit::TestCase
|
6
|
-
|
7
|
-
context "proxy config" do
|
8
|
-
should "fetch and parse yml from a file source" do
|
9
|
-
assert_equal YAML::load_file("test/fixtures/config.yml"), Hydra::ProxyConfig.load(File.read("test/fixtures/proxy_config.yml"))
|
10
|
-
end
|
11
|
-
should "fetch and parse yml from a http source" do
|
12
|
-
class Net::HTTP
|
13
|
-
def self.get(path)
|
14
|
-
return File.new("test/fixtures/config.yml", "r").read
|
15
|
-
end
|
16
|
-
end
|
17
|
-
assert_equal YAML::load_file("test/fixtures/config.yml"), Hydra::ProxyConfig.load(File.read("test/fixtures/proxy_config_http.yml"))
|
18
|
-
end
|
19
|
-
should "raise exception when type is unknown" do
|
20
|
-
assert_raise Hydra::UnknownProxyType do
|
21
|
-
Hydra::ProxyConfig.load(File.read("test/fixtures/bad_proxy_config.yml"))
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
context "normal hydra config" do
|
27
|
-
should "return unserialized configuration" do
|
28
|
-
assert_equal YAML::load_file("test/fixtures/config.yml"), Hydra::ProxyConfig.load(File.read("test/fixtures/config.yml"))
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|