newrelic_rpm 9.3.0 → 9.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.build_ignore +6 -1
- data/CHANGELOG.md +193 -6
- data/README.md +4 -0
- data/Rakefile +1 -1
- data/lib/new_relic/agent/attribute_pre_filtering.rb +109 -0
- data/lib/new_relic/agent/configuration/default_source.rb +177 -34
- data/lib/new_relic/agent/configuration/environment_source.rb +1 -1
- data/lib/new_relic/agent/distributed_tracing.rb +1 -1
- data/lib/new_relic/agent/http_clients/async_http_wrappers.rb +83 -0
- data/lib/new_relic/agent/http_clients/ethon_wrappers.rb +111 -0
- data/lib/new_relic/agent/http_clients/httpx_wrappers.rb +93 -0
- data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +1 -1
- data/lib/new_relic/agent/instrumentation/active_record_helper.rb +1 -2
- data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb +69 -0
- data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +13 -0
- data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb +37 -0
- data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +23 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/active_support_logger.rb +3 -1
- data/lib/new_relic/agent/instrumentation/async_http/chain.rb +23 -0
- data/lib/new_relic/agent/instrumentation/async_http/instrumentation.rb +37 -0
- data/lib/new_relic/agent/instrumentation/async_http/prepend.rb +15 -0
- data/lib/new_relic/agent/instrumentation/async_http.rb +26 -0
- data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +9 -0
- data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +2 -2
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +1 -2
- data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +3 -0
- data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +4 -1
- data/lib/new_relic/agent/instrumentation/ethon/chain.rb +39 -0
- data/lib/new_relic/agent/instrumentation/ethon/instrumentation.rb +105 -0
- data/lib/new_relic/agent/instrumentation/ethon/prepend.rb +35 -0
- data/lib/new_relic/agent/instrumentation/ethon.rb +39 -0
- data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -0
- data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/grpc_client.rb +1 -1
- data/lib/new_relic/agent/instrumentation/grpc_server.rb +1 -1
- data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/httpx/chain.rb +20 -0
- data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +51 -0
- data/lib/new_relic/agent/instrumentation/httpx/prepend.rb +15 -0
- data/lib/new_relic/agent/instrumentation/httpx.rb +27 -0
- data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +3 -0
- data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +9 -0
- data/lib/new_relic/agent/instrumentation/memcache.rb +2 -2
- data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +1 -3
- data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +5 -1
- data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +4 -0
- data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +6 -0
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +4 -0
- data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +1 -0
- data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
- data/lib/new_relic/agent/instrumentation/roda/ignorer.rb +45 -0
- data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +68 -0
- data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
- data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +29 -0
- data/lib/new_relic/agent/instrumentation/roda.rb +36 -0
- data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
- data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +4 -0
- data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +26 -3
- data/lib/new_relic/agent/instrumentation/sidekiq.rb +5 -3
- data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -3
- data/lib/new_relic/agent/instrumentation/stripe.rb +28 -0
- data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +77 -0
- data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +4 -0
- data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +5 -1
- data/lib/new_relic/agent/log_event_attributes.rb +1 -1
- data/lib/new_relic/agent/messaging.rb +2 -2
- data/lib/new_relic/agent/monitors/synthetics_monitor.rb +12 -1
- data/lib/new_relic/agent/new_relic_service.rb +33 -17
- data/lib/new_relic/agent/pipe_service.rb +1 -1
- data/lib/new_relic/agent/rules_engine.rb +1 -1
- data/lib/new_relic/agent/span_event_primitive.rb +16 -4
- data/lib/new_relic/agent/system_info.rb +26 -0
- data/lib/new_relic/agent/tracer.rb +5 -6
- data/lib/new_relic/agent/transaction/abstract_segment.rb +55 -0
- data/lib/new_relic/agent/transaction/external_request_segment.rb +5 -2
- data/lib/new_relic/agent/transaction/message_broker_segment.rb +1 -2
- data/lib/new_relic/agent/transaction/request_attributes.rb +46 -10
- data/lib/new_relic/agent/transaction.rb +30 -6
- data/lib/new_relic/agent/transaction_error_primitive.rb +16 -0
- data/lib/new_relic/agent/transaction_event_primitive.rb +19 -0
- data/lib/new_relic/agent/utilization/gcp.rb +1 -3
- data/lib/new_relic/agent/utilization/vendor.rb +5 -7
- data/lib/new_relic/agent.rb +19 -3
- data/lib/new_relic/cli/command.rb +1 -0
- data/lib/new_relic/constants.rb +3 -0
- data/lib/new_relic/control/class_methods.rb +1 -7
- data/lib/new_relic/control/frameworks/rails.rb +14 -2
- data/lib/new_relic/control/frameworks/roda.rb +20 -0
- data/lib/new_relic/language_support.rb +9 -0
- data/lib/new_relic/noticed_error.rb +5 -2
- data/lib/new_relic/rack/agent_hooks.rb +1 -1
- data/lib/new_relic/rack/agent_middleware.rb +0 -16
- data/lib/new_relic/rack/browser_monitoring.rb +1 -1
- data/lib/new_relic/supportability_helper.rb +1 -0
- data/lib/new_relic/version.rb +1 -1
- data/lib/tasks/bump_version.rake +1 -1
- data/lib/tasks/config.rake +3 -2
- data/lib/tasks/helpers/config.html.erb +93 -0
- data/lib/tasks/helpers/format.rb +11 -7
- data/lib/tasks/helpers/version_bump.rb +2 -2
- data/lib/tasks/instrumentation_generator/instrumentation.thor +3 -3
- data/lib/tasks/newrelicyml.rake +1 -1
- data/lib/tasks/tests.rake +71 -0
- data/newrelic.yml +103 -31
- data/newrelic_rpm.gemspec +12 -6
- data/test/agent_helper.rb +1027 -0
- metadata +63 -8
- data/lib/tasks/helpers/removers.rb +0 -33
- data/lib/tasks/multiverse.rake +0 -6
- data/lib/tasks/multiverse.rb +0 -76
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newrelic_rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tanna McClure
|
@@ -11,8 +11,22 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2023-
|
14
|
+
date: 2023-10-30 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: base64
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
16
30
|
- !ruby/object:Gem::Dependency
|
17
31
|
name: bundler
|
18
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -69,6 +83,20 @@ dependencies:
|
|
69
83
|
- - "~>"
|
70
84
|
- !ruby/object:Gem::Version
|
71
85
|
version: '1.16'
|
86
|
+
- !ruby/object:Gem::Dependency
|
87
|
+
name: rack
|
88
|
+
requirement: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
type: :development
|
94
|
+
prerelease: false
|
95
|
+
version_requirements: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
72
100
|
- !ruby/object:Gem::Dependency
|
73
101
|
name: rake
|
74
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,14 +117,14 @@ dependencies:
|
|
89
117
|
requirements:
|
90
118
|
- - '='
|
91
119
|
- !ruby/object:Gem::Version
|
92
|
-
version: '1.
|
120
|
+
version: '1.54'
|
93
121
|
type: :development
|
94
122
|
prerelease: false
|
95
123
|
version_requirements: !ruby/object:Gem::Requirement
|
96
124
|
requirements:
|
97
125
|
- - '='
|
98
126
|
- !ruby/object:Gem::Version
|
99
|
-
version: '1.
|
127
|
+
version: '1.54'
|
100
128
|
- !ruby/object:Gem::Dependency
|
101
129
|
name: rubocop-ast
|
102
130
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,6 +269,7 @@ files:
|
|
241
269
|
- lib/new_relic/agent/agent_helpers/transmit.rb
|
242
270
|
- lib/new_relic/agent/agent_logger.rb
|
243
271
|
- lib/new_relic/agent/attribute_filter.rb
|
272
|
+
- lib/new_relic/agent/attribute_pre_filtering.rb
|
244
273
|
- lib/new_relic/agent/attribute_processing.rb
|
245
274
|
- lib/new_relic/agent/attributes.rb
|
246
275
|
- lib/new_relic/agent/audit_logger.rb
|
@@ -302,10 +331,13 @@ files:
|
|
302
331
|
- lib/new_relic/agent/heap.rb
|
303
332
|
- lib/new_relic/agent/hostname.rb
|
304
333
|
- lib/new_relic/agent/http_clients/abstract.rb
|
334
|
+
- lib/new_relic/agent/http_clients/async_http_wrappers.rb
|
305
335
|
- lib/new_relic/agent/http_clients/curb_wrappers.rb
|
336
|
+
- lib/new_relic/agent/http_clients/ethon_wrappers.rb
|
306
337
|
- lib/new_relic/agent/http_clients/excon_wrappers.rb
|
307
338
|
- lib/new_relic/agent/http_clients/http_rb_wrappers.rb
|
308
339
|
- lib/new_relic/agent/http_clients/httpclient_wrappers.rb
|
340
|
+
- lib/new_relic/agent/http_clients/httpx_wrappers.rb
|
309
341
|
- lib/new_relic/agent/http_clients/net_http_wrappers.rb
|
310
342
|
- lib/new_relic/agent/http_clients/typhoeus_wrappers.rb
|
311
343
|
- lib/new_relic/agent/http_clients/uri_util.rb
|
@@ -331,11 +363,19 @@ files:
|
|
331
363
|
- lib/new_relic/agent/instrumentation/active_storage.rb
|
332
364
|
- lib/new_relic/agent/instrumentation/active_storage_subscriber.rb
|
333
365
|
- lib/new_relic/agent/instrumentation/active_support.rb
|
366
|
+
- lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb
|
367
|
+
- lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb
|
368
|
+
- lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb
|
369
|
+
- lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb
|
334
370
|
- lib/new_relic/agent/instrumentation/active_support_logger.rb
|
335
371
|
- lib/new_relic/agent/instrumentation/active_support_logger/chain.rb
|
336
372
|
- lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb
|
337
373
|
- lib/new_relic/agent/instrumentation/active_support_logger/prepend.rb
|
338
374
|
- lib/new_relic/agent/instrumentation/active_support_subscriber.rb
|
375
|
+
- lib/new_relic/agent/instrumentation/async_http.rb
|
376
|
+
- lib/new_relic/agent/instrumentation/async_http/chain.rb
|
377
|
+
- lib/new_relic/agent/instrumentation/async_http/instrumentation.rb
|
378
|
+
- lib/new_relic/agent/instrumentation/async_http/prepend.rb
|
339
379
|
- lib/new_relic/agent/instrumentation/bunny.rb
|
340
380
|
- lib/new_relic/agent/instrumentation/bunny/chain.rb
|
341
381
|
- lib/new_relic/agent/instrumentation/bunny/instrumentation.rb
|
@@ -359,6 +399,10 @@ files:
|
|
359
399
|
- lib/new_relic/agent/instrumentation/elasticsearch/chain.rb
|
360
400
|
- lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb
|
361
401
|
- lib/new_relic/agent/instrumentation/elasticsearch/prepend.rb
|
402
|
+
- lib/new_relic/agent/instrumentation/ethon.rb
|
403
|
+
- lib/new_relic/agent/instrumentation/ethon/chain.rb
|
404
|
+
- lib/new_relic/agent/instrumentation/ethon/instrumentation.rb
|
405
|
+
- lib/new_relic/agent/instrumentation/ethon/prepend.rb
|
362
406
|
- lib/new_relic/agent/instrumentation/excon.rb
|
363
407
|
- lib/new_relic/agent/instrumentation/excon/middleware.rb
|
364
408
|
- lib/new_relic/agent/instrumentation/fiber.rb
|
@@ -388,6 +432,10 @@ files:
|
|
388
432
|
- lib/new_relic/agent/instrumentation/httprb/chain.rb
|
389
433
|
- lib/new_relic/agent/instrumentation/httprb/instrumentation.rb
|
390
434
|
- lib/new_relic/agent/instrumentation/httprb/prepend.rb
|
435
|
+
- lib/new_relic/agent/instrumentation/httpx.rb
|
436
|
+
- lib/new_relic/agent/instrumentation/httpx/chain.rb
|
437
|
+
- lib/new_relic/agent/instrumentation/httpx/instrumentation.rb
|
438
|
+
- lib/new_relic/agent/instrumentation/httpx/prepend.rb
|
391
439
|
- lib/new_relic/agent/instrumentation/ignore_actions.rb
|
392
440
|
- lib/new_relic/agent/instrumentation/logger.rb
|
393
441
|
- lib/new_relic/agent/instrumentation/logger/chain.rb
|
@@ -440,6 +488,12 @@ files:
|
|
440
488
|
- lib/new_relic/agent/instrumentation/resque/helper.rb
|
441
489
|
- lib/new_relic/agent/instrumentation/resque/instrumentation.rb
|
442
490
|
- lib/new_relic/agent/instrumentation/resque/prepend.rb
|
491
|
+
- lib/new_relic/agent/instrumentation/roda.rb
|
492
|
+
- lib/new_relic/agent/instrumentation/roda/chain.rb
|
493
|
+
- lib/new_relic/agent/instrumentation/roda/ignorer.rb
|
494
|
+
- lib/new_relic/agent/instrumentation/roda/instrumentation.rb
|
495
|
+
- lib/new_relic/agent/instrumentation/roda/prepend.rb
|
496
|
+
- lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb
|
443
497
|
- lib/new_relic/agent/instrumentation/sequel.rb
|
444
498
|
- lib/new_relic/agent/instrumentation/sequel_helper.rb
|
445
499
|
- lib/new_relic/agent/instrumentation/sidekiq.rb
|
@@ -452,6 +506,8 @@ files:
|
|
452
506
|
- lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb
|
453
507
|
- lib/new_relic/agent/instrumentation/sinatra/prepend.rb
|
454
508
|
- lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb
|
509
|
+
- lib/new_relic/agent/instrumentation/stripe.rb
|
510
|
+
- lib/new_relic/agent/instrumentation/stripe_subscriber.rb
|
455
511
|
- lib/new_relic/agent/instrumentation/thread.rb
|
456
512
|
- lib/new_relic/agent/instrumentation/thread/chain.rb
|
457
513
|
- lib/new_relic/agent/instrumentation/thread/instrumentation.rb
|
@@ -571,6 +627,7 @@ files:
|
|
571
627
|
- lib/new_relic/control/frameworks/rails3.rb
|
572
628
|
- lib/new_relic/control/frameworks/rails4.rb
|
573
629
|
- lib/new_relic/control/frameworks/rails_notifications.rb
|
630
|
+
- lib/new_relic/control/frameworks/roda.rb
|
574
631
|
- lib/new_relic/control/frameworks/ruby.rb
|
575
632
|
- lib/new_relic/control/frameworks/sinatra.rb
|
576
633
|
- lib/new_relic/control/instance_methods.rb
|
@@ -611,7 +668,6 @@ files:
|
|
611
668
|
- lib/tasks/helpers/matches.rb
|
612
669
|
- lib/tasks/helpers/newrelicyml.rb
|
613
670
|
- lib/tasks/helpers/prompt.rb
|
614
|
-
- lib/tasks/helpers/removers.rb
|
615
671
|
- lib/tasks/helpers/version_bump.rb
|
616
672
|
- lib/tasks/install.rake
|
617
673
|
- lib/tasks/instrumentation_generator/README.md
|
@@ -627,15 +683,14 @@ files:
|
|
627
683
|
- lib/tasks/instrumentation_generator/templates/prepend.tt
|
628
684
|
- lib/tasks/instrumentation_generator/templates/prepend_method.tt
|
629
685
|
- lib/tasks/instrumentation_generator/templates/test.tt
|
630
|
-
- lib/tasks/multiverse.rake
|
631
|
-
- lib/tasks/multiverse.rb
|
632
686
|
- lib/tasks/newrelic.rb
|
633
687
|
- lib/tasks/newrelicyml.rake
|
634
688
|
- lib/tasks/tests.rake
|
635
689
|
- newrelic.yml
|
636
690
|
- newrelic_rpm.gemspec
|
637
691
|
- recipes/newrelic.rb
|
638
|
-
|
692
|
+
- test/agent_helper.rb
|
693
|
+
homepage: https://github.com/newrelic/newrelic-ruby-agent
|
639
694
|
licenses:
|
640
695
|
- Apache-2.0
|
641
696
|
metadata:
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# This file is distributed under New Relic's license terms.
|
2
|
-
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
3
|
-
# frozen_string_literal: true
|
4
|
-
|
5
|
-
module Removers
|
6
|
-
def remove_local_multiverse_databases
|
7
|
-
list_databases_command = %(echo "show databases" | mysql -u root)
|
8
|
-
databases = `#{list_databases_command}`.chomp!.split("\n").select { |s| s.include?('multiverse') }
|
9
|
-
databases.each do |database|
|
10
|
-
puts "Dropping #{database}"
|
11
|
-
`echo "drop database #{database}" | mysql -u root`
|
12
|
-
end
|
13
|
-
rescue => error
|
14
|
-
puts 'ERROR: Cannot get MySQL databases...'
|
15
|
-
puts error.message
|
16
|
-
end
|
17
|
-
|
18
|
-
def remove_generated_gemfiles
|
19
|
-
file_path = File.expand_path('test/multiverse/suites')
|
20
|
-
Dir.glob(File.join(file_path, '**', 'Gemfile*')).each do |fn|
|
21
|
-
puts "Removing #{fn.gsub(file_path, '.../suites')}"
|
22
|
-
FileUtils.rm(fn)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def remove_generated_gemfile_lockfiles
|
27
|
-
file_path = File.expand_path('test/environments')
|
28
|
-
Dir.glob(File.join(file_path, '**', 'Gemfile.lock')).each do |fn|
|
29
|
-
puts "Removing #{fn.gsub(file_path, '.../environments')}"
|
30
|
-
FileUtils.rm(fn)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
data/lib/tasks/multiverse.rake
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
# This file is distributed under New Relic's license terms.
|
2
|
-
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
3
|
-
# frozen_string_literal: true
|
4
|
-
|
5
|
-
# Guts of task are in a .rb file to allow requiring from external gems
|
6
|
-
require "#{File.join(File.dirname(__FILE__))}/multiverse"
|
data/lib/tasks/multiverse.rb
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
# This file is distributed under New Relic's license terms.
|
2
|
-
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
3
|
-
# frozen_string_literal: true
|
4
|
-
|
5
|
-
#
|
6
|
-
# Rake task for running Ruby agent multiverse tests. This file may be required
|
7
|
-
# from third party gems. It is also used by the agent itself to run multiverse.
|
8
|
-
#
|
9
|
-
# Multiverse tests are grouped in (potentially multiverse) "suite" directories.
|
10
|
-
# These suites are found by default under ./test/multiverse. That location can
|
11
|
-
# be overridden with ENV['SUITES_DIRECTORY'].
|
12
|
-
#
|
13
|
-
# The first parameter to this task is a suite directory name to run. If
|
14
|
-
# excluded, multiverse will run all suites it finds.
|
15
|
-
#
|
16
|
-
# Additional parameters are allowed to multiverse. Many parameters can be
|
17
|
-
# combined.
|
18
|
-
#
|
19
|
-
# Some examples:
|
20
|
-
#
|
21
|
-
# # Runs ./test/multiverse/*
|
22
|
-
# bundle exec rake test:multiverse
|
23
|
-
#
|
24
|
-
# # Runs ./test/multiverse/my_gem
|
25
|
-
# bundle exec rake test:multiverse[my_gem]
|
26
|
-
#
|
27
|
-
# # With verbose logging and debugging via pry
|
28
|
-
# bundle exec rake test:multiverse[my_gem,verbose,debug]
|
29
|
-
#
|
30
|
-
# # Runs only first set of gems defined in my_gem's Envfile
|
31
|
-
# bundle exec rake test:multiverse[my_gem,env=0]
|
32
|
-
#
|
33
|
-
# # Runs tests matching the passed name (via Minitest's built-in filtering)
|
34
|
-
# bundle exec rake test:multiverse[my_gem,name=MyGemTest]
|
35
|
-
#
|
36
|
-
# # Runs with a specific test seed
|
37
|
-
# bundle exec rake test:multiverse[my_gem,seed=1337]
|
38
|
-
|
39
|
-
require_relative 'helpers/removers'
|
40
|
-
include Removers
|
41
|
-
|
42
|
-
namespace :test do
|
43
|
-
desc 'Run functional test suite for New Relic'
|
44
|
-
task :multiverse, [:suite, :param1, :param2, :param3, :param4] => ['multiverse:env'] do |_, args|
|
45
|
-
Multiverse::Runner.run(args.suite, Multiverse::Runner.parse_args(args))
|
46
|
-
end
|
47
|
-
|
48
|
-
namespace :multiverse do
|
49
|
-
# task :prerequisites
|
50
|
-
|
51
|
-
task :env do
|
52
|
-
# ENV['SUITES_DIRECTORY'] = File.expand_path('../../test/multiverse/suites', __FILE__)
|
53
|
-
require File.expand_path('../../../test/multiverse/lib/multiverse', __FILE__)
|
54
|
-
end
|
55
|
-
|
56
|
-
task :clobber do
|
57
|
-
remove_local_multiverse_databases
|
58
|
-
remove_generated_gemfiles
|
59
|
-
remove_generated_gemfile_lockfiles
|
60
|
-
end
|
61
|
-
|
62
|
-
desc 'Clean cached gemfiles from Bundler.bundle_path'
|
63
|
-
task :clean_gemfile_cache do
|
64
|
-
glob = File.expand_path('multiverse-cache/Gemfile.*.lock', Bundler.bundle_path)
|
65
|
-
File.delete(*Dir[glob])
|
66
|
-
end
|
67
|
-
|
68
|
-
task :prime, [:suite] => [:env] do |_, args|
|
69
|
-
Multiverse::Runner.prime(args.suite, Multiverse::Runner.parse_args(args))
|
70
|
-
end
|
71
|
-
|
72
|
-
task :gem_manifest => :env do
|
73
|
-
Multiverse::GemManifest.new.report
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|