From 31a05dbb21c03d94f83b26ac335b26ae88be5c6f Mon Sep 17 00:00:00 2001 From: Devon Blandin Date: Tue, 22 Mar 2016 13:19:48 -0400 Subject: [PATCH 1/3] Add debug logging option --- lib/cc/engine/analyzers/engine_config.rb | 4 ++++ lib/cc/engine/analyzers/reporter.rb | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/cc/engine/analyzers/engine_config.rb b/lib/cc/engine/analyzers/engine_config.rb index 17d01bac..9c5bdc54 100644 --- a/lib/cc/engine/analyzers/engine_config.rb +++ b/lib/cc/engine/analyzers/engine_config.rb @@ -6,6 +6,10 @@ def initialize(hash) @config = normalize(hash) end + def debug? + config.fetch("config", {}).fetch("debug", false) + end + def include_paths config.fetch("include_paths", ["./"]) end diff --git a/lib/cc/engine/analyzers/reporter.rb b/lib/cc/engine/analyzers/reporter.rb index 91ea3ef7..d8a44fce 100644 --- a/lib/cc/engine/analyzers/reporter.rb +++ b/lib/cc/engine/analyzers/reporter.rb @@ -16,8 +16,12 @@ def initialize(engine_config, language_strategy, io) end def run + debug("Processing #{language_strategy.files.count} files concurrency=#{engine_config.concurrency}") + process_files report + + debug("Reported #{reports.size} violations...") end def process_files @@ -26,12 +30,20 @@ def process_files concurrency: engine_config.concurrency ) + processed_files_count = 0 + pool.run do |file| + debug("Processing file: #{file}") + sexp = language_strategy.run(file) process_sexp(sexp) + + processed_files_count += 1 end pool.join + + debug("Processed #{processed_files_count} files") end def report @@ -39,6 +51,8 @@ def report violations = new_violations(issue) violations.each do |violation| + debug("Violation name=#{violation.report_name} mass=#{violation.mass}") + unless reports.include?(violation.report_name) reports.add(violation.report_name) io.puts "#{violation.format.to_json}\0" @@ -80,6 +94,10 @@ def flay_options only: nil } end + + def debug(message) + $stderr.puts(message) if engine_config.debug? + end end end end From 433c117f79d7e720d74a04c79ef4cd4894d19cd6 Mon Sep 17 00:00:00 2001 From: Devon Blandin Date: Tue, 22 Mar 2016 12:37:01 -0400 Subject: [PATCH 2/3] Pass config to reporter in spec helper --- spec/support/helpers/analyzer_spec_helpers.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/support/helpers/analyzer_spec_helpers.rb b/spec/support/helpers/analyzer_spec_helpers.rb index 1968057f..83f28d65 100644 --- a/spec/support/helpers/analyzer_spec_helpers.rb +++ b/spec/support/helpers/analyzer_spec_helpers.rb @@ -11,7 +11,7 @@ def run_engine(config = nil) io = StringIO.new engine = described_class.new(engine_config: config) - reporter = ::CC::Engine::Analyzers::Reporter.new(double(concurrency: 2), engine, io) + reporter = ::CC::Engine::Analyzers::Reporter.new(config, engine, io) reporter.run From 8883adc60781cd491574289ceb7afafae6ec389e Mon Sep 17 00:00:00 2001 From: Devon Blandin Date: Tue, 22 Mar 2016 14:48:50 -0400 Subject: [PATCH 3/3] Use thread-safe fixnum for processed files count --- lib/cc/engine/analyzers/reporter.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/cc/engine/analyzers/reporter.rb b/lib/cc/engine/analyzers/reporter.rb index d8a44fce..90c6b79e 100644 --- a/lib/cc/engine/analyzers/reporter.rb +++ b/lib/cc/engine/analyzers/reporter.rb @@ -30,7 +30,7 @@ def process_files concurrency: engine_config.concurrency ) - processed_files_count = 0 + processed_files_count = Concurrent::AtomicFixnum.new pool.run do |file| debug("Processing file: #{file}") @@ -38,12 +38,12 @@ def process_files sexp = language_strategy.run(file) process_sexp(sexp) - processed_files_count += 1 + processed_files_count.increment end pool.join - debug("Processed #{processed_files_count} files") + debug("Processed #{processed_files_count.value} files") end def report