benchmark_driver 0.15.7 → 0.15.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +4 -3
- data/CHANGELOG.md +4 -0
- data/README.md +1 -0
- data/exe/benchmark-driver +5 -0
- data/lib/benchmark_driver.rb +1 -0
- data/lib/benchmark_driver/rbenv.rb +1 -1
- data/lib/benchmark_driver/repeater.rb +1 -8
- data/lib/benchmark_driver/ridkuse.rb +1 -1
- data/lib/benchmark_driver/ruby_interface.rb +6 -0
- data/lib/benchmark_driver/rvm.rb +48 -0
- data/lib/benchmark_driver/version.rb +1 -1
- metadata +4 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e04ca43a3337139b2b4608642785f79e058062c9559a77bb488c4b6171d6f6a5
         | 
| 4 | 
            +
              data.tar.gz: 9f3d95083d39c13dcb7586a949df6d6ac95253f5ae0f36c1e611e1ed45316a6c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 513c1e5dbe4703708fb13cf970b1c96c14ff008ebfc5f13381388d5d857f1b76089cfd1b8347ef8a50461af5aa9aeed79180f1dcd68341586cb77081bed01cd1
         | 
| 7 | 
            +
              data.tar.gz: a90e8729e8724ad50fb42731d5e3fa53acb5a722e3eb2ae26f18a435f9cb02af6eb0a6a69a2676cb02cceab9d7cc563b751e477819497f99fcedf42a918362a6
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -75,6 +75,7 @@ Usage: benchmark-driver [options] [YAML|RUBY] | |
| 75 75 | 
             
                -o, --output [TYPE]              Specify output type: compare, simple, markdown, record (default: compare)
         | 
| 76 76 | 
             
                -e, --executables [EXECS]        Ruby executables (e1::path1 arg1; e2::path2 arg2;...)
         | 
| 77 77 | 
             
                    --rbenv [VERSIONS]           Ruby executables in rbenv (x.x.x arg1;y.y.y arg2;...)
         | 
| 78 | 
            +
                    --rvm [VERSIONS]             Ruby executables in rvm (x.x.x arg1;y.y.y arg2;...)
         | 
| 78 79 | 
             
                    --repeat-count [NUM]         Try benchmark NUM times and use the fastest result or the worst memory usage
         | 
| 79 80 | 
             
                    --repeat-result [TYPE]       Yield "best", "average" or "worst" result with --repeat-count (default: best)
         | 
| 80 81 | 
             
                    --bundler                    Install and use gems specified in Gemfile
         | 
    
        data/exe/benchmark-driver
    CHANGED
    
    | @@ -48,6 +48,11 @@ config = BenchmarkDriver::Config.new.tap do |c| | |
| 48 48 | 
             
                    executables << BenchmarkDriver::Rbenv.parse_spec(version)
         | 
| 49 49 | 
             
                  end
         | 
| 50 50 | 
             
                end if system("which rbenv > #{File::NULL} 2>&1")
         | 
| 51 | 
            +
                o.on('--rvm VERSIONS', String, 'Ruby executables in rvm (x.x.x arg1;y.y.y arg2;...)') do |r|
         | 
| 52 | 
            +
                  r.split(';').each do |version|
         | 
| 53 | 
            +
                    executables << BenchmarkDriver::Rvm.parse_spec(version)
         | 
| 54 | 
            +
                  end
         | 
| 55 | 
            +
                end if system("which rvm > #{File::NULL} 2>&1")
         | 
| 51 56 | 
             
                o.on('--ridkuse VERSIONS', String, 'Ruby executables in ridk use (x.x.x arg1;y.y.y arg2;...) for RubyInstaller2 on Windows') do |r|
         | 
| 52 57 | 
             
                  r.split(';').each do |version|
         | 
| 53 58 | 
             
                    executables << BenchmarkDriver::RidkUse.parse_spec(version)
         | 
    
        data/lib/benchmark_driver.rb
    CHANGED
    
    | @@ -3,6 +3,7 @@ require 'benchmark_driver/config' | |
| 3 3 | 
             
            require 'benchmark_driver/job_parser'
         | 
| 4 4 | 
             
            require 'benchmark_driver/output'
         | 
| 5 5 | 
             
            require 'benchmark_driver/rbenv'
         | 
| 6 | 
            +
            require 'benchmark_driver/rvm'
         | 
| 6 7 | 
             
            require 'benchmark_driver/repeater'
         | 
| 7 8 | 
             
            require 'benchmark_driver/ridkuse'
         | 
| 8 9 | 
             
            require 'benchmark_driver/ruby_interface'
         | 
| @@ -11,7 +11,7 @@ module BenchmarkDriver | |
| 11 11 | 
             
                  path
         | 
| 12 12 | 
             
                end
         | 
| 13 13 |  | 
| 14 | 
            -
                # @param [String] full_spec - "2.5.0", "2.5.0 | 
| 14 | 
            +
                # @param [String] full_spec - "2.5.0", "2.5.0 --jit", "JIT::2.5.0 --jit", etc.
         | 
| 15 15 | 
             
                def self.parse_spec(full_spec)
         | 
| 16 16 | 
             
                  name, spec = full_spec.split('::', 2)
         | 
| 17 17 | 
             
                  spec ||= name # if `::` is not given, regard whole string as spec
         | 
