Skip to content

Commit

Permalink
fix tests, update gemspec
Browse files Browse the repository at this point in the history
  • Loading branch information
jaggederest committed Mar 7, 2011
1 parent dd91e32 commit 4f8e4a7
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 34 deletions.
2 changes: 1 addition & 1 deletion lib/new_relic/agent/method_tracer.rb
Expand Up @@ -401,10 +401,10 @@ def add_method_tracer(method_name, metric_name_code=nil, options = {})
# may get removed as well.
def remove_method_tracer(method_name, metric_name_code) # :nodoc:
return unless NewRelic::Control.instance.agent_enabled?

if method_defined? "#{_traced_method_name(method_name, metric_name_code)}"
alias_method method_name, "#{_untraced_method_name(method_name, metric_name_code)}"
undef_method "#{_traced_method_name(method_name, metric_name_code)}"
log.debug("removed method tracer #{method_name} #{metric_name_code}\n")
else
raise "No tracer for '#{metric_name_code}' on method '#{method_name}'"
end
Expand Down
2 changes: 1 addition & 1 deletion lib/new_relic/agent/stats_engine/metric_stats.rb
Expand Up @@ -135,7 +135,7 @@ def harvest_timeslice_data(previous_timeslice_data, metric_ids)

# Remove all stats. For test code only.
def clear_stats
stats_hash.clear
@stats_hash = SynchronizedHash.new
NewRelic::Agent::BusyCalculator.reset
end

