rrrspec-client 0.4.2 → 0.4.3

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: 68980fcfaebf4d6eecc9ab312862add3222cefb4
4
- data.tar.gz: 0024f08d44f75f481645d833d84a41d5acbeb337
3
+ metadata.gz: 0e56a821f500236e0b3045d395905afd91337cbd
4
+ data.tar.gz: 491eaccfa8a43c4564cce40fff21adcd6af147a4
5
5
  SHA512:
6
- metadata.gz: c36f5504895a7cf0dcbb39aec58c8c0c572202f8408efd0c6bdec275b9a40ba4eb13dd3ce99d30dee36d9aa4ad7721b66022dc7da71b742d21494f6e68059799
7
- data.tar.gz: 0de784b636ce34ba850a38fdd0a782ca36bb1c7138aa25998b1acf7f641e47b54ad94f2659983d80b0bf904bad33ab3fc4eb6c84a0b4a09cd99abaafdf6dae1b
6
+ metadata.gz: f834f798a0b91e4505f542db7ac549ae68f4d56d739b030e3d85330937af3d62de3fe42a3a891c6ac7ebe16249df62dc0aa99918ef2c06381929def1324183bd
7
+ data.tar.gz: 81c45ae93e18aa2639db4eb5d9ecc2128267d45168a9d5325ff5ec2f059eb6187280f285b7a4e8edd1f72fcc2dd19dc9bf42eb3485b6ea3bbbee894b652d1049
@@ -0,0 +1,13 @@
1
+ require 'rspec/core/formatters/base_text_formatter'
2
+
3
+ module RRRSpec
4
+ module Client
5
+ class BaseTextFormatter < RSpec::Core::Formatters::BaseTextFormatter
6
+ RSpec::Core::Formatters.register(self, :message, :dump_summary, :dump_failures, :dump_pending, :seed)
7
+
8
+ def close(_notification)
9
+ # Do not close `output` .
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  require 'rspec'
2
- require 'rspec/core/formatters/base_text_formatter'
2
+ require 'rrrspec/client/base_text_formatter'
3
3
 
4
4
  module RRRSpec
5
5
  module Client
@@ -9,19 +9,23 @@ module RRRSpec
9
9
  @configuration = RSpec.configuration
10
10
  @world = RSpec.world
11
11
  @before_suite_run = false
12
+ @stdout_buffer = StringIO.new
13
+ @stderr_buffer = StringIO.new
12
14
  end
13
15
 
14
16
  def exc_safe_replace_stdouts
15
- outbuf = ''
16
- errbuf = ''
17
- $stdout = StringIO.new(outbuf)
18
- $stderr = StringIO.new(errbuf)
17
+ @stdout_buffer.string = ''
18
+ @stderr_buffer.string = ''
19
+ $stdout = @stdout_buffer
20
+ $stderr = @stderr_buffer
19
21
  begin
20
22
  yield
21
23
  rescue Exception
22
24
  $stdout.puts $!
23
25
  $stdout.puts $!.backtrace.join("\n")
24
26
  end
27
+ outbuf = @stdout_buffer.string
28
+ errbuf = @stderr_buffer.string
25
29
  [outbuf, errbuf]
26
30
  ensure
27
31
  $stdout = STDOUT
@@ -33,6 +37,9 @@ module RRRSpec
33
37
  outbuf, errbuf = exc_safe_replace_stdouts do
34
38
  begin
35
39
  @options.configure(@configuration)
40
+ @configuration.output_stream = $stdout
41
+ @configuration.error_stream = $stderr
42
+ @configuration.default_formatter = BaseTextFormatter
36
43
  @configuration.files_to_run = [filepath]
37
44
  @configuration.load_spec_files
38
45
  @world.announce_filters
@@ -54,9 +61,6 @@ module RRRSpec
54
61
  def run(*formatters)
55
62
  status = false
56
63
  outbuf, errbuf = exc_safe_replace_stdouts do
57
- @configuration.output_stream = $stdout
58
- @configuration.error_stream = $stderr
59
- @configuration.add_formatter(RSpec::Core::Formatters::BaseTextFormatter)
60
64
  formatters.each do |formatter|
61
65
  @configuration.add_formatter(formatter)
62
66
  end
@@ -1,5 +1,5 @@
1
1
  module RRRSpec
2
2
  module Client
3
- VERSION = "0.4.2"
3
+ VERSION = "0.4.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rrrspec-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaya Suzuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-30 00:00:00.000000000 Z
11
+ date: 2016-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 0.18.0
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: 0.18.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: uuidtools
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -159,13 +159,11 @@ executables:
159
159
  extensions: []
160
160
  extra_rdoc_files: []
161
161
  files:
