Class: Necropsy::Bench::SeedRunner
- Inherits:
-
Object
- Object
- Necropsy::Bench::SeedRunner
- Defined in:
- lib/necropsy/bench/seed_runner.rb
Instance Method Summary collapse
- #call(update_golden_reason: nil) ⇒ Object
-
#initialize(manifest_path:, output_dir:, io: $stdout, clock: Process.method(:clock_gettime), analyzer: nil, feature_ablation: {}, rss_reader: nil, revision_reader: nil, dirty_reader: nil) ⇒ SeedRunner
constructor
A new instance of SeedRunner.
Constructor Details
#initialize(manifest_path:, output_dir:, io: $stdout, clock: Process.method(:clock_gettime), analyzer: nil, feature_ablation: {}, rss_reader: nil, revision_reader: nil, dirty_reader: nil) ⇒ SeedRunner
Returns a new instance of SeedRunner.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/necropsy/bench/seed_runner.rb', line 16 def initialize( manifest_path:, output_dir:, io: $stdout, clock: Process.method(:clock_gettime), analyzer: nil, feature_ablation: {}, rss_reader: nil, revision_reader: nil, dirty_reader: nil ) @manifest_path = File.(manifest_path) @output_dir = File.(output_dir) @io = io @clock = clock @analyzer = analyzer || lambda { |root, config_path| Necropsy.analyze(root: root, config_path: config_path, profile: true) } @feature_ablation = feature_ablation @rss_reader = rss_reader || method(:read_process_rss) @revision_reader = revision_reader || method(:read_git_revision) @dirty_reader = dirty_reader || method(:tracked_git_dirty?) end |
Instance Method Details
#call(update_golden_reason: nil) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/necropsy/bench/seed_runner.rb', line 40 def call(update_golden_reason: nil) prepare_output reports = {} corpus_runs = manifest.fetch('corpora').sort.map do |id, definition| run_corpus(id, definition, reports) end union = CandidateUnion.new( manifest: manifest, repository_root: repository_root, reports: reports, diagnostics: diagnostics ).call write_json(File.join(output_dir, 'candidate_union.json'), union) update_golden(update_golden_reason, corpus_runs) if update_golden_reason golden = golden_status report_golden_status(golden) summary = build_summary(corpus_runs, union, golden) write_json(File.join(output_dir, 'summary.json'), summary) summary end |