parallelized_specs 0.4.63 → 0.4.64

Sign up to get free protection for your applications and to get access to all the features.
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.63"
15
+ gem.version = "0.4.64"
16
16
  end
17
17
  Jeweler::GemcutterTasks.new
18
18
  rescue LoadError
@@ -134,7 +134,6 @@ class ParallelizedSpecs
134
134
  abort("SEVERE: #{name.capitalize}s Failed") if failed
135
135
  end
136
136
  puts "INFO: marking build as PASSED"
137
- exit 0
138
137
  end
139
138
 
140
139
  def self.calculate_total_spec_details
@@ -192,7 +191,7 @@ class ParallelizedSpecs
192
191
 
193
192
  if @total_failures != 0 && !File.zero?("#{Rails.root}/tmp/parallel_log/rspec.failures") # works on both 1.8.7\1.9.3
194
193
  puts "INFO: some specs failed, about to start the rerun process\n...\n..\n."
195
- ParallelizedSpecs.rerun()
194
+ ParallelizedSpecs.rerun(@total_failures)
196
195
  else
197
196
  #works on both 1.8.7\1.9.3
198
197
  puts "ERROR: the build had failures but the rspec.failures file is null"
@@ -431,6 +430,9 @@ class ParallelizedSpecs
431
430
  abort "SEVERE: some specs failed on rerun, the build will be marked as failed"
432
431
  when code == 9
433
432
  abort "SEVERE: unexpected situation on rerun, marking build as failure"
433
+ when code == 10
434
+ `cat tmp/parallel_log/rspec.failures`
435
+ abort "SEVERE: reruns isn't running because there is a mismatch in the number of expected errors"
434
436
  else
435
437
  abort "SEVERE: unhandled abort_reruns code"
436
438
  end
@@ -459,7 +461,7 @@ class ParallelizedSpecs
459
461
  puts "INFO: error count = #@error_count"
460
462
  ENV["RERUNS"] != nil ? @max_reruns = ENV["RERUNS"].to_i : @max_reruns = 9
461
463
 
462
- if !@error_count.between?(1, @max_reruns)
464
+ if !@error_count.between?(1, @max_reruns) || @rspec_total_error_count > @error_count
463
465
  puts "INFO: total errors are not in rerun eligibility range"
464
466
  case
465
467
  when @error_count == 0
@@ -468,6 +470,9 @@ class ParallelizedSpecs
468
470
  when @error_count > @max_reruns
469
471
  puts "INFO: error count has exceeded maximum errors of #{@max_reruns}"
470
472
  abort_reruns(6)
473
+ when @rspec_total_error_count > @error_count
474
+ puts "rspec reported more errors than rspec.failures contains, not safe to pass build using reruns"
475
+ abort_reruns(10)
471
476
  else
472
477
  abort_reruns(7)
473
478
  end
@@ -541,7 +546,8 @@ class ParallelizedSpecs
541
546
  @failure_summary = "#{Rails.root}/tmp/parallel_log/rerun_failure_summary.log"
542
547
  end
543
548
 
544
- def self.rerun()
549
+ def self.rerun(rspec_total_error_count)
550
+ @rspec_total_error_count = rspec_total_error_count
545
551
  puts "INFO: beginning the failed specs rerun process"
546
552
  runtime_setup
547
553
  start_reruns
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "parallelized_specs"
8
- s.version = "0.4.63"
8
+ s.version = "0.4.64"
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"]
12
- s.date = "2013-08-20"
12
+ s.date = "2013-08-23"
13
13
  s.email = "jake@instructure.com"
14
14
  s.files = [
15
15
  "Gemfile",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallelized_specs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.63
4
+ version: 0.4.64
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-20 00:00:00.000000000 Z
12
+ date: 2013-08-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: parallel