flatware-rc 1.0.0.rc

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.
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: []