162
- - ".rspec"
163
- - Gemfile
164
- - Rakefile
165
162
  - bin/rrrspec
166
163
  - bin/rrrspec-client
167
164
  - lib/rrrspec.rb
168
165
  - lib/rrrspec/client.rb
166
+ - lib/rrrspec/client/base_text_formatter.rb
169
167
  - lib/rrrspec/client/cli.rb
170
168
  - lib/rrrspec/client/configuration.rb
171
169
  - lib/rrrspec/client/rspec_runner.rb
@@ -175,11 +173,6 @@ files:
175
173
  - lib/rrrspec/configuration.rb
176
174
  - lib/rrrspec/extension.rb
177
175
  - lib/rrrspec/redis_models.rb
178
- - rrrspec-client.gemspec
179
- - spec/fixture.rb
180
- - spec/rrrspec/client/cli_spec.rb
181
- - spec/rrrspec/redis_models_spec.rb
182
- - spec/spec_helper.rb
183
176
  homepage: https://github.com/cookpad/rrrspec
184
177
  licenses:
185
178
  - MIT
@@ -200,12 +193,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
193
  version: '0'
201
194
  requirements: []
202
195
  rubyforge_project:
203
- rubygems_version: 2.4.5.1
196
+ rubygems_version: 2.5.1
204
197
  signing_key:
205
198
  specification_version: 4
206
199
  summary: Execute RSpec in a distributed manner
