newrelic_rpm 3.14.0.305 → 3.14.1.311
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +55 -3
- data/lib/new_relic/agent/agent.rb +1 -0
- data/lib/new_relic/agent/configuration/default_source.rb +25 -2
- data/lib/new_relic/agent/error_collector.rb +2 -1
- data/lib/new_relic/agent/error_event_aggregator.rb +10 -7
- data/lib/new_relic/agent/hostname.rb +1 -1
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +82 -4
- data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +5 -4
- data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +24 -4
- data/lib/new_relic/agent/instrumentation/rack.rb +80 -29
- data/lib/new_relic/agent/pipe_service.rb +4 -0
- data/lib/new_relic/agent/transaction.rb +5 -0
- data/lib/new_relic/version.rb +1 -1
- data/test/multiverse/suites/agent_only/agent_attributes_test.rb +15 -0
- data/test/multiverse/suites/agent_only/error_events_test.rb +15 -1
- data/test/multiverse/suites/delayed_job/Envfile +10 -0
- data/test/multiverse/suites/delayed_job/before_suite.rb +10 -0
- data/test/multiverse/suites/delayed_job/delayed_job_instrumentation_test.rb +106 -0
- data/test/multiverse/suites/mongo/mongo2_instrumentation_test.rb +45 -0
- data/test/multiverse/suites/rack/Envfile +10 -0
- data/test/multiverse/suites/rack/before_suite.rb +12 -0
- data/test/multiverse/suites/rack/http_response_code_test.rb +2 -2
- data/test/multiverse/suites/rack/puma_rack_builder_test.rb +81 -0
- data/test/multiverse/suites/rack/rack_auto_instrumentation_test.rb +12 -3
- data/test/multiverse/suites/rack/rack_cascade_test.rb +31 -31
- data/test/multiverse/suites/rack/rack_env_mutation_test.rb +2 -2
- data/test/multiverse/suites/rack/rack_unsupported_version_test.rb +1 -1
- data/test/multiverse/suites/rack/response_content_type_test.rb +2 -2
- data/test/multiverse/suites/rack/url_map_test.rb +45 -11
- data/test/new_relic/agent/agent/connect_test.rb +1 -1
- data/test/new_relic/agent/agent_logger_test.rb +2 -0
- data/test/new_relic/agent/agent_test.rb +1 -0
- data/test/new_relic/agent/audit_logger_test.rb +4 -0
- data/test/new_relic/agent/error_collector_test.rb +34 -10
- data/test/new_relic/agent/error_event_aggregator_test.rb +12 -1
- data/test/new_relic/agent/hostname_test.rb +5 -0
- data/test/new_relic/agent/instrumentation/delayed_job_instrumentation_test.rb +23 -0
- data/test/new_relic/agent/pipe_service_test.rb +7 -0
- data/test/new_relic/marshalling_test_cases.rb +42 -0
- metadata +6 -2
@@ -2,44 +2,44 @@
|
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
3
|
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
4
|
|
5
|
+
if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
|
6
|
+
|
5
7
|
require File.join(File.dirname(__FILE__), 'example_app')
|
6
8
|
require 'new_relic/rack/browser_monitoring'
|
7
9
|
require 'new_relic/rack/agent_hooks'
|
8
10
|
require 'new_relic/rack/error_collector'
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
Rack::
|
28
|
-
|
29
|
-
|
30
|
-
use ResponseCodeMiddleware
|
31
|
-
run Rack::Cascade.new([FirstCascadeExampleApp.new, SecondCascadeExampleApp.new])
|
32
|
-
end
|
12
|
+
class RackCascadeTest < Minitest::Test
|
13
|
+
include MultiverseHelpers
|
14
|
+
|
15
|
+
setup_and_teardown_agent(
|
16
|
+
:beacon => 'beacon',
|
17
|
+
:browser_key => 'browserKey',
|
18
|
+
:js_agent_loader => 'loader',
|
19
|
+
:application_id => '5',
|
20
|
+
:'rum.enabled' => true,
|
21
|
+
:license_key => 'a' * 40
|
22
|
+
)
|
23
|
+
|
24
|
+
include Rack::Test::Methods
|
25
|
+
|
26
|
+
def app
|
27
|
+
Rack::Builder.app do
|
28
|
+
use NewRelic::Rack::AgentHooks
|
29
|
+
use NewRelic::Rack::BrowserMonitoring
|
30
|
+
use ResponseCodeMiddleware
|
31
|
+
run Rack::Cascade.new([FirstCascadeExampleApp.new, SecondCascadeExampleApp.new])
|
33
32
|
end
|
33
|
+
end
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
def test_insert_js_does_not_fire_for_rack_cascade_404_responses
|
36
|
+
rsp = get '/', { 'body' => '<html><head></head><body></body></html>', 'override-response-code' => 404 }
|
37
|
+
refute(rsp.body.include?('script'), "\nExpected\n---\n#{rsp.body}\n---\nnot to include 'script'.")
|
38
|
+
end
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
40
|
+
def test_rack_cascade_transactions_are_named_for_the_last_app
|
41
|
+
rsp = get '/cascade'
|
42
|
+
assert_metrics_recorded('Controller/SecondCascadeExampleApp/call')
|
44
43
|
end
|
45
44
|
end
|
45
|
+
end
|
@@ -2,12 +2,12 @@
|
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
3
|
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
4
|
|
5
|
+
if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
|
6
|
+
|
5
7
|
require 'new_relic/rack/browser_monitoring'
|
6
8
|
require 'new_relic/rack/agent_hooks'
|
7
9
|
require 'new_relic/rack/error_collector'
|
8
10
|
|
9
|
-
if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
|
10
|
-
|
11
11
|
class RackEnvMutationTest < Minitest::Test
|
12
12
|
attr_accessor :inner_app
|
13
13
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
3
|
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
4
|
|
5
|
-
if !NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
|
5
|
+
if !NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported? && defined? ::Rack
|
6
6
|
|
7
7
|
class RackUnsupportedVersionTest < Minitest::Test
|
8
8
|
include MultiverseHelpers
|
@@ -2,13 +2,13 @@
|
|
2
2
|
# This file is distributed under New Relic's license terms.
|
3
3
|
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
4
|
|
5
|
+
if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
|
6
|
+
|
5
7
|
require File.join(File.dirname(__FILE__), 'example_app')
|
6
8
|
require 'new_relic/rack/browser_monitoring'
|
7
9
|
require 'new_relic/rack/agent_hooks'
|
8
10
|
require 'new_relic/rack/error_collector'
|
9
11
|
|
10
|
-
if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?
|
11
|
-
|
12
12
|
class HttpResponseContentTypeTest < Minitest::Test
|
13
13
|
include MultiverseHelpers
|
14
14
|
|
@@ -6,14 +6,14 @@
|
|
6
6
|
# properly. Tests against the builder interface more commonly used (i.e. map)
|
7
7
|
# can be found elsewhere in this suite.
|
8
8
|
|
9
|
-
if NewRelic::Agent::Instrumentation::RackHelpers.
|
9
|
+
if NewRelic::Agent::Instrumentation::RackHelpers.version_supported?
|
10
10
|
|
11
11
|
class UrlMapTest < Minitest::Test
|
12
12
|
include MultiverseHelpers
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
def teardown
|
15
|
+
NewRelic::Agent.drop_buffered_data
|
16
|
+
end
|
17
17
|
|
18
18
|
class SimpleMiddleware
|
19
19
|
def initialize(app)
|
@@ -38,6 +38,10 @@ class UrlMapTest < Minitest::Test
|
|
38
38
|
class PrefixAppTwo < ExampleApp; end
|
39
39
|
|
40
40
|
def app
|
41
|
+
defined?(Puma) ? puma_rack_app : rack_app
|
42
|
+
end
|
43
|
+
|
44
|
+
def rack_app
|
41
45
|
Rack::Builder.app do
|
42
46
|
use MiddlewareOne
|
43
47
|
use MiddlewareTwo
|
@@ -48,7 +52,18 @@ class UrlMapTest < Minitest::Test
|
|
48
52
|
end
|
49
53
|
end
|
50
54
|
|
51
|
-
|
55
|
+
def puma_rack_app
|
56
|
+
Puma::Rack::Builder.app do
|
57
|
+
use MiddlewareOne
|
58
|
+
use MiddlewareTwo
|
59
|
+
|
60
|
+
run Puma::Rack::URLMap.new(
|
61
|
+
'/prefix1' => PrefixAppOne.new,
|
62
|
+
'/prefix2' => PrefixAppTwo.new)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
if defined?(Rack) && Rack::VERSION[1] >= 4
|
52
67
|
def test_metrics_for_default_prefix
|
53
68
|
get '/'
|
54
69
|
|
@@ -61,12 +76,12 @@ class UrlMapTest < Minitest::Test
|
|
61
76
|
'Apdex/Rack/UrlMapTest::ExampleApp/call',
|
62
77
|
'Middleware/Rack/UrlMapTest::MiddlewareOne/call',
|
63
78
|
'Middleware/Rack/UrlMapTest::MiddlewareTwo/call',
|
64
|
-
|
79
|
+
nested_controller_metric,
|
65
80
|
'Nested/Controller/Rack/UrlMapTest::ExampleApp/call',
|
66
81
|
['Middleware/Rack/UrlMapTest::MiddlewareOne/call', 'Controller/Rack/UrlMapTest::ExampleApp/call'],
|
67
82
|
['Middleware/Rack/UrlMapTest::MiddlewareTwo/call', 'Controller/Rack/UrlMapTest::ExampleApp/call'],
|
68
83
|
['Nested/Controller/Rack/UrlMapTest::ExampleApp/call', 'Controller/Rack/UrlMapTest::ExampleApp/call'],
|
69
|
-
[
|
84
|
+
[nested_controller_metric, 'Controller/Rack/UrlMapTest::ExampleApp/call']
|
70
85
|
])
|
71
86
|
end
|
72
87
|
end
|
@@ -83,11 +98,11 @@ class UrlMapTest < Minitest::Test
|
|
83
98
|
'Apdex/Rack/UrlMapTest::PrefixAppOne/call',
|
84
99
|
'Middleware/Rack/UrlMapTest::MiddlewareOne/call',
|
85
100
|
'Middleware/Rack/UrlMapTest::MiddlewareTwo/call',
|
86
|
-
|
101
|
+
nested_controller_metric,
|
87
102
|
'Nested/Controller/Rack/UrlMapTest::PrefixAppOne/call',
|
88
103
|
['Middleware/Rack/UrlMapTest::MiddlewareOne/call', 'Controller/Rack/UrlMapTest::PrefixAppOne/call'],
|
89
104
|
['Middleware/Rack/UrlMapTest::MiddlewareTwo/call', 'Controller/Rack/UrlMapTest::PrefixAppOne/call'],
|
90
|
-
[
|
105
|
+
[nested_controller_metric, 'Controller/Rack/UrlMapTest::PrefixAppOne/call'],
|
91
106
|
['Nested/Controller/Rack/UrlMapTest::PrefixAppOne/call', 'Controller/Rack/UrlMapTest::PrefixAppOne/call']
|
92
107
|
])
|
93
108
|
end
|
@@ -104,14 +119,33 @@ class UrlMapTest < Minitest::Test
|
|
104
119
|
'Apdex/Rack/UrlMapTest::PrefixAppTwo/call',
|
105
120
|
'Middleware/Rack/UrlMapTest::MiddlewareOne/call',
|
106
121
|
'Middleware/Rack/UrlMapTest::MiddlewareTwo/call',
|
107
|
-
|
122
|
+
nested_controller_metric,
|
108
123
|
'Nested/Controller/Rack/UrlMapTest::PrefixAppTwo/call',
|
109
124
|
['Middleware/Rack/UrlMapTest::MiddlewareOne/call', 'Controller/Rack/UrlMapTest::PrefixAppTwo/call'],
|
110
125
|
['Middleware/Rack/UrlMapTest::MiddlewareTwo/call', 'Controller/Rack/UrlMapTest::PrefixAppTwo/call'],
|
111
|
-
[
|
126
|
+
[nested_controller_metric, 'Controller/Rack/UrlMapTest::PrefixAppTwo/call'],
|
112
127
|
['Nested/Controller/Rack/UrlMapTest::PrefixAppTwo/call', 'Controller/Rack/UrlMapTest::PrefixAppTwo/call']
|
113
128
|
])
|
114
129
|
end
|
130
|
+
|
131
|
+
def nested_controller_metric
|
132
|
+
url_map_class = defined?(Puma) ? Puma::Rack::URLMap : Rack::URLMap
|
133
|
+
"Nested/Controller/Rack/#{url_map_class}/call"
|
134
|
+
end
|
135
|
+
|
136
|
+
# We're not using Rack::Test so that we can test against an enviroment
|
137
|
+
# that requires puma only. Since we're only using the `get` method this is
|
138
|
+
# easy enough replicate. If this becomes a problem in the future perhaps we
|
139
|
+
# revisit how we verify that
|
140
|
+
def get path
|
141
|
+
env = {
|
142
|
+
"REQUEST_METHOD"=>"GET",
|
143
|
+
"PATH_INFO"=>path,
|
144
|
+
"SCRIPT_NAME"=>""
|
145
|
+
}
|
146
|
+
|
147
|
+
app.call env
|
148
|
+
end
|
115
149
|
end
|
116
150
|
|
117
151
|
end
|
@@ -112,7 +112,7 @@ class NewRelic::Agent::Agent::ConnectTest < Minitest::Test
|
|
112
112
|
@local_host = "lo-calhost"
|
113
113
|
@environment_report = {}
|
114
114
|
|
115
|
-
keys = %w(pid host app_name language agent_version environment settings).map(&:to_sym)
|
115
|
+
keys = %w(pid host display_host app_name language agent_version environment settings).map(&:to_sym)
|
116
116
|
|
117
117
|
settings = connect_settings
|
118
118
|
keys.each do |k|
|
@@ -33,6 +33,7 @@ class AgentLoggerTest < Minitest::Test
|
|
33
33
|
|
34
34
|
def teardown
|
35
35
|
NewRelic::Agent.config.reset_to_defaults
|
36
|
+
NewRelic::Agent::Hostname.instance_variable_set(:@hostname, nil)
|
36
37
|
end
|
37
38
|
|
38
39
|
|
@@ -305,6 +306,7 @@ class AgentLoggerTest < Minitest::Test
|
|
305
306
|
end
|
306
307
|
|
307
308
|
def test_should_cache_hostname
|
309
|
+
NewRelic::Agent::Hostname.instance_variable_set(:@hostname, nil)
|
308
310
|
Socket.expects(:gethostname).once.returns('cachey-mccaherson')
|
309
311
|
logger = create_basic_logger
|
310
312
|
logger.warn("one")
|
@@ -23,6 +23,7 @@ class AuditLoggerTest < Minitest::Test
|
|
23
23
|
|
24
24
|
def teardown
|
25
25
|
NewRelic::Agent.config.reset_to_defaults
|
26
|
+
NewRelic::Agent::Hostname.instance_variable_set(:@hostname, nil)
|
26
27
|
end
|
27
28
|
|
28
29
|
def setup_fake_logger
|
@@ -64,6 +65,7 @@ class AuditLoggerTest < Minitest::Test
|
|
64
65
|
end
|
65
66
|
|
66
67
|
def test_log_formatter
|
68
|
+
NewRelic::Agent::Hostname.instance_variable_set(:@hostname, nil)
|
67
69
|
Socket.stubs(:gethostname).returns('dummyhost')
|
68
70
|
formatter = NewRelic::Agent::AuditLogger.new.create_log_formatter
|
69
71
|
time = '2012-01-01 00:00:00'
|
@@ -75,6 +77,7 @@ class AuditLoggerTest < Minitest::Test
|
|
75
77
|
|
76
78
|
def test_log_formatter_to_stdout
|
77
79
|
with_config(:'audit_log.path' => "STDOUT") do
|
80
|
+
NewRelic::Agent::Hostname.instance_variable_set(:@hostname, nil)
|
78
81
|
Socket.stubs(:gethostname).returns('dummyhost')
|
79
82
|
formatter = NewRelic::Agent::AuditLogger.new.create_log_formatter
|
80
83
|
time = '2012-01-01 00:00:00'
|
@@ -154,6 +157,7 @@ class AuditLoggerTest < Minitest::Test
|
|
154
157
|
end
|
155
158
|
|
156
159
|
def test_should_cache_hostname
|
160
|
+
NewRelic::Agent::Hostname.instance_variable_set(:@hostname, nil)
|
157
161
|
Socket.expects(:gethostname).once.returns('cachey-mccaherson')
|
158
162
|
setup_fake_logger
|
159
163
|
3.times do
|
@@ -32,8 +32,20 @@ class NewRelic::Agent::ErrorCollectorTest < Minitest::Test
|
|
32
32
|
|
33
33
|
def test_empty
|
34
34
|
@error_collector.notice_error(nil, :metric=> 'path')
|
35
|
-
|
36
|
-
|
35
|
+
traces = harvest_error_traces
|
36
|
+
events = harvest_error_events
|
37
|
+
|
38
|
+
assert_equal 0, traces.length
|
39
|
+
assert_equal 0, events.length
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_records_error_outside_of_transaction
|
43
|
+
@error_collector.notice_error StandardError.new
|
44
|
+
traces = harvest_error_traces
|
45
|
+
events = harvest_error_events
|
46
|
+
|
47
|
+
assert_equal 1, traces.length
|
48
|
+
assert_equal 1, events.length
|
37
49
|
end
|
38
50
|
|
39
51
|
def test_drops_deprecated_options
|
@@ -52,9 +64,11 @@ class NewRelic::Agent::ErrorCollectorTest < Minitest::Test
|
|
52
64
|
|
53
65
|
@error_collector.notice_error(IOError.new("message"), :metric => 'path')
|
54
66
|
|
55
|
-
|
67
|
+
traces = harvest_error_traces
|
68
|
+
events = harvest_error_events
|
56
69
|
|
57
|
-
assert_equal 0,
|
70
|
+
assert_equal 0, traces.length
|
71
|
+
assert_equal 0, events.length
|
58
72
|
end
|
59
73
|
|
60
74
|
def test_exclude_later_config_changes
|
@@ -63,9 +77,11 @@ class NewRelic::Agent::ErrorCollectorTest < Minitest::Test
|
|
63
77
|
NewRelic::Agent.config.add_config_for_testing(:'error_collector.ignore_errors' => "IOError")
|
64
78
|
@error_collector.notice_error(IOError.new("message"))
|
65
79
|
|
66
|
-
|
80
|
+
traces = harvest_error_traces
|
81
|
+
events = harvest_error_events
|
67
82
|
|
68
|
-
assert_equal 1,
|
83
|
+
assert_equal 1, traces.length
|
84
|
+
assert_equal 1, events.length
|
69
85
|
end
|
70
86
|
|
71
87
|
def test_exclude_block
|
@@ -74,9 +90,11 @@ class NewRelic::Agent::ErrorCollectorTest < Minitest::Test
|
|
74
90
|
@error_collector.notice_error(IOError.new("message"), :metric => 'path')
|
75
91
|
@error_collector.notice_error(StandardError.new("message"), :metric => 'path')
|
76
92
|
|
77
|
-
|
93
|
+
traces = harvest_error_traces
|
94
|
+
events = harvest_error_events
|
78
95
|
|
79
|
-
assert_equal 1,
|
96
|
+
assert_equal 1, traces.length
|
97
|
+
assert_equal 1, events.length
|
80
98
|
end
|
81
99
|
|
82
100
|
def test_failure_in_exclude_block
|
@@ -86,9 +104,11 @@ class NewRelic::Agent::ErrorCollectorTest < Minitest::Test
|
|
86
104
|
|
87
105
|
@error_collector.notice_error(StandardError.new("message"))
|
88
106
|
|
89
|
-
|
107
|
+
traces = harvest_error_traces
|
108
|
+
events = harvest_error_events
|
90
109
|
|
91
|
-
assert_equal 1,
|
110
|
+
assert_equal 1, traces.length
|
111
|
+
assert_equal 1, events.length
|
92
112
|
end
|
93
113
|
|
94
114
|
def test_failure_block_assigned_with_different_instance
|
@@ -372,4 +392,8 @@ class NewRelic::Agent::ErrorCollectorTest < Minitest::Test
|
|
372
392
|
def harvest_error_traces
|
373
393
|
@error_collector.error_trace_aggregator.harvest!
|
374
394
|
end
|
395
|
+
|
396
|
+
def harvest_error_events
|
397
|
+
@error_collector.error_event_aggregator.harvest![1]
|
398
|
+
end
|
375
399
|
end
|
@@ -33,13 +33,24 @@ module NewRelic
|
|
33
33
|
|
34
34
|
include NewRelic::DataContainerTests
|
35
35
|
|
36
|
+
def test_generates_event_without_payload
|
37
|
+
error_event_aggregator.append_event create_noticed_error, nil
|
38
|
+
|
39
|
+
intrinsics, *_ = last_error_event
|
40
|
+
|
41
|
+
assert_equal "TransactionError", intrinsics[:type]
|
42
|
+
assert_in_delta Time.now.to_f, intrinsics[:timestamp], 0.001
|
43
|
+
assert_equal "RuntimeError", intrinsics[:'error.class']
|
44
|
+
assert_equal "Big Controller!", intrinsics[:'error.message']
|
45
|
+
end
|
46
|
+
|
36
47
|
def test_generates_event_from_error
|
37
48
|
generate_error
|
38
49
|
|
39
50
|
intrinsics, *_ = last_error_event
|
40
51
|
|
41
52
|
assert_equal "TransactionError", intrinsics[:type]
|
42
|
-
|
53
|
+
assert_in_delta Time.now.to_f, intrinsics[:timestamp], 0.001
|
43
54
|
assert_equal "RuntimeError", intrinsics[:'error.class']
|
44
55
|
assert_equal "Big Controller!", intrinsics[:'error.message']
|
45
56
|
assert_equal "Controller/blogs/index", intrinsics[:transactionName]
|
@@ -9,9 +9,14 @@ module NewRelic
|
|
9
9
|
module Agent
|
10
10
|
class HostnameTest < Minitest::Test
|
11
11
|
def setup
|
12
|
+
NewRelic::Agent::Hostname.instance_variable_set(:@hostname, nil)
|
12
13
|
Socket.stubs(:gethostname).returns('Rivendell')
|
13
14
|
end
|
14
15
|
|
16
|
+
def teardown
|
17
|
+
NewRelic::Agent::Hostname.instance_variable_set(:@hostname, nil)
|
18
|
+
end
|
19
|
+
|
15
20
|
def test_get_returns_socket_hostname
|
16
21
|
assert_equal 'Rivendell', NewRelic::Agent::Hostname.get
|
17
22
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# This file is distributed under New Relic's license terms.
|
3
|
+
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.
|
4
|
+
|
5
|
+
require File.expand_path(File.join(File.dirname(__FILE__),'..','..','..','test_helper'))
|
6
|
+
require 'new_relic/agent/instrumentation/delayed_job_instrumentation'
|
7
|
+
|
8
|
+
module NewRelic::Agent::Instrumentation
|
9
|
+
class DelayedJobInstrumentationTest < Minitest::Test
|
10
|
+
|
11
|
+
class DummyPayload
|
12
|
+
include NewRelic::Agent::Instrumentation::DelayedJob::Naming
|
13
|
+
attr_accessor :object
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_legacy_performable_method
|
17
|
+
payload_string = DummyPayload.new.tap { |dp| dp.object = 'LOAD;Foo' }
|
18
|
+
payload_fixnum = DummyPayload.new.tap { |dp| dp.object = 123 }
|
19
|
+
assert DummyPayload.new.send(:legacy_performable_method?, payload_string)
|
20
|
+
refute DummyPayload.new.send(:legacy_performable_method?, payload_fixnum)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|