Skip to content

Commit

Permalink
Merge 35139c9 into f5bbf02
Browse files Browse the repository at this point in the history
  • Loading branch information
danmayer committed Apr 23, 2019
2 parents f5bbf02 + 35139c9 commit 992b5b9
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 4 deletions.
2 changes: 0 additions & 2 deletions lib/coverband/collectors/coverage.rb
Expand Up @@ -5,15 +5,13 @@
module Coverband
module Collectors
###
# TODO: look at alternatives to semaphore
# StandardError seems like be better option
# coverband previously had RuntimeError here
# but runtime error can let a large number of error crash this method
# and this method is currently in a ensure block in middleware and threads
###
class Coverage
include Singleton
extend Forwardable

def reset_instance
@project_directory = File.expand_path(Coverband.configuration.root)
Expand Down
6 changes: 5 additions & 1 deletion lib/coverband/collectors/delta.rb
Expand Up @@ -18,7 +18,7 @@ def self.results

def self.results(process_coverage = RubyCoverage)
@semaphore.synchronize do
@@previous_coverage ||= {}
set_default_results
new(process_coverage.results).results
end
end
Expand All @@ -27,6 +27,10 @@ def self.previous_results
@@previous_coverage
end

def self.set_default_results
@@previous_coverage ||= {}
end

def results
new_results = generate
@@previous_coverage = current_coverage
Expand Down
4 changes: 4 additions & 0 deletions lib/coverband/integrations/resque.rb
Expand Up @@ -2,9 +2,13 @@

Resque.after_fork do |job|
Coverband.start
Coverband.runtime_coverage!
# no reason to miss coverage on a first resque job
Coverband::Collectors::Delta.set_default_results
end

Resque.before_first_fork do
Coverband.eager_loading_coverage!
Coverband.configuration.background_reporting_enabled = false
Coverband::Background.stop
Coverband::Collectors::Coverage.instance.report_coverage(true)
Expand Down
8 changes: 7 additions & 1 deletion test/coverband/integrations/resque_worker_test.rb
Expand Up @@ -31,6 +31,12 @@ def setup

assert !Coverband::Background.running?

assert_equal 1, Coverband.configuration.store.coverage[relative_job_file]['data'][4]
# TODO: There is a test only type issue where the test is looking at eager data
# it merged eager and eager for merged and runtime is eager
Coverband.runtime_coverage!
report = Coverband.configuration.store.get_coverage_report

assert_equal 0, report[Coverband::EAGER_TYPE][relative_job_file]['data'][4]
assert_equal 1, report[Coverband::RUNTIME_TYPE][relative_job_file]['data'][4]
end
end

0 comments on commit 992b5b9

Please sign in to comment.