benchmark_driver 0.15.13 → 0.15.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ae35c25d0a6bd2e2c5d5e04522c81fb99f020d4e53cd0ecb67964cdef95460c
4
- data.tar.gz: 8af270bebabda4f1da320542a46f4ab4cee421a024996b9ddf6b46a2da7ff354
3
+ metadata.gz: 6d1052380e38062b6a13370022a91959621902cf2d08263d29fc504c9297655f
4
+ data.tar.gz: 32067954ee2170d157f974ead3dce80aa7a2d0dca6f322f2aae053693775a656
5
5
  SHA512:
6
- metadata.gz: 2a0c0f81f4e0f5854eb10c139dfbe94e90993239121a318007567a7edcb6193cf5fe455dfe6b41223bd5244b754c56579604d3b67e0599385c897ff9d268fca1
7
- data.tar.gz: f0b8927b886d57f43b6bdd48958e12f6c7870713b60a64f36ea5c04b3d89722c718c1057a59b3e2d0aa77a1609d8ad9cd193b241ec0ebb10f68a78bea3ea7209
6
+ metadata.gz: d8d5417b30e026ea54fe080f434b89fde4c36f8136b3ea082b972d032730ed421d019c5eb2213efbcf5d0e905cc41ced746db31a0af5f1f3c8edfb1ecfb16320
7
+ data.tar.gz: 72da43bfd0d31749296ceb806da6210a86d55ad1046a06a8b2664e023c8ace1f782e1df1f7919205d4e9e95abc736440360fab1a1f8c6824028abc0698ebd2a8
@@ -1,3 +1,7 @@
1
+ # v0.15.14
2
+
3
+ - YAML's `type` key allows a value with `/` to specify a relative path of a runner plugin
4
+
1
5
  # v0.15.13
2
6
 
3
7
  - Show a command and stdout on `-vv` for `ips`, `time`, and `block` runner
@@ -124,7 +124,7 @@ jobs = config.paths.flat_map do |path|
124
124
 
125
125
  begin
126
126
  # `working_directory` is YAML-specific special parameter, mainly for "command_stdout"
127
- BenchmarkDriver::JobParser.parse(job, default_params: { working_directory: File.dirname(path) })
127
+ BenchmarkDriver::JobParser.parse(job, working_directory: File.dirname(path))
128
128
  rescue ArgumentError
129
129
  $stderr.puts "benchmark-driver: Failed to parse #{path.dump}."
130
130
  $stderr.puts ' YAML format may be wrong. See error below:'
@@ -3,24 +3,27 @@ require 'benchmark_driver/runner'
3
3
  module BenchmarkDriver
4
4
  class << JobParser = Module.new
5
5
  # @param [Hash] config
6
- # @param [Hash] default_params - Special default values not written in job definition
7
- def parse(config, default_params: {})
6
+ # @param [Hash] working_directory - YAML-specific special parameter for "command_stdout" and a relative path in type
7
+ def parse(config, working_directory: nil)
8
8
  config = symbolize_keys(config)
9
9
  type = config.fetch(:type)
10
10
  if !type.is_a?(String)
11
11
  raise ArgumentError.new("Invalid type: #{config[:type].inspect} (expected String)")
12
- elsif !type.match(/\A[A-Za-z0-9_]+\z/)
13
- raise ArgumentError.new("Invalid type: #{config[:type].inspect} (expected to include only [A-Za-z0-9_])")
12
+ elsif !type.match(/\A[A-Za-z0-9_\/]+\z/)
13
+ raise ArgumentError.new("Invalid type: #{config[:type].inspect} (expected to include only [A-Za-z0-9_\/])")
14
14
  end
15
15
  config.delete(:type)
16
16
 
17
17
  # Dynamic dispatch for plugin support
18
- require "benchmark_driver/runner/#{type}"
18
+ if type.include?('/')
19
+ require File.join(working_directory || '.', type)
20
+ type = File.basename(type)
21
+ else
22
+ require "benchmark_driver/runner/#{type}"
23
+ end
19
24
  job = ::BenchmarkDriver.const_get("Runner::#{camelize(type)}::JobParser", false).parse(**config)
20
- default_params.each do |key, value|
21
- if job.respond_to?(key) && job.respond_to?("#{key}=") && job.public_send(key).nil?
22
- job.public_send("#{key}=", value)
23
- end
25
+ if job.respond_to?(:working_directory) && job.respond_to?(:working_directory=) && job.working_directory.nil?
26
+ job.working_directory = working_directory
24
27
  end
25
28
  job
26
29
  end
@@ -1,3 +1,3 @@
1
1
  module BenchmarkDriver
2
- VERSION = '0.15.13'
2
+ VERSION = '0.15.14'
3
3
  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.13
4
+ version: 0.15.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-03 00:00:00.000000000 Z
11
+ date: 2020-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler