cwb 0.1.0
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 +7 -0
- data/.gitignore +22 -0
- data/.rspec +2 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +4 -0
- data/Guardfile +49 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +8 -0
- data/bin/cwb +4 -0
- data/cwb.gemspec +31 -0
- data/lib/cwb/benchmark.rb +22 -0
- data/lib/cwb/benchmark_suite.rb +35 -0
- data/lib/cwb/cli.rb +18 -0
- data/lib/cwb/client.rb +138 -0
- data/lib/cwb/config.rb +54 -0
- data/lib/cwb/directory_parser.rb +60 -0
- data/lib/cwb/directory_suite_parser.rb +30 -0
- data/lib/cwb/file_parser.rb +32 -0
- data/lib/cwb/parser.rb +40 -0
- data/lib/cwb/parser_factory.rb +17 -0
- data/lib/cwb/version.rb +3 -0
- data/lib/cwb.rb +19 -0
- data/lib/hash_extension.rb +27 -0
- data/lib/inflection.rb +13 -0
- data/node.yml +10 -0
- data/spec/cwb/benchmark_spec.rb +22 -0
- data/spec/cwb/cli_spec.rb +53 -0
- data/spec/cwb/client_spec.rb +33 -0
- data/spec/cwb_spec.rb +7 -0
- data/spec/data/benchmarks/benchmarks.txt +5 -0
- data/spec/data/benchmarks/disabled/disabled.rb +7 -0
- data/spec/data/benchmarks/my-disabled-suite/my_disabled_suite.rb +7 -0
- data/spec/data/benchmarks/node.rb +15 -0
- data/spec/data/benchmarks/node.yml +11 -0
- data/spec/data/benchmarks/shell-example/shell_example.rb +11 -0
- data/spec/data/benchmarks/sysbench/metrics.csv +3 -0
- data/spec/data/benchmarks/sysbench/node.yml +10 -0
- data/spec/data/benchmarks/sysbench/sysbench.rb +19 -0
- data/spec/data/benchmarks-suite/benchmark_suite.txt +3 -0
- data/spec/data/benchmarks-suite/benchmarks.txt +3 -0
- data/spec/data/benchmarks-suite/disabled/disabled.rb +7 -0
- data/spec/data/benchmarks-suite/my-custom-benchmark/my_custom_benchmark.rb +11 -0
- data/spec/data/benchmarks-suite/my-custom-suite/my_custom_suite.rb +14 -0
- data/spec/data/benchmarks-suite/my-disabled-suite/my_disabled_suite.rb +7 -0
- data/spec/data/benchmarks-suite/shell-example/shell_example.rb +11 -0
- data/spec/data/benchmarks-suite/sysbench/sysbench.rb +11 -0
- data/spec/hash_spec.rb +43 -0
- data/spec/spec_helper.rb +35 -0
- metadata +242 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
# Implementation based on blogpost: http://reedy.in/words/archive/2015/01/08/deep-fetch/
|
2
|
+
# and hashie: https://github.com/intridea/hashie/blob/master/lib/hashie/extensions/deep_fetch.rb
|
3
|
+
module HashExtension
|
4
|
+
NOT_PRESENT = :symbol_for_non_present
|
5
|
+
|
6
|
+
def deep_fetch(*keys, default: NOT_PRESENT, &block)
|
7
|
+
keys.reduce(self) do |obj, arg|
|
8
|
+
begin
|
9
|
+
arg = Integer(arg) if obj.is_a? Array
|
10
|
+
obj.fetch(arg)
|
11
|
+
rescue => e
|
12
|
+
break block.call(arg) if block
|
13
|
+
if default.nil?
|
14
|
+
nil
|
15
|
+
elsif default == NOT_PRESENT
|
16
|
+
raise KeyError, "Could not fetch keypath (#{keys.join('.')}) at #{arg}", e.backtrace
|
17
|
+
else
|
18
|
+
default
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def fetch_keypath(keypath, default: NOT_PRESENT)
|
25
|
+
deep_fetch(*keypath.split('.'), default: default)
|
26
|
+
end
|
27
|
+
end
|
data/lib/inflection.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
module Inflection
|
2
|
+
def camelize
|
3
|
+
self.to_s.split('_').map {|w| w.capitalize}.join
|
4
|
+
end
|
5
|
+
|
6
|
+
def underscore
|
7
|
+
self.to_s.gsub(/::/, '/')
|
8
|
+
.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
|
9
|
+
.gsub(/([a-z\d])([A-Z])/,'\1_\2')
|
10
|
+
.tr("-", "_")
|
11
|
+
.downcase
|
12
|
+
end
|
13
|
+
end
|
data/node.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Cwb::Benchmark do
|
4
|
+
let(:test_config) { File.join(spec_data, "benchmarks") }
|
5
|
+
before { Cwb::Client.instance.reconfigure(Cwb::Config.from_dir(test_config)) }
|
6
|
+
|
7
|
+
context "sublasses" do
|
8
|
+
let(:sysbench) { Sysbench.new }
|
9
|
+
|
10
|
+
it "should get injected a Cwb::Client instance" do
|
11
|
+
expect(sysbench.cwb).to_not be_nil
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should get the value of an existing attribute" do
|
15
|
+
expect(sysbench.existing_attribute).to eq "sysbench --test=io run"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should get an empty value when accessing a non-existing attribute" do
|
19
|
+
expect(sysbench.non_existing_attribute).to be_empty
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
def init_paths(benchmarks_path)
|
4
|
+
let(:benchmarks_path) { benchmarks_path }
|
5
|
+
let(:sysbench_path) { File.join(benchmarks_path, "sysbench" , "sysbench.rb") }
|
6
|
+
let(:sysbench_msg) { "execute sysbench in #{File.dirname(sysbench_path)}\n" }
|
7
|
+
let(:shell_example_path) { File.join(benchmarks_path, "shell-example" , "shell_example.rb") }
|
8
|
+
let(:shell_example_msg) { "execute shell-example in #{File.dirname(shell_example_path)}\n" }
|
9
|
+
let(:my_custom_benchmark_path) { File.join(benchmarks_path, "my-custom-benchmark", "my_custom_benchmark.rb") }
|
10
|
+
let(:my_custom_benchmark_msg) { "execute my-custom-benchmark in #{File.dirname(my_custom_benchmark_path)}\n" }
|
11
|
+
let(:failing_benchmark_path) { File.join(benchmarks_path, "disabled", "disabled.rb") }
|
12
|
+
end
|
13
|
+
|
14
|
+
RSpec.describe Cwb::Cli do
|
15
|
+
let(:cli) { Cwb::Cli.new }
|
16
|
+
let(:success_msg) { "Notify finished postprocessing.\n" }
|
17
|
+
let(:error_msg) { "Notify failure on running" }
|
18
|
+
init_paths(File.join(spec_data, "benchmarks"))
|
19
|
+
|
20
|
+
context "file" do
|
21
|
+
it "should invoke the execute method of the given benchmark" do
|
22
|
+
expect { cli.execute(sysbench_path) }.to output(sysbench_msg + success_msg).to_stdout
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should invoke the execute method when called from the command line" do
|
26
|
+
expect(`#{File.join(Cwb::root, "bin", "cwb")} execute #{sysbench_path}`).to eq(sysbench_msg + success_msg)
|
27
|
+
expect($?.exitstatus).to eq(0)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should invoke the execute method when called from the command line via ruby" do
|
31
|
+
expect(`cd #{File.dirname(sysbench_path)} && ruby -I "#{File.join(Cwb::root, "lib")}" -r "#{sysbench_path}" -e "Sysbench.new.execute"`).to eq(sysbench_msg)
|
32
|
+
expect($?.exitstatus).to eq(0)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context "directory" do
|
37
|
+
it "should execute all enabled benchmarks (i.e., contained in the benchmarks.txt) in correct order" do
|
38
|
+
expect { cli.execute(benchmarks_path) }.to output(sysbench_msg + shell_example_msg + success_msg).to_stdout
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should notify a failed on running message on error" do
|
42
|
+
expect { cli.execute(failing_benchmark_path) }.to output(/#{error_msg}/).to_stdout & raise_error
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "directory with suite" do
|
47
|
+
init_paths(File.join(spec_data, "benchmarks-suite"))
|
48
|
+
|
49
|
+
it "should execute the benchmarks of the provided suite in correct order" do
|
50
|
+
expect { cli.execute(benchmarks_path) }.to output(sysbench_msg + my_custom_benchmark_msg + success_msg).to_stdout
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Cwb::Client do
|
4
|
+
let(:client) { Cwb::Client.instance }
|
5
|
+
|
6
|
+
context "cwb-server" do
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
context "local" do
|
11
|
+
let(:commands) { [ "sysbench --test=cpu --max-prime-number=20000 run",
|
12
|
+
"sysbench --test=io run", ] }
|
13
|
+
let(:test_config) { File.join(spec_data, "benchmarks", "sysbench") }
|
14
|
+
let(:metrics_file) { File.join(test_config, "metrics.csv") }
|
15
|
+
before { Cwb::Client.instance.reconfigure(Cwb::Config.from_dir(test_config)) }
|
16
|
+
|
17
|
+
it "should log single metric submission to the console" do
|
18
|
+
expect { client.submit_metric("time", "0", "340") }.to output("time,0,340\n").to_stdout
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should log bulk metric submission to the console" do
|
22
|
+
expect { client.submit_metrics("cpu_load", metrics_file) }.to output("0,30\n500,40\n1000,50\n").to_stdout
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return an empty string for non-configured attributes" do
|
26
|
+
expect(client.deep_fetch("non-existing", "attribute")).to be_empty
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should return attributes from the config file" do
|
30
|
+
expect(client.deep_fetch("sysbench", "commands")).to eq(commands)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/spec/cwb_spec.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
NODE = {
|
4
|
+
"cwb" => {
|
5
|
+
"server" => "localhost",
|
6
|
+
"repetitions" => 1,
|
7
|
+
"metrics" => [ "cpu_model_name" ]
|
8
|
+
},
|
9
|
+
"sysbench" => {
|
10
|
+
"commands" => [ "sysbench --test=cpu --max-prime-number=20000 run",
|
11
|
+
"sysbench --test=io run",
|
12
|
+
]
|
13
|
+
}
|
14
|
+
}
|
15
|
+
File.write('./node.yml', NODE.to_yaml)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "cwb"
|
2
|
+
|
3
|
+
class Sysbench < Cwb::Benchmark
|
4
|
+
def cwb
|
5
|
+
@cwb
|
6
|
+
end
|
7
|
+
|
8
|
+
def existing_attribute
|
9
|
+
@cwb.deep_fetch("sysbench", "commands", "1")
|
10
|
+
end
|
11
|
+
|
12
|
+
def non_existing_attribute
|
13
|
+
@cwb.deep_fetch("some", "non_existing", "attribute")
|
14
|
+
end
|
15
|
+
|
16
|
+
def execute
|
17
|
+
puts "execute sysbench in #{`pwd`}"
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "cwb"
|
2
|
+
|
3
|
+
class MyCustomSuite < Cwb::BenchmarkSuite
|
4
|
+
def cwb
|
5
|
+
@cwb
|
6
|
+
end
|
7
|
+
|
8
|
+
def execute_suite(cwb_benchmarks)
|
9
|
+
my_list = get_list([Sysbench, MyCustomBenchmark], cwb_benchmarks)
|
10
|
+
execute_all(my_list)
|
11
|
+
@cwb.notify_finished_execution
|
12
|
+
# @cwb.execute(Sysbench.new)
|
13
|
+
end
|
14
|
+
end
|
data/spec/hash_spec.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
describe HashExtension do
|
2
|
+
let(:hash) {
|
3
|
+
{
|
4
|
+
"webserver" => {
|
5
|
+
"users" => {
|
6
|
+
"admin" => {
|
7
|
+
"password" => "some amazing password"
|
8
|
+
}
|
9
|
+
}
|
10
|
+
}
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
describe "#deep_fetch" do
|
15
|
+
it "returns the correct value for the provided keys" do
|
16
|
+
expect(hash.deep_fetch("webserver","users","admin","password")).to eq("some amazing password")
|
17
|
+
end
|
18
|
+
it "raises KeyError if the provided keys do not exist" do
|
19
|
+
expect{ hash.deep_fetch("webserver","users","jdoe","password") }.to raise_error(KeyError)
|
20
|
+
end
|
21
|
+
it "returns the provided default value (String) if the key does not exist" do
|
22
|
+
expect(hash.deep_fetch("webserver","users","jdoe","password", default: "Key Missing")).to eq("Key Missing")
|
23
|
+
end
|
24
|
+
it "returns the provided default value (boolean) if the key does not exist" do
|
25
|
+
expect(hash.deep_fetch("webserver","users","jdoe","password", default: false)).to be false
|
26
|
+
end
|
27
|
+
it "returns the provided default value (nil) if the key does not exist" do
|
28
|
+
expect(hash.deep_fetch("webserver","users","jdoe","password", default: nil)).to be nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#fetch_keypath" do
|
33
|
+
it "returns the correct value for the provided keypath" do
|
34
|
+
expect(hash.fetch_keypath("webserver.users.admin.password")).to eq("some amazing password")
|
35
|
+
end
|
36
|
+
it "raises KeyError if the provided keys do not exist" do
|
37
|
+
expect { hash.fetch_keypath("webserver.users.jdoe.password") }.to raise_error(KeyError)
|
38
|
+
end
|
39
|
+
it "returns the provided default value if the key does not exist" do
|
40
|
+
expect(hash.fetch_keypath("webserver.users.jdoe.password", default: "Key Missing")).to eq("Key Missing")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require "simplecov"
|
2
|
+
class LineFilter < SimpleCov::Filter
|
3
|
+
def matches?(source_file)
|
4
|
+
source_file.lines.count < filter_argument
|
5
|
+
end
|
6
|
+
end
|
7
|
+
SimpleCov.start do
|
8
|
+
add_group "Long files" do |src_file|
|
9
|
+
src_file.lines.count > 100
|
10
|
+
end
|
11
|
+
add_group "Short files", LineFilter.new(5)
|
12
|
+
add_filter "spec/data"
|
13
|
+
end
|
14
|
+
|
15
|
+
require "pry"
|
16
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
17
|
+
require "cwb"
|
18
|
+
|
19
|
+
# Add gem root directory to LOAD_PATH
|
20
|
+
$LOAD_PATH << Cwb::root
|
21
|
+
|
22
|
+
def spec_data
|
23
|
+
File.join(Cwb::root, "spec", "data")
|
24
|
+
end
|
25
|
+
|
26
|
+
# Requires supporting ruby files spec/data/ and its subdirectories.
|
27
|
+
Dir["spec/data/**/*.rb"].each { |f| require f }
|
28
|
+
|
29
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
30
|
+
RSpec.configure do |config|
|
31
|
+
config.run_all_when_everything_filtered = true
|
32
|
+
config.filter_run :focus
|
33
|
+
|
34
|
+
config.order = "random"
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,242 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cwb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Joel Scheuner
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-04-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.19'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.19'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.9.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: faraday_middleware
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.9.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.9.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.6'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.6'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.2'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.2'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.9'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.9'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: guard-rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '4.5'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '4.5'
|
139
|
+
description:
|
140
|
+
email:
|
141
|
+
- joel.scheuner.dev@gmail.com
|
142
|
+
executables:
|
143
|
+
- cwb
|
144
|
+
extensions: []
|
145
|
+
extra_rdoc_files: []
|
146
|
+
files:
|
147
|
+
- ".gitignore"
|
148
|
+
- ".rspec"
|
149
|
+
- CHANGELOG.md
|
150
|
+
- Gemfile
|
151
|
+
- Guardfile
|
152
|
+
- LICENSE.txt
|
153
|
+
- README.md
|
154
|
+
- Rakefile
|
155
|
+
- bin/cwb
|
156
|
+
- cwb.gemspec
|
157
|
+
- lib/cwb.rb
|
158
|
+
- lib/cwb/benchmark.rb
|
159
|
+
- lib/cwb/benchmark_suite.rb
|
160
|
+
- lib/cwb/cli.rb
|
161
|
+
- lib/cwb/client.rb
|
162
|
+
- lib/cwb/config.rb
|
163
|
+
- lib/cwb/directory_parser.rb
|
164
|
+
- lib/cwb/directory_suite_parser.rb
|
165
|
+
- lib/cwb/file_parser.rb
|
166
|
+
- lib/cwb/parser.rb
|
167
|
+
- lib/cwb/parser_factory.rb
|
168
|
+
- lib/cwb/version.rb
|
169
|
+
- lib/hash_extension.rb
|
170
|
+
- lib/inflection.rb
|
171
|
+
- node.yml
|
172
|
+
- spec/cwb/benchmark_spec.rb
|
173
|
+
- spec/cwb/cli_spec.rb
|
174
|
+
- spec/cwb/client_spec.rb
|
175
|
+
- spec/cwb_spec.rb
|
176
|
+
- spec/data/benchmarks-suite/benchmark_suite.txt
|
177
|
+
- spec/data/benchmarks-suite/benchmarks.txt
|
178
|
+
- spec/data/benchmarks-suite/disabled/disabled.rb
|
179
|
+
- spec/data/benchmarks-suite/my-custom-benchmark/my_custom_benchmark.rb
|
180
|
+
- spec/data/benchmarks-suite/my-custom-suite/my_custom_suite.rb
|
181
|
+
- spec/data/benchmarks-suite/my-disabled-suite/my_disabled_suite.rb
|
182
|
+
- spec/data/benchmarks-suite/shell-example/shell_example.rb
|
183
|
+
- spec/data/benchmarks-suite/sysbench/sysbench.rb
|
184
|
+
- spec/data/benchmarks/benchmarks.txt
|
185
|
+
- spec/data/benchmarks/disabled/disabled.rb
|
186
|
+
- spec/data/benchmarks/my-disabled-suite/my_disabled_suite.rb
|
187
|
+
- spec/data/benchmarks/node.rb
|
188
|
+
- spec/data/benchmarks/node.yml
|
189
|
+
- spec/data/benchmarks/shell-example/shell_example.rb
|
190
|
+
- spec/data/benchmarks/sysbench/metrics.csv
|
191
|
+
- spec/data/benchmarks/sysbench/node.yml
|
192
|
+
- spec/data/benchmarks/sysbench/sysbench.rb
|
193
|
+
- spec/hash_spec.rb
|
194
|
+
- spec/spec_helper.rb
|
195
|
+
homepage: https://github.com/sealuzh/cloud-workbench
|
196
|
+
licenses:
|
197
|
+
- MIT
|
198
|
+
metadata: {}
|
199
|
+
post_install_message:
|
200
|
+
rdoc_options: []
|
201
|
+
require_paths:
|
202
|
+
- lib
|
203
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - ">="
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '0'
|
208
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
|
+
requirements:
|
210
|
+
- - ">="
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '0'
|
213
|
+
requirements: []
|
214
|
+
rubyforge_project:
|
215
|
+
rubygems_version: 2.2.2
|
216
|
+
signing_key:
|
217
|
+
specification_version: 4
|
218
|
+
summary: Provides Cloud WorkBench (CWB) infrastructure for cloud VMs and local testing.
|
219
|
+
test_files:
|
220
|
+
- spec/cwb/benchmark_spec.rb
|
221
|
+
- spec/cwb/cli_spec.rb
|
222
|
+
- spec/cwb/client_spec.rb
|
223
|
+
- spec/cwb_spec.rb
|
224
|
+
- spec/data/benchmarks-suite/benchmark_suite.txt
|
225
|
+
- spec/data/benchmarks-suite/benchmarks.txt
|
226
|
+
- spec/data/benchmarks-suite/disabled/disabled.rb
|
227
|
+
- spec/data/benchmarks-suite/my-custom-benchmark/my_custom_benchmark.rb
|
228
|
+
- spec/data/benchmarks-suite/my-custom-suite/my_custom_suite.rb
|
229
|
+
- spec/data/benchmarks-suite/my-disabled-suite/my_disabled_suite.rb
|
230
|
+
- spec/data/benchmarks-suite/shell-example/shell_example.rb
|
231
|
+
- spec/data/benchmarks-suite/sysbench/sysbench.rb
|
232
|
+
- spec/data/benchmarks/benchmarks.txt
|
233
|
+
- spec/data/benchmarks/disabled/disabled.rb
|
234
|
+
- spec/data/benchmarks/my-disabled-suite/my_disabled_suite.rb
|
235
|
+
- spec/data/benchmarks/node.rb
|
236
|
+
- spec/data/benchmarks/node.yml
|
237
|
+
- spec/data/benchmarks/shell-example/shell_example.rb
|
238
|
+
- spec/data/benchmarks/sysbench/metrics.csv
|
239
|
+
- spec/data/benchmarks/sysbench/node.yml
|
240
|
+
- spec/data/benchmarks/sysbench/sysbench.rb
|
241
|
+
- spec/hash_spec.rb
|
242
|
+
- spec/spec_helper.rb
|