| @@ -43,7 +43,7 @@ module BenchmarkDriver | |
| 43 43 | 
             
                  end
         | 
| 44 44 | 
             
                end
         | 
| 45 45 |  | 
| 46 | 
            -
                # @param [String] full_spec - "2.6.3", "2.6.3p62", "2.6.3 | 
| 46 | 
            +
                # @param [String] full_spec - "2.6.3", "2.6.3p62", "2.6.3 --jit", etc.
         | 
| 47 47 | 
             
                def self.parse_spec(full_spec)
         | 
| 48 48 | 
             
                  name, spec = full_spec.split('::', 2)
         | 
| 49 49 | 
             
                  spec ||= name # if `::` is not given, regard whole string as spec
         | 
| @@ -71,6 +71,12 @@ module BenchmarkDriver | |
| 71 71 | 
             
                  end
         | 
| 72 72 | 
             
                end
         | 
| 73 73 |  | 
| 74 | 
            +
                def rvm(*versions)
         | 
| 75 | 
            +
                  versions.each do |version|
         | 
| 76 | 
            +
                    @executables << BenchmarkDriver::Rvm.parse_spec(version)
         | 
| 77 | 
            +
                  end
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
             | 
| 74 80 | 
             
                # ridk use command for RubyInstaller2 on Windows
         | 
| 75 81 | 
             
                def ridkuse(*versions)
         | 
| 76 82 | 
             
                  versions.each do |version|
         | 
| @@ -0,0 +1,48 @@ | |
| 1 | 
            +
            require 'shellwords'
         | 
| 2 | 
            +
            require 'pathname'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module BenchmarkDriver
         | 
| 5 | 
            +
              module Rvm
         | 
| 6 | 
            +
                # Execute "which -a ruby" command to get a list of Ruby versions from $PATH.
         | 
| 7 | 
            +
                def self.system_ruby_path
         | 
| 8 | 
            +
                  env_rubies = `which -a ruby`
         | 
| 9 | 
            +
                  abort "Failed to execute 'which -a ruby'" unless $?.success?
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  env_rubies.each_line do |line|
         | 
| 12 | 
            +
                    if !line.match(ENV['rvm_path'])
         | 
| 13 | 
            +
                      return line.rstrip
         | 
| 14 | 
            +
                    end
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                  abort "System ruby not found"
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                # @param [String] version
         | 
| 20 | 
            +
                def self.ruby_path(version)
         | 
| 21 | 
            +
                  path = if version == 'system'
         | 
| 22 | 
            +
                    system_ruby_path
         | 
| 23 | 
            +
                  else
         | 
| 24 | 
            +
                    rubies = Pathname.new("#{ENV['rvm_path']}/rubies")
         | 
| 25 | 
            +
                    abort "Rubies path '#{rubies}' not found" unless rubies.exist?
         | 
| 26 | 
            +
                    ruby_root = rubies.children.detect { |path| path.directory? && path.basename.to_s.match(version) }
         | 
| 27 | 
            +
                    abort "Version '#{version}' not found" unless ruby_root
         | 
| 28 | 
            +
                    "#{ruby_root}/bin/ruby"
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  unless File.exist?(path)
         | 
| 32 | 
            +
                    abort "Binary '#{path}' not found"
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
                  path
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                # @param [String] full_spec - "2.5.0", "2.5.0 --jit", "JIT::2.5.0 --jit", etc.
         | 
| 38 | 
            +
                def self.parse_spec(full_spec)
         | 
| 39 | 
            +
                  name, spec = full_spec.split('::', 2)
         | 
| 40 | 
            +
                  spec ||= name # if `::` is not given, regard whole string as spec
         | 
| 41 | 
            +
                  version, *args = spec.shellsplit
         | 
| 42 | 
            +
                  BenchmarkDriver::Config::Executable.new(
         | 
| 43 | 
            +
                    name: name,
         | 
| 44 | 
            +
                    command: [BenchmarkDriver::Rvm.ruby_path(version), *args],
         | 
| 45 | 
            +
                  )
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: benchmark_driver
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.15. | 
| 4 | 
            +
              version: 0.15.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Takashi Kokubun
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2020-01-04 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -124,6 +124,7 @@ files: | |
| 124 124 | 
             
            - lib/benchmark_driver/runner/recorded.rb
         | 
| 125 125 | 
             
            - lib/benchmark_driver/runner/ruby_stdout.rb
         | 
| 126 126 | 
             
            - lib/benchmark_driver/runner/time.rb
         | 
| 127 | 
            +
            - lib/benchmark_driver/rvm.rb
         | 
| 127 128 | 
             
            - lib/benchmark_driver/struct.rb
         | 
| 128 129 | 
             
            - lib/benchmark_driver/version.rb
         | 
| 129 130 | 
             
            homepage: https://github.com/benchmark-driver/benchmark-driver
         | 
| @@ -145,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 145 146 | 
             
                - !ruby/object:Gem::Version
         | 
| 146 147 | 
             
                  version: '0'
         | 
| 147 148 | 
             
            requirements: []
         | 
| 148 | 
            -
            rubygems_version: 3. | 
| 149 | 
            +
            rubygems_version: 3.1.2
         | 
| 149 150 | 
             
            signing_key: 
         | 
| 150 151 | 
             
            specification_version: 4
         | 
| 151 152 | 
             
            summary: Fully-featured accurate benchmark driver for Ruby
         |