207
- test_files:
208
- - spec/fixture.rb
209
- - spec/rrrspec/client/cli_spec.rb
210
- - spec/rrrspec/redis_models_spec.rb
211
- - spec/spec_helper.rb
200
+ test_files: []
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --format progress
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
data/Rakefile DELETED
@@ -1 +0,0 @@
1
- require "bundler/gem_tasks"
@@ -1,36 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'rrrspec/client/version'
5
- require 'pathname'
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = "rrrspec-client"
9
- spec.version = RRRSpec::Client::VERSION
10
- spec.authors = ["Masaya Suzuki"]
11
- spec.email = ["draftcode@gmail.com"]
12
- spec.description = "Execute RSpec in a distributed manner"
13
- spec.summary = "Execute RSpec in a distributed manner"
14
- spec.homepage = "https://github.com/cookpad/rrrspec"
15
- spec.license = "MIT"
16
-
17
- gemspec_dir = File.expand_path('..', __FILE__)
18
- spec.files = `git ls-files`.split($/).
19
- map { |f| File.absolute_path(f) }.
20
- select { |f| f.start_with?(gemspec_dir) }.
21
- map { |f| Pathname(f).relative_path_from(Pathname(gemspec_dir)).to_s }
22
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
24
- spec.require_paths = ["lib"]
25
-
26
- spec.add_development_dependency "bundler"
27
- spec.add_development_dependency "rake"
28
- spec.add_dependency "activesupport"
29
- spec.add_dependency "extreme_timeout"
30
- spec.add_dependency "launchy"
31
- spec.add_dependency "redis"
32
- spec.add_dependency "rspec", ">= 3.0"
33
- spec.add_dependency "thor"
34
- spec.add_dependency "uuidtools"
35
- spec.add_dependency "tzinfo"
36
- end
@@ -1,32 +0,0 @@
1
- module RRRSpec
2
- def self.finished_fullset
3
- worker = Worker.create('default')
4
- taskset = Taskset.create(
5
- 'testuser', 'echo 1', 'echo 2', 'default', 'default', 3, 3, 5, 5
6
- )
7
- task = Task.create(taskset, 10, 'spec/test_spec.rb')
8
- taskset.add_task(task)
9
- taskset.enqueue_task(task)
10
- ActiveTaskset.add(taskset)
11
- worker_log = WorkerLog.create(worker, taskset)
12
- worker_log.set_rsync_finished_time
13
- worker_log.append_log('worker_log log body')
14
- worker_log.set_setup_finished_time
15
- slave = Slave.create
16
- taskset.add_slave(slave)
17
- slave.append_log('slave log body')
18
- trial = Trial.create(task, slave)
19
- trial.start
20
- trial.finish('pending', 'stdout body', 'stderr body', 10, 2, 0)
21
- task.update_status('pending')
22
- taskset.incr_succeeded_count
23
- taskset.finish_task(task)
24
- taskset.update_status('succeeded')
25
- taskset.set_finished_time
26
- ActiveTaskset.remove(taskset)
27
- slave.update_status('normal_exit')
28
- worker_log.set_finished_time
29
-
30
- return worker, taskset, task, worker_log, slave, trial
31
- end
32
- end
@@ -1,45 +0,0 @@
1
- require 'spec_helper'
2
- require 'rrrspec/client/cli'
3
-
4
- module RRRSpec
5
- module Client
6
- RSpec.describe CLI do
7
- before do
8
- RRRSpec.configuration = Configuration.new
9
- RRRSpec.configuration.redis = @redis
10
- described_class.class_eval do
11
- no_commands do
12
- def setup(arg)
13
- end
14
- end
15
- end
16
- end
17
-
18
- describe '#cancelall' do
19
- let!(:taskset1) do
20
- Taskset.create('rsync_name', '', '', 'default', 'nothing', 3, 3, 3, 3)
21
- end
22
- let!(:taskset2) do
23
- Taskset.create('rsync_name', '', '', 'default', 'nothing', 3, 3, 3, 3)
24
- end
25
- let!(:taskset3) do
26
- Taskset.create('another_rsync_name', '', '', 'default', 'nothing', 3, 3, 3, 3)
27
- end
28
-
29
- before do
30
- ActiveTaskset.add(taskset1)
31
- ActiveTaskset.add(taskset2)
32
- ActiveTaskset.add(taskset3)
33
- end
34
-
35
- it 'cancels all tasksets' do
36
- subject.cancelall('rsync_name')
37
- Timeout.timeout(3) do
38
- expect(ArbiterQueue.dequeue).to eq(['cancel', taskset1])
39
- expect(ArbiterQueue.dequeue).to eq(['cancel', taskset2])
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,34 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module RRRSpec
4
- RSpec.describe Taskset do
5
- before do
6
- RRRSpec.configuration = Configuration.new
7
- RRRSpec.configuration.redis = @redis
8
- end
9
-
10
- before do
11
- @worker, @taskset, @task, @worker_log, @slave, @trial =
12
- RRRSpec.finished_fullset
13
- end
14
-
15
- describe '#expire' do
16
- it 'expires all keys' do
17
- @taskset.expire(60)
18
- expect(@redis.ttl(@taskset.key)).to be >= 0
19
- expect(@redis.ttl("#{@taskset.key}:rrrspec:worker:testhostname")).to be >= 0
20
- expect(@redis.ttl("#{@taskset.key}:rrrspec:worker:testhostname:log")).to be >= 0
21
- expect(@redis.ttl("#{@taskset.key}:slave")).to be >= 0
22
- expect(@redis.ttl("#{@taskset.key}:task:spec/test_spec.rb")).to be >= 0
23
- expect(@redis.ttl("#{@taskset.key}:task:spec/test_spec.rb:trial")).to be >= 0
24
- expect(@redis.ttl(@task.trials[0].key)).to be >= 0
25
- expect(@redis.ttl("#{@taskset.key}:task_queue")).to be >= 0
26
- expect(@redis.ttl("#{@taskset.key}:tasks")).to be >= 0
27
- expect(@redis.ttl("#{@taskset.key}:worker_log")).to be >= 0
28
- expect(@redis.ttl(@slave.key)).to be >= 0
29
- expect(@redis.ttl("#{@slave.key}:log")).to be >= 0
30
- expect(@redis.ttl("#{@slave.key}:trial")).to be >= 0
31
- end
32
- end
33
- end
34
- end
@@ -1,55 +0,0 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # Require this file using `require "spec_helper"` to ensure that it is only
4
- # loaded once.
5
- #
6
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
- require 'rrrspec/client'
8
- require 'fixture'
9
-
10
- RSpec.configure do |config|
11
- config.raise_errors_for_deprecations!
12
- config.disable_monkey_patching!
13
- config.run_all_when_everything_filtered = true
14
- config.filter_run :focus
15
-
16
- # Run specs in random order to surface order dependencies. If you find an
17
- # order dependency and want to debug it, you can fix the order by providing
18
- # the seed, which is printed after each run.
19
- # --seed 1234
20
- config.order = 'random'
21
-
22
- pid = nil
23
- config.before(:suite) do
24
- pid = Kernel.spawn("redis-server --port 9999 --save ''",
25
- in: '/dev/null', out: '/dev/null', err: '/dev/null')
26
- redis = Redis.new(port: 9999)
27
- retry_count = 1
28
- loop do
29
- begin
30
- redis.client.connect
31
- break
32
- rescue Redis::CannotConnectError
33
- if retry_count < 10
34
- retry_count += 1
35
- sleep 0.01
36
- retry
37
- end
38
- raise
39
- end
40
- end
41
- end
42
-
43
- config.before(:each) do
44
- @redis = Redis.new(port: 9999)
45
- @redis.flushall
46
-
47
- RRRSpec.configuration = nil
48
- RRRSpec.flushredis
49
- RRRSpec.hostname = 'testhostname'
50
- end
51
-
52
- config.after(:suite) do
53
- Process.kill('KILL', pid) if pid
54
- end
55
- end