Sha256: 4cd00c8dc99932d6bd03e1a45e73b5b1c84a7820692d35e069ff928ea34f874a

Contents?: true

Size: 611 Bytes

Versions: 5

Compression:

Stored size: 611 Bytes

Contents

require "busted/current_process"

module Busted
  module Traceable

    attr_reader :trace, :tracer
    attr_writer :report

    def trace?
      trace
    end

    def start_tracer
      return unless trace?

      unless Tracer.exists?
        fail Tracer::MissingCommandError, "tracer requires dtrace"
      end

      unless CurrentProcess.privileged?
        fail Errno::EPERM, "dtrace requires root privileges"
      end

      @tracer = Tracer.new

      tracer.start
    end

    def finish_tracer
      return unless trace?

      tracer.finish

      report[:traces] = tracer.report
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
busted-0.2.3 lib/busted/traceable.rb
busted-0.2.2 lib/busted/traceable.rb
busted-0.2.1 lib/busted/traceable.rb
busted-0.2.0 lib/busted/traceable.rb
busted-0.1.0 lib/busted/traceable.rb