module RPicSim::RSpec::SimDiagnostics

@api private

Public Class Methods

store_diagnostics(example, sim) click to toggle source
# File lib/rpicsim/rspec/sim_diagnostics.rb, line 6
def self.store_diagnostics(example, sim)
  if sim.respond_to? :cycle_count
    example.metadata[:sim_cycle_count] = sim.cycle_count
  end
  if sim.respond_to? :stack_trace
    example.metadata[:sim_stack_trace] = sim.stack_trace
  end
end
write_cycle_count(example, output, padding) click to toggle source
# File lib/rpicsim/rspec/sim_diagnostics.rb, line 30
def self.write_cycle_count(example, output, padding)
  cycle_count = example.metadata[:sim_cycle_count] or return
  output.puts
  output.printf padding + "Simulation cycle count: %d\n", cycle_count
end
write_diagnostics(example, output, padding) click to toggle source
# File lib/rpicsim/rspec/sim_diagnostics.rb, line 15
def self.write_diagnostics(example, output, padding)
  write_cycle_count(example, output, padding)
  write_sim_stack_trace(example, output, padding)
end
write_sim_stack_trace(example, output, padding) click to toggle source

Looks inside the metadata for the given RSpec example to see if a simulation stack trace was recorded. If so, it outputs it with the appropriate indentation.

# File lib/rpicsim/rspec/sim_diagnostics.rb, line 23
def self.write_sim_stack_trace(example, output, padding)
  sim_stack_trace = example.metadata[:sim_stack_trace] or return
  output.puts
  output.puts padding + 'Simulation stack trace:'
  sim_stack_trace.output(output, padding)
end