parallelized_specs 0.4.29 → 0.4.30

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.
data/Gemfile.lock CHANGED
@@ -1,27 +1,27 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- diff-lcs (1.2.1)
4
+ diff-lcs (1.1.3)
5
5
  git (1.2.5)
6
6
  jeweler (1.8.4)
7
7
  bundler (~> 1.0)
8
8
  git (>= 1.2.5)
9
9
  rake
10
10
  rdoc
11
- json (1.7.7)
12
- parallel (0.6.3)
13
- rake (10.0.3)
14
- rdoc (4.0.0)
11
+ json (1.7.5)
12
+ parallel (0.5.19)
13
+ rake (0.9.2.2)
14
+ rdoc (3.12)
15
15
  json (~> 1.4)
16
- rspec (2.13.0)
17
- rspec-core (~> 2.13.0)
18
- rspec-expectations (~> 2.13.0)
19
- rspec-mocks (~> 2.13.0)
20
- rspec-core (2.13.1)
21
- rspec-expectations (2.13.0)
22
- diff-lcs (>= 1.1.3, < 2.0)
23
- rspec-mocks (2.13.0)
24
- test-unit (2.5.4)
16
+ rspec (2.11.0)
17
+ rspec-core (~> 2.11.0)
18
+ rspec-expectations (~> 2.11.0)
19
+ rspec-mocks (~> 2.11.0)
20
+ rspec-core (2.11.1)
21
+ rspec-expectations (2.11.3)
22
+ diff-lcs (~> 1.1.3)
23
+ rspec-mocks (2.11.3)
24
+ test-unit (2.5.2)
25
25
 
26
26
  PLATFORMS
27
27
  ruby
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ begin
12
12
  gem.email = "jake@instructure.com"
13
13
  gem.homepage = "http://github.com/jakesorce/#{gem.name}"
14
14
  gem.authors = "Jake Sorce, Bryan Madsen, Shawn Meredith"
15
- gem.version = "0.4.29"
15
+ gem.version = "0.4.30"
16
16
  end
17
17
  Jeweler::GemcutterTasks.new
18
18
  rescue LoadError
@@ -1,4 +1,5 @@
1
1
  require 'parallel'
2
+ require 'parallel'
2
3
  raise "please ' gem install parallel '" if Gem::Version.new(Parallel::VERSION) < Gem::Version.new('0.4.2')
3
4
  require 'parallelized_specs/grouper'
4
5
  require 'parallelized_specs/railtie'
@@ -153,22 +154,6 @@ class ParallelizedSpecs
153
154
  puts "INFO: marking build as PASSED"
154
155
  end
155
156
 
156
- # parallel:spec[:count, :pattern, :options]
157
- def self.parse_rake_args(args)
158
- # order as given by user
159
- args = [args[:count], args[:pattern]]
160
-
161
- # count given or empty ?
162
- count = args.shift if args.first.to_s =~ /^\d*$/
163
- num_processes = count.to_i unless count.to_s.empty?
164
- num_processes ||= ENV['PARALLEL_TEST_PROCESSORS'].to_i if ENV['PARALLEL_TEST_PROCESSORS']
165
- num_processes ||= Parallel.processor_count
166
-
167
- pattern = args.shift
168
-
169
- [num_processes.to_i, pattern.to_s]
170
- end
171
-
172
157
  def self.slowest_spec_determination(file)
173
158
  if File.exists?(file)
174
159
  spec_durations = []
@@ -195,6 +180,22 @@ class ParallelizedSpecs
195
180
  end
196
181
  end
197
182
 
183
+ # parallel:spec[:count, :pattern, :options]
184
+ def self.parse_rake_args(args)
185
+ # order as given by user
186
+ args = [args[:count], args[:pattern]]
187
+
188
+ # count given or empty ?
189
+ count = args.shift if args.first.to_s =~ /^\d*$/
190
+ num_processes = count.to_i unless count.to_s.empty?
191
+ num_processes ||= ENV['PARALLEL_TEST_PROCESSORS'].to_i if ENV['PARALLEL_TEST_PROCESSORS']
192
+ num_processes ||= Parallel.processor_count
193
+
194
+ pattern = args.shift
195
+
196
+ [num_processes.to_i, pattern.to_s]
197
+ end
198
+
198
199
  # finds all tests and partitions them into groups
199
200
  def self.tests_in_groups(tests, num_groups, options)
200
201
  if options[:no_sort]
@@ -331,8 +332,7 @@ class ParallelizedSpecs
331
332
  #can't just use exit code, if specs fail to start it will pass or if a spec isn't found, and sometimes rspec 1 exit codes aren't right
332
333
  rerun_status = result.scan(/\d*[^\D]\d*/).to_a
333
334
  puts "INFO: this is the rerun_status\n#{rerun_status}"
334
- example_index = rerun_status.length - 2
335
- @examples = rerun_status[example_index].to_i
335
+ @examples = rerun_status[-2].to_i
336
336
  @failures = rerun_status.last.to_i
337
337
  end
338
338
 
@@ -375,7 +375,7 @@ class ParallelizedSpecs
375
375
  abort "SEVERE: #{@error_count} errors, but the build failed, errors were not written to the file or there is something else wrong, marking build as a failure"
376
376
  when code == 6
377
377
  print_failures("#{RAILS_ROOT}/tmp/parallel_log/error.log")
378
- abort "SEVERE: #{@error_count} errors are to many to rerun, marking the build as a failure"
378
+ abort "SEVERE: #{@error_count} errors are to many to rerun, marking the build as a failure. Max errors defined for this build is #{@max_reruns}"
379
379
  when code == 7
380
380
  puts "#Total errors #{@error_count}"
381
381
  abort "SEVERE: unexpected error information, please check errors are being written to file correctly"
@@ -410,15 +410,16 @@ class ParallelizedSpecs
410
410
  @error_count = %x{wc -l "#{@filename}"}.match(/\d*[^\D]/).to_s #counts the number of lines in the file
411
411
  @error_count = @error_count.to_i
412
412
  puts "INFO: error count = #@error_count"
413
+ ENV["RERUNS"] != nil ? @max_reruns = ENV["RERUNS"].to_i : @max_reruns = 9
413
414
 
414
- if !@error_count.between?(1, 9)
415
+ if !@error_count.between?(1, @max_reruns)
415
416
  puts "INFO: total errors are not in rerun eligibility range"
416
417
  case
417
418
  when @error_count == 0
418
419
  puts "INFO: 0 errors build being aborted"
419
420
  abort_reruns(5)
420
- when @error_count > 9
421
- puts "INFO: error count has exceeded maximum errors of 9"
421
+ when @error_count > @max_reruns
422
+ puts "INFO: error count has exceeded maximum errors of #{@max_reruns}"
422
423
  abort_reruns(6)
423
424
  else
424
425
  abort_reruns(7)
@@ -477,7 +478,6 @@ class ParallelizedSpecs
477
478
 
478
479
 
479
480
  def self.determine_rerun_outcome
480
-
481
481
  if @rerun_failures.count > 0
482
482
  abort_reruns(8)
483
483
  elsif @rerun_passes.count >= @error_count
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "parallelized_specs"
8
- s.version = "0.4.29"
8
+ s.version = "0.4.30"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jake Sorce, Bryan Madsen, Shawn Meredith"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallelized_specs
3
3
  version: !ruby/object:Gem::Version
4
- hash: 53
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 29
10
- version: 0.4.29
9
+ - 30
10
+ version: 0.4.30
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jake Sorce, Bryan Madsen, Shawn Meredith