Sha256: 926ecb5e2739abe35b08bd891616c9a2a017401e3578b3ff0e20f7f1bc3b58e3

Contents?: true

Size: 1.27 KB

Versions: 12

Compression:

Stored size: 1.27 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

require File.expand_path(File.join(File.dirname(__FILE__),'..','..','test_helper'))

class NewRelic::Rack::DeferredInstrumentationTest < Test::Unit::TestCase
  class TestApp
    def call(env)
      [200, {}, ["whatever"]]
    end
  end

  def test_to_app_does_not_blow_up_when_rack_instrumentation_required_multiple_times
    # We want to use two different paths to require the rack instrumentation here
    # in order to simulate a situation that might arise where a user is
    # explicitly requiring our rack instrumentation file, and then the agent
    # automatically requires it as well, via a different path.
    # On Ruby 1.8.7, this will cause the file to be evaluated multiple times.
    path1 = "new_relic/agent/instrumentation/rack"
    path2 = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'lib', 'new_relic', 'agent', 'instrumentation', 'rack'))
    assert_not_equal(path2, path1)

    require path1
    require path2

    builder = ::Rack::Builder.new do
      run(::NewRelic::Rack::DeferredInstrumentationTest::TestApp.new)
    end

    assert_nothing_raised do
      builder.to_app
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
newrelic_rpm-3.7.1.188 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.7.1.182 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.7.1.180 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.7.0.177 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.7.0.174.beta test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.6.9.171 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.6.8.168 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.6.8.164 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.6.7.159 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.6.7.159.beta test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.6.7.152 test/new_relic/rack/deferred_instrumentation_test.rb
newrelic_rpm-3.6.6.147 test/new_relic/rack/deferred_instrumentation_test.rb