flatware-rc 1.0.0.rc

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +132 -0
  4. data/bin/flatware +6 -0
  5. data/lib/flatware.rb +10 -0
  6. data/lib/flatware/checkpoint_handler.rb +34 -0
  7. data/lib/flatware/cli.rb +89 -0
  8. data/lib/flatware/cucumber.rb +34 -0
  9. data/lib/flatware/cucumber/checkpoint.rb +28 -0
  10. data/lib/flatware/cucumber/formatter.rb +112 -0
  11. data/lib/flatware/cucumber/result.rb +27 -0
  12. data/lib/flatware/cucumber/runtime.rb +36 -0
  13. data/lib/flatware/cucumber/scenario_decorator.rb +24 -0
  14. data/lib/flatware/cucumber/scenario_result.rb +38 -0
  15. data/lib/flatware/cucumber/step_result.rb +29 -0
  16. data/lib/flatware/formatters.rb +26 -0
  17. data/lib/flatware/formatters/cucumber/console.rb +48 -0
  18. data/lib/flatware/formatters/cucumber/console/summary.rb +66 -0
  19. data/lib/flatware/formatters/cucumber/http.rb +83 -0
  20. data/lib/flatware/formatters/rspec/console.rb +33 -0
  21. data/lib/flatware/pids.rb +25 -0
  22. data/lib/flatware/poller.rb +35 -0
  23. data/lib/flatware/processor_info.rb +24 -0
  24. data/lib/flatware/rspec.rb +28 -0
  25. data/lib/flatware/rspec/checkpoint.rb +29 -0
  26. data/lib/flatware/rspec/example_notification.rb +21 -0
  27. data/lib/flatware/rspec/examples_notification.rb +24 -0
  28. data/lib/flatware/rspec/formatter.rb +50 -0
  29. data/lib/flatware/rspec/summary.rb +40 -0
  30. data/lib/flatware/serialized_exception.rb +24 -0
  31. data/lib/flatware/sink.rb +105 -0
  32. data/lib/flatware/sink/client.rb +25 -0
  33. data/lib/flatware/socket.rb +181 -0
  34. data/lib/flatware/version.rb +3 -0
  35. data/lib/flatware/worker.rb +57 -0
  36. metadata +170 -0
@@ -0,0 +1,3 @@
1
+ module Flatware
2
+ VERSION = '1.0.0.rc'
3
+ end
@@ -0,0 +1,57 @@
1
+ require 'flatware/sink/client'
2
+ module Flatware
3
+ class Worker
4
+ attr_reader :id
5
+
6
+ def initialize(id, runner, dispatch_endpoint, sink_endpoint)
7
+ @id = id
8
+ @runner = runner
9
+ @sink = Sink::Client.new sink_endpoint
10
+ @task = Flatware.socket ZMQ::REQ, connect: dispatch_endpoint
11
+ end
12
+
13
+ def self.spawn(worker_count, runner, dispatch_endpoint, sink_endpoint)
14
+ worker_count.times do |i|
15
+ fork do
16
+ $0 = "flatware worker #{i}"
17
+ ENV['TEST_ENV_NUMBER'] = i.to_s
18
+ new(i, runner, dispatch_endpoint, sink_endpoint).listen
19
+ end
20
+ end
21
+ end
22
+
23
+ def listen
24
+ trap 'INT' do
25
+ Flatware.close!
26
+ @want_to_quit = true
27
+ exit(1)
28
+ end
29
+
30
+ Sink.client = sink
31
+ report_for_duty
32
+ loop do
33
+ job = task.recv
34
+ break if job == 'seppuku' or @want_to_quit
35
+ job.worker = id
36
+ sink.started job
37
+ begin
38
+ runner.run job.id, job.args
39
+ rescue => e
40
+ Flatware.log e
41
+ job.failed = true
42
+ end
43
+ sink.finished job
44
+ report_for_duty
45
+ end
46
+ Flatware.close unless @want_to_quit
47
+ end
48
+
49
+ private
50
+
51
+ attr_reader :fireable, :task, :sink, :runner
52
+
53
+ def report_for_duty
54
+ task.send [:ready, id]
55
+ end
56
+ end
57
+ end
metadata ADDED
@@ -0,0 +1,170 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flatware-rc
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.rc
5
+ platform: ruby
6
+ authors:
7
+ - Brian Dunn
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-06-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ffi-rzmq
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.13'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.13'
41
+ - !ruby/object:Gem::Dependency
42
+ name: cucumber
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.0
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '2.0'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 1.3.0
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '3.4'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '3.4'
75
+ - !ruby/object:Gem::Dependency
76
+ name: aruba
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.14'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.14'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rake
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 10.1.0
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 10.1.0
103
+ description: A distributed cucumber and rspec runner
104
+ email: brian@hashrocket.com
105
+ executables:
106
+ - flatware
107
+ extensions: []
108
+ extra_rdoc_files:
109
+ - LICENSE.txt
110
+ - README.md
111
+ files:
112
+ - LICENSE.txt
113
+ - README.md
114
+ - bin/flatware
115
+ - lib/flatware.rb
116
+ - lib/flatware/checkpoint_handler.rb
117
+ - lib/flatware/cli.rb
118
+ - lib/flatware/cucumber.rb
119
+ - lib/flatware/cucumber/checkpoint.rb
120
+ - lib/flatware/cucumber/formatter.rb
121
+ - lib/flatware/cucumber/result.rb
122
+ - lib/flatware/cucumber/runtime.rb
123
+ - lib/flatware/cucumber/scenario_decorator.rb
124
+ - lib/flatware/cucumber/scenario_result.rb
125
+ - lib/flatware/cucumber/step_result.rb
126
+ - lib/flatware/formatters.rb
127
+ - lib/flatware/formatters/cucumber/console.rb
128
+ - lib/flatware/formatters/cucumber/console/summary.rb
129
+ - lib/flatware/formatters/cucumber/http.rb
130
+ - lib/flatware/formatters/rspec/console.rb
131
+ - lib/flatware/pids.rb
132
+ - lib/flatware/poller.rb
133
+ - lib/flatware/processor_info.rb
134
+ - lib/flatware/rspec.rb
135
+ - lib/flatware/rspec/checkpoint.rb
136
+ - lib/flatware/rspec/example_notification.rb
137
+ - lib/flatware/rspec/examples_notification.rb
138
+ - lib/flatware/rspec/formatter.rb
139
+ - lib/flatware/rspec/summary.rb
140
+ - lib/flatware/serialized_exception.rb
141
+ - lib/flatware/sink.rb
142
+ - lib/flatware/sink/client.rb
143
+ - lib/flatware/socket.rb
144
+ - lib/flatware/version.rb
145
+ - lib/flatware/worker.rb
146
+ homepage: http://github.com/briandunn/flatware
147
+ licenses:
148
+ - MIT
149
+ metadata: {}
150
+ post_install_message:
151
+ rdoc_options: []
152
+ require_paths:
153
+ - lib
154
+ required_ruby_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">"
162
+ - !ruby/object:Gem::Version
163
+ version: 1.3.1
164
+ requirements: []
165
+ rubyforge_project:
166
+ rubygems_version: 2.5.1
167
+ signing_key:
168
+ specification_version: 4
169
+ summary: A distributed cucumber and rspec runner
170
+ test_files: []