diff options
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/lib/active_support/testing/performance.rb | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/activesupport/lib/active_support/testing/performance.rb b/activesupport/lib/active_support/testing/performance.rb index 89bebf5913..377150a0a6 100644 --- a/activesupport/lib/active_support/testing/performance.rb +++ b/activesupport/lib/active_support/testing/performance.rb @@ -102,19 +102,35 @@ module ActiveSupport end def record + avg = @metric.total / profile_options[:runs].to_i + data = [full_test_name, @metric.name, avg, Time.now.utc.xmlschema] * ',' with_output_file do |file| - file.puts [full_test_name, @metric.name, - @metric.total, profile_options[:runs].to_i, - @metric.total / profile_options[:runs].to_i, - Time.now.utc.xmlschema, - Rails::VERSION::STRING, - defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby', - RUBY_VERSION, RUBY_PATCHLEVEL, RUBY_PLATFORM].join(',') + file.puts "#{data},#{environment}" end end + def environment + unless defined? @env + app = "#{$1}.#{$2}" if `git branch -v` =~ /^\* (\S+)\s+(\S+)/ + + rails = Rails::VERSION::STRING + if File.directory?('vendor/rails/.git') + Dir.chdir('vendor/rails') do + rails += "#{$1}.#{$2}" if `git branch -v` =~ /^\* (\S+)\s+(\S+)/ + end + end + + ruby = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby' + ruby += "-#{RUBY_VERSION}.#{RUBY_PATCHLEVEL}" + + @env = [app, rails, ruby, RUBY_PLATFORM] * ',' + end + + @env + end + protected - HEADER = 'test,metric,measurement,runs,average,created_at,rails_version,ruby_engine,ruby_version,ruby_patchlevel,ruby_platform' + HEADER = 'test,metric,measurement,created_at,app,rails,ruby,platform' def with_output_file fname = "#{profile_options[:output]}/benchmarks.csv" |