Expand Down
2 changes: 1 addition & 1 deletion lib/new_relic/collection_helper.rb
Expand Up @@ -33,7 +33,7 @@ def strip_nr_from_backtrace(backtrace)
# this is for 1.9.1, where strings no longer have Enumerable
backtrace = backtrace.split("\n") if String === backtrace
# strip newrelic from the trace
backtrace = backtrace.reject {|line| line =~ /new_relic\/agent\// }
backtrace = backtrace.reject {|line| line =~ /new_?relic/ }
# rename methods back to their original state
# GJV - 4/6/10 - adding .to_s call since we were seeing line as a Fixnum in some cases
backtrace = backtrace.collect {|line| line.to_s.gsub(/_without_(newrelic|trace)/, "")}
Expand Down
4 changes: 4 additions & 0 deletions lib/newrelic_rpm.rb
Expand Up @@ -39,10 +39,14 @@ class Railtie < Rails::Railtie
end
end
else
if Rails.respond_to?(:configuration)
# After verison 2.0 of Rails we can access the configuration directly.
# We need it to add dev mode routes after initialization finished.
config = Rails.configuration
NewRelic::Control.instance.init_plugin :config => config
else
NewRelic::Control.instance.init_plugin
end
end
else
NewRelic::Control.instance.init_plugin
Expand Down
48 changes: 25 additions & 23 deletions newrelic_rpm.gemspec
Expand Up @@ -9,7 +9,7 @@ Gem::Specification.new do |s|

s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Bill Kayser", "Justin George"]
s.date = %q{2011-03-03}
s.date = %q{2011-03-07}
s.description = %q{New Relic RPM is a Ruby performance management system, developed by
New Relic, Inc (http://www.newrelic.com). RPM provides you with deep
information about the performance of your Ruby on Rails or Merb
Expand All @@ -18,7 +18,7 @@ dual-purposed as a either a Rails plugin or a Gem, hosted on
http://github.com/newrelic/rpm/tree/master.
}
s.email = %q{support@newrelic.com}
s.executables = ["mongrel_rpm", "newrelic", "newrelic_cmd"]
s.executables = ["newrelic_cmd", "newrelic", "mongrel_rpm"]
s.extra_rdoc_files = [
"CHANGELOG",
"LICENSE",
Expand All @@ -34,6 +34,7 @@ http://github.com/newrelic/rpm/tree/master.
"bin/newrelic_cmd",
"cert/cacert.pem",
"install.rb",
"lib/conditional_vendored_dependency_detection.rb",
"lib/conditional_vendored_metric_parser.rb",
"lib/new_relic/agent.rb",
"lib/new_relic/agent/agent.rb",
Expand Down Expand Up @@ -124,44 +125,41 @@ http://github.com/newrelic/rpm/tree/master.
"test/active_record_fixtures.rb",
"test/config/newrelic.yml",
"test/config/test_control.rb",
"test/new_relic/agent/active_record_instrumentation_test.rb",
"test/new_relic/agent/add_method_tracer_test.rb",
"test/new_relic/agent/agent_connect_test.rb",
"test/new_relic/agent/agent_controller_test.rb",
"test/new_relic/agent/agent_start_test.rb",
"test/new_relic/agent/agent_start_worker_thread_test.rb",
"test/new_relic/agent/agent/connect_test.rb",
"test/new_relic/agent/agent/start_test.rb",
"test/new_relic/agent/agent/start_worker_thread_test.rb",
"test/new_relic/agent/agent_test_controller.rb",
"test/new_relic/agent/agent_test_controller_test.rb",
"test/new_relic/agent/apdex_from_server_test.rb",
"test/new_relic/agent/busy_calculator_test.rb",
"test/new_relic/agent/collection_helper_test.rb",
"test/new_relic/agent/error_collector_notice_error_test.rb",
"test/new_relic/agent/error_collector/notice_error_test.rb",
"test/new_relic/agent/error_collector_test.rb",
"test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb",
"test/new_relic/agent/instrumentation/metric_frame_test.rb",
"test/new_relic/agent/instrumentation/net_instrumentation_test.rb",
"test/new_relic/agent/instrumentation/queue_time_test.rb",
"test/new_relic/agent/instrumentation/task_instrumentation_test.rb",
"test/new_relic/agent/memcache_instrumentation_test.rb",
"test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb",
"test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb",
"test/new_relic/agent/method_tracer_test.rb",
"test/new_relic/agent/method_tracer_trace_execution_scoped_test.rb",
"test/new_relic/agent/metric_data_test.rb",
"test/new_relic/agent/metric_frame_test.rb",
"test/new_relic/agent/mock_scope_listener.rb",
"test/new_relic/agent/net_instrumentation_test.rb",
"test/new_relic/agent/queue_time_test.rb",
"test/new_relic/agent/rpm_agent_test.rb",
"test/new_relic/agent/stats_engine/metric_stats_test.rb",
"test/new_relic/agent/stats_engine/samplers_test.rb",
"test/new_relic/agent/stats_engine/stats_engine_test.rb",
"test/new_relic/agent/task_instrumentation_test.rb",
"test/new_relic/agent/testable_agent.rb",
"test/new_relic/agent/transaction_sample_builder_test.rb",
"test/new_relic/agent/transaction_sample_subtest_test.rb",
"test/new_relic/agent/transaction_sample_test.rb",
"test/new_relic/agent/transaction_sampler_test.rb",
"test/new_relic/agent/worker_loop_test.rb",
"test/new_relic/collection_helper_test.rb",
"test/new_relic/command/deployments_test.rb",
"test/new_relic/control_test.rb",
"test/new_relic/deployments_api_test.rb",
"test/new_relic/environment_test.rb",
"test/new_relic/local_environment_test.rb",
"test/new_relic/metric_spec_test.rb",
"test/new_relic/rack/episodes_test.rb",
"test/new_relic/shim_agent_test.rb",
"test/new_relic/stats_test.rb",
"test/new_relic/transaction_sample_subtest_test.rb",
"test/new_relic/transaction_sample_test.rb",
"test/new_relic/version_number_test.rb",
"test/test_contexts.rb",
"test/test_helper.rb",
Expand Down Expand Up @@ -196,6 +194,10 @@ http://github.com/newrelic/rpm/tree/master.
"ui/views/newrelic/show_sample.rhtml",
"ui/views/newrelic/show_source.rhtml",
"ui/views/newrelic/threads.rhtml",
"vendor/gems/dependency_detection-0.0.1.build/LICENSE",
"vendor/gems/dependency_detection-0.0.1.build/README",
"vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb",
"vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb",
"vendor/gems/metric_parser-0.1.0.pre1/LICENSE",
"vendor/gems/metric_parser-0.1.0.pre1/README",
"vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb",
Expand Down Expand Up @@ -271,7 +273,7 @@ for instructions for previous versions
}
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "New Relic Ruby Performance Monitoring Agent"]
s.require_paths = ["lib"]
s.rubygems_version = %q{1.5.0}
s.rubygems_version = %q{1.5.2}
s.summary = %q{New Relic Ruby Performance Monitoring Agent}

if s.respond_to? :specification_version then
Expand Down
7 changes: 5 additions & 2 deletions test/new_relic/agent/agent_test_controller_test.rb
Expand Up @@ -43,12 +43,13 @@ def initialize name

def teardown
Thread.current[:newrelic_ignore_controller] = nil
super
NewRelic::Agent.shutdown
NewRelic::Agent::AgentTestController.clear_headers
super
end

def test_mongrel_queue
NewRelic::Agent::AgentTestController.clear_headers
engine.clear_stats
NewRelic::Control.instance.local_env.stubs(:mongrel).returns( stub('mongrel', :workers => stub('workers', :list => stub('list', :length => '10'))))

Expand All @@ -70,6 +71,7 @@ def test_heroku_queue
end

def test_new_queue_integration
NewRelic::Agent::AgentTestController.clear_headers
engine.clear_stats
start = ((Time.now - 1).to_f * 1_000_000).to_i
NewRelic::Agent::AgentTestController.set_some_headers 'HTTP_X_QUEUE_START'=> "t=#{start}"
Expand All @@ -89,6 +91,7 @@ def test_new_middleware_integration
end

def test_new_server_time_integration
NewRelic::Agent::AgentTestController.clear_headers
engine.clear_stats
start = ((Time.now - 1).to_f * 1_000_000).to_i
NewRelic::Agent::AgentTestController.set_some_headers 'HTTP_X_REQUEST_START'=> "t=#{start}"
Expand Down Expand Up @@ -298,7 +301,7 @@ def test_queue_headers_no_header
end

def test_queue_headers_apache

NewRelic::Agent::AgentTestController.clear_headers
engine.clear_stats
queue_length_stat = stats('Mongrel/Queue Length')
queue_time_stat = stats('WebFrontend/QueueTime')
Expand Down
10 changes: 8 additions & 2 deletions test/new_relic/agent/method_tracer_test.rb
Expand Up @@ -45,13 +45,13 @@ class NewRelic::Agent::MethodTracerTest < Test::Unit::TestCase
attr_reader :stats_engine

def setup
super
NewRelic::Agent.manual_start
@stats_engine = NewRelic::Agent.instance.stats_engine
@stats_engine.clear_stats
@scope_listener = NewRelic::Agent::MockScopeListener.new
@old_sampler = NewRelic::Agent.instance.transaction_sampler
@stats_engine.transaction_sampler = @scope_listener
super
end

def teardown
Expand Down Expand Up @@ -99,6 +99,8 @@ def test_add_method_tracer
method_to_be_traced 1,2,3,true,METRIC
elapsed = Time.now - t1

self.class.remove_method_tracer :method_to_be_traced, METRIC

stats = @stats_engine.get_stats(METRIC)
check_time stats.total_call_time, elapsed
assert stats.call_count == 1
Expand All @@ -122,13 +124,13 @@ def test_add_method_tracer__reentry

stats = @stats_engine.get_stats("Custom/#{self.class.name}/simple_method")
assert stats.call_count == 1

end

def test_method_traced?
assert !self.class.method_traced?(:method_to_be_traced, METRIC)
self.class.add_method_tracer :method_to_be_traced, METRIC
assert self.class.method_traced?(:method_to_be_traced, METRIC)
self.class.remove_method_tracer :method_to_be_traced, METRIC
end

def test_tt_only
Expand Down Expand Up @@ -171,6 +173,8 @@ def test_add_same_tracer_twice
t1 = Time.now
method_to_be_traced 1,2,3,true,METRIC
elapsed = Time.now - t1

self.class.remove_method_tracer :method_to_be_traced, METRIC

stats = @stats_engine.get_stats(METRIC)
check_time stats.total_call_time, elapsed
Expand All @@ -187,6 +191,8 @@ def test_add_tracer_with_dynamic_metric
method_to_be_traced 1,2,3,true,expected_metric
elapsed = Time.now - t1

self.class.remove_method_tracer :method_to_be_traced, metric_code

stats = @stats_engine.get_stats(expected_metric)
check_time stats.total_call_time, elapsed
assert stats.call_count == 1
Expand Down
8 changes: 4 additions & 4 deletions test/new_relic/collection_helper_test.rb
Expand Up @@ -6,8 +6,8 @@
class NewRelic::CollectionHelperTest < Test::Unit::TestCase

def setup
NewRelic::Agent.manual_start
super
NewRelic::Agent.manual_start
end
def teardown
super
Expand Down Expand Up @@ -114,11 +114,11 @@ def test_strip_backtrace
flunk "should throw"
rescue => e
#puts e
#puts e.backtrace.join("\n")
#puts e.backtrace.grep(/trace/).join("\n")
#puts "\n\n"
clean_trace = strip_nr_from_backtrace(e.backtrace)
assert_equal 0, clean_trace.grep(/newrelic_rpm/).size, clean_trace.inspect
assert_equal 1, clean_trace.grep(/trace/).size, clean_trace.inspect
assert_equal 0, clean_trace.grep(/newrelic_rpm/).size, clean_trace.join("\n")
assert_equal 0, clean_trace.grep(/trace/).size, clean_trace.join("\n")
assert (clean_trace.grep(/find/).size >= 3), "should see at least three frames with 'find' in them (#{e}): \n#{clean_trace.join("\n")}"
ensure
ActiveRecordFixtures.teardown
Expand Down

0 comments on commit 4f8e4a7

Please sign in to comment.