rgot 0.1.4 → 1.1.0

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
- SHA1:
3
- metadata.gz: 7571a770fb9c1047be1ec5e1e46f00111aa66948
4
- data.tar.gz: 893e306ae56bf1c564fe174071d77f53035f2f3d
2
+ SHA256:
3
+ metadata.gz: edabddcdf99d28070fbe94f391d49d7c034cb1b6d467629c76fc671f7d27956b
4
+ data.tar.gz: 642606670788ef496178d91b9450f6c08bb97e8e4f9e14442e0868ddf0c2acbd
5
5
  SHA512:
6
- metadata.gz: a66f756df701873ad1acdae4202d89586946c86251e9b28ddb64fe7baaa4fac2ec782a938f657d0215830420bbe1c8166b04ccdf6bbc3a389916ebcadc3d76d2
7
- data.tar.gz: 74f482d803f640563393a3395984a9e4b6f11ebc18f269dd1047839dab2d05b8f5164fff5d59f22c794872b1f5bc502bd5c432e7e06f16722374c0ccbcda61c2
6
+ metadata.gz: eb8824c1730be5395ffb22b3c075239b612a987db000367c804201394305b080834bb246c7c198da556e26090ae7a8424830b6253f7c10fd0183662ff6d490d0
7
+ data.tar.gz: 4064bdb31930c1cc0a072ab6c7113f93f66ce8cd3bafd4208824c36a5c591685a0e82f7e09758ff32a4d342eefee64efeb92910e8b45c75a48175571f84e03f7
@@ -0,0 +1,30 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ pull_request:
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ name: Ruby ${{ matrix.ruby }}
14
+ strategy:
15
+ matrix:
16
+ ruby:
17
+ - '2.6.10'
18
+ - '2.7.6'
19
+ - '3.0.4'
20
+ - '3.1.2'
21
+
22
+ steps:
23
+ - uses: actions/checkout@v2
24
+ - name: Set up Ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby }}
28
+ bundler-cache: true
29
+ - name: Run the default task
30
+ run: bundle exec rake
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Rgot
2
2
  ===
3
3
 
4
- [![Build Status](https://travis-ci.org/ksss/rgot.svg)](https://travis-ci.org/ksss/rgot)
4
+ [![Ruby](https://github.com/ksss/rgot/actions/workflows/main.yml/badge.svg)](https://github.com/ksss/rgot/actions/workflows/main.yml)
5
5
 
6
6
  Ruby + Golang Testing = Rgot
7
7
 
@@ -36,8 +36,8 @@ module SampleTest
36
36
  s = Sample.new
37
37
  DATA.each do |ts|
38
38
  sum = s.sum(ts.left, ts.right)
39
- unless sum.kind_of?(Fixnum)
40
- t.error("expect Fixnum got #{sum.class}")
39
+ unless sum.kind_of?(Integer)
40
+ t.error("expect Integer got #{sum.class}")
41
41
  end
42
42
  unless sum == ts.expect
43
43
  t.error("expect #{ts.expect} got #{sum}")
@@ -131,6 +131,36 @@ end
131
131
 
132
132
  So, you can notice that the sample code is wrong.
133
133
 
134
+ # Table Driven Tests
135
+
136
+ ```rb
137
+ FLAGTESTS = [
138
+ ["%a", "[%a]"],
139
+ ["%-a", "[%-a]"],
140
+ ["%+a", "[%+a]"],
141
+ ["%#a", "[%#a]"],
142
+ ["% a", "[% a]"],
143
+ ["%0a", "[%0a]"],
144
+ ["%1.2a", "[%1.2a]"],
145
+ ["%-1.2a", "[%-1.2a]"],
146
+ ["%+1.2a", "[%+1.2a]"],
147
+ ["%-+1.2a", "[%+-1.2a]"],
148
+ ["%-+1.2abc", "[%+-1.2a]bc"],
149
+ ["%-1.2abc", "[%-1.2a]bc"],
150
+ ]
151
+
152
+ def test_flag_parser(t)
153
+ FLAGTESTS.each do |input, output|
154
+ s = Flag.print(input)
155
+ unless s == output
156
+ t.errorf("Flag.print(%p) => %p, want %p", input, s, output)
157
+ end
158
+ end
159
+ end
160
+ ```
161
+
162
+ see https://github.com/golang/go/wiki/TableDrivenTests
163
+
134
164
  # Naming convention
135
165
 
136
166
  ## Filename
data/Rakefile CHANGED
@@ -2,8 +2,11 @@ require "bundler/gem_tasks"
2
2
 
3
3
  desc "test to rgot"
4
4
  task :test do |t|
5
- target = "test/{rgot_common,rgot}_test.rb"
6
- ruby "bin/rgot -v #{target}"
5
+ targets = [
6
+ "test/rgot_common_test.rb",
7
+ "test/rgot_test.rb",
8
+ ]
9
+ ruby "bin/rgot -v #{targets.join(' ')}"
7
10
  end
8
11
 
9
12
  task :default => [:test]
data/bin/rgot CHANGED
@@ -1,136 +1,4 @@
1
1
  #! /usr/bin/env ruby
2
- require 'optparse'
3
- require 'rgot'
2
+ require 'rgot/cli'
4
3
 
5
- opts = Rgot::M::Options.new
6
- require_paths = []
7
- parser = OptionParser.new do |o|
8
- o.on '-v', '--verbose', "log all tests" do |arg|
9
- Rgot.class_eval{ @chatty = arg }
10
- end
11
- o.on '--version', "show Rgot version" do |arg|
12
- puts "Rgot v#{Rgot::VERSION}"
13
- exit 0
14
- end
15
- o.on '--bench [regexp]', "benchmark" do |arg|
16
- unless arg
17
- raise Rgot::OptionError, "missing argument for flag --bench"
18
- end
19
- opts.bench = arg
20
- end
21
- o.on '--benchtime [sec]', "benchmark running time" do |arg|
22
- opts.benchtime = arg
23
- end
24
- o.on '--timeout [sec]', "set timeout sec to testing" do |arg|
25
- opts.timeout = arg
26
- end
27
- o.on '--cpu [count,...]', "set cpu counts of comma split" do |arg|
28
- opts.cpu = arg
29
- end
30
- o.on '--thread [count,...]', "set thread counts of comma split" do |arg|
31
- opts.thread = arg
32
- end
33
- o.on '--require [path]', "load some code before running" do |arg|
34
- require_paths << arg
35
- end
36
- o.on '--load-path [path]', "Specify $LOAD_PATH directory" do |arg|
37
- $LOAD_PATH.unshift(arg)
38
- end
39
- end
40
- parser.parse!(ARGV)
41
- require_paths.each do |path|
42
- require path
43
- end
44
-
45
- ARGV.each do |target|
46
- if target
47
- if File.file?(target)
48
- require File.expand_path(target)
49
- elsif File.directory?(target)
50
- Dir.glob("./#{target}/**/*_test.rb") do |i|
51
- require i
52
- end
53
- else
54
- puts target
55
- end
56
- else
57
- Dir.glob("./**/*_test.rb") do |i|
58
- require i
59
- end
60
- end
61
- end
62
-
63
- modules = Object.constants.select { |c|
64
- next if c == :FileTest
65
- /.*Test\z/ =~ c
66
- }.map{ |c|
67
- Object.const_get(c)
68
- }
69
-
70
- # if 1 != modules.length
71
- # puts "can not load module. found #{modules.join(', ')}"
72
- # exit 1
73
- # end
74
-
75
- code = 0
76
- modules.each do |test_module|
77
- begin
78
- pid = fork {
79
- tests = []
80
- benchmarks = []
81
- examples = []
82
- main = nil
83
- methods = test_module.instance_methods.sort
84
- methods.grep(/\Atest_/).each do |m|
85
- if m == :test_main && main.nil?
86
- main = Rgot::InternalTest.new(test_module, m)
87
- else
88
- tests << Rgot::InternalTest.new(test_module, m)
89
- end
90
- end
91
-
92
- methods.grep(/\Abenchmark_/).each do |m|
93
- benchmarks << Rgot::InternalBenchmark.new(test_module, m)
94
- end
95
-
96
- methods.grep(/\Aexample_?/).each do |m|
97
- examples << Rgot::InternalExample.new(test_module, m)
98
- end
99
-
100
- duration = Rgot.now
101
- at_exit {
102
- template = "%s\t%s\t%.3fs"
103
-
104
- case $!
105
- when SystemExit
106
- if $!.success?
107
- # exit 0
108
- puts sprintf(template, "ok", test_module, Rgot.now - duration)
109
- else
110
- # exit 1
111
- puts sprintf(template, "FAIL", test_module, Rgot.now - duration)
112
- end
113
- when NilClass
114
- # not raise, not exit
115
- else
116
- # any exception
117
- puts sprintf(template, "FAIL", test_module, Rgot.now - duration)
118
- end
119
- }
120
- m = Rgot::M.new(tests: tests, benchmarks: benchmarks, examples: examples, opts: opts)
121
- if main
122
- main.module.extend main.module
123
- main.module.instance_method(main.name).bind(main.module).call(m)
124
- else
125
- exit m.run
126
- end
127
- }
128
- ensure
129
- _, status = Process.waitpid2(pid)
130
- unless status.success?
131
- code = 1
132
- end
133
- end
134
- end
135
-
136
- exit code
4
+ Rgot::Cli.new(ARGV).run
data/lib/rgot/b.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  module Rgot
2
2
  class B < Common
3
- class Options < Struct.new(
3
+ Options = Struct.new(
4
4
  :procs,
5
5
  :threads,
6
- :benchtime
7
- ); end
6
+ :benchtime,
7
+ )
8
8
 
9
9
  attr_accessor :n
10
- def initialize(benchmark_module, name, opts=Options.new)
10
+ def initialize(benchmark_module, name, opts = Options.new)
11
11
  super()
12
12
  @n = 1
13
13
  @module = benchmark_module
@@ -42,7 +42,7 @@ module Rgot
42
42
  def run(&block)
43
43
  n = 1
44
44
  benchtime = (@opts.benchtime || 1).to_f
45
- catch(:skip) {
45
+ catch(:skip) do
46
46
  run_n(n.to_i, block)
47
47
  while !failed? && @duration < benchtime && @n < 1e9
48
48
  if @duration < (benchtime / 100.0)
@@ -61,7 +61,7 @@ module Rgot
61
61
  end
62
62
  run_n(@n.to_i, block)
63
63
  end
64
- }
64
+ end
65
65
 
66
66
  BenchmarkResult.new(n: @n, t: @duration)
67
67
  end
@@ -73,13 +73,13 @@ module Rgot
73
73
  threads = (@opts.threads || 1)
74
74
 
75
75
  procs.times do
76
- fork {
76
+ fork do
77
77
  Array.new(threads) {
78
78
  Thread.new {
79
79
  yield PB.new(bn: @n)
80
80
  }.tap { |t| t.abort_on_exception = true }
81
81
  }.each(&:join)
82
- }
82
+ end
83
83
  end
84
84
  @n *= procs * threads
85
85
  Process.waitall
@@ -87,7 +87,7 @@ module Rgot
87
87
 
88
88
  private
89
89
 
90
- def run_n(n, block=nil)
90
+ def run_n(n, block = nil)
91
91
  GC.start
92
92
  @n = n
93
93
  reset_timer
@@ -95,7 +95,13 @@ module Rgot
95
95
  if block
96
96
  block.call(self)
97
97
  else
98
- @module.instance_method(@name).bind(@module).call(self)
98
+ bench_method = @module.instance_method(@name).bind(@module)
99
+ if bench_method.arity == 0
100
+ path, line = bench_method.source_location
101
+ skip "#{path}:#{line} `#{bench_method.name}' is not running. It's a benchmark method name, But not have argument"
102
+ else
103
+ bench_method.call(self)
104
+ end
99
105
  end
100
106
  stop_timer
101
107
  end
@@ -1,9 +1,6 @@
1
1
  module Rgot
2
2
  class BenchmarkResult
3
- # Ruby-2.0.0 wants default value of keyword_argument
4
- def initialize(n: nil, t: nil)
5
- raise ArgumentError, "missing keyword: n" unless n
6
- raise ArgumentError, "missing keyword: t" unless t
3
+ def initialize(n:, t:)
7
4
  @n = n
8
5
  @t = t
9
6
  end
data/lib/rgot/cli.rb ADDED
@@ -0,0 +1,154 @@
1
+ require 'optparse'
2
+
3
+ require_relative '../rgot'
4
+
5
+ module Rgot
6
+ class Cli
7
+ def initialize(argv)
8
+ @argv = argv
9
+ end
10
+
11
+ def run
12
+ opts = Rgot::M::Options.new
13
+ parse_option(opts)
14
+ process_start(opts)
15
+ end
16
+
17
+ private
18
+
19
+ def parse_option(opts)
20
+ require_paths = []
21
+ parser = OptionParser.new do |o|
22
+ o.on '-v', '--verbose', "log all tests" do |arg|
23
+ Rgot.class_eval { @chatty = arg }
24
+ end
25
+ o.on '--version', "show Rgot version" do |arg|
26
+ puts "rgot #{Rgot::VERSION} (ruby #{RUBY_VERSION})"
27
+ exit 0
28
+ end
29
+ o.on '--bench [regexp]', "benchmark" do |arg|
30
+ unless arg
31
+ raise Rgot::OptionError, "missing argument for flag --bench"
32
+ end
33
+ opts.bench = arg
34
+ end
35
+ o.on '--benchtime [sec]', "benchmark running time" do |arg|
36
+ opts.benchtime = arg
37
+ end
38
+ o.on '--timeout [sec]', "set timeout sec to testing" do |arg|
39
+ opts.timeout = arg
40
+ end
41
+ o.on '--cpu [count,...]', "set cpu counts of comma split" do |arg|
42
+ opts.cpu = arg
43
+ end
44
+ o.on '--thread [count,...]', "set thread counts of comma split" do |arg|
45
+ opts.thread = arg
46
+ end
47
+ o.on '--require [path]', "load some code before running" do |arg|
48
+ require_paths << arg
49
+ end
50
+ o.on '--load-path [path]', "Specify $LOAD_PATH directory" do |arg|
51
+ $LOAD_PATH.unshift(arg)
52
+ end
53
+ end
54
+ parser.parse!(@argv)
55
+
56
+ require_paths.each do |path|
57
+ require path
58
+ end
59
+ end
60
+
61
+ def testing_files
62
+ if @argv.empty?
63
+ Dir.glob("./**/*_test.rb")
64
+ else
65
+ @argv.flat_map do |target|
66
+ if File.file?(target)
67
+ File.expand_path(target)
68
+ elsif File.directory?(target)
69
+ Dir.glob("./#{target}/**/*_test.rb")
70
+ else
71
+ warn "#{target} is not file or directory"
72
+ end
73
+ end.compact
74
+ end
75
+ end
76
+
77
+ def process_start(opts)
78
+ code = 0
79
+ testing_files.map do |testing_file|
80
+ begin
81
+ pid = fork do
82
+ require testing_file
83
+
84
+ modules = Object.constants.select { |c|
85
+ next if c == :FileTest
86
+ /.*Test\z/ =~ c
87
+ }.map { |c|
88
+ Object.const_get(c)
89
+ }
90
+
91
+ modules.each do |test_module|
92
+ tests = []
93
+ benchmarks = []
94
+ examples = []
95
+ main = nil
96
+ methods = test_module.instance_methods
97
+ methods.grep(/\Atest_/).each do |m|
98
+ if m == :test_main && main.nil?
99
+ main = Rgot::InternalTest.new(test_module, m)
100
+ else
101
+ tests << Rgot::InternalTest.new(test_module, m)
102
+ end
103
+ end
104
+
105
+ methods.grep(/\Abenchmark_/).each do |m|
106
+ benchmarks << Rgot::InternalBenchmark.new(test_module, m)
107
+ end
108
+
109
+ methods.grep(/\Aexample_?/).each do |m|
110
+ examples << Rgot::InternalExample.new(test_module, m)
111
+ end
112
+
113
+ duration = Rgot.now
114
+ at_exit do
115
+ template = "%s\t%s\t%.3fs"
116
+
117
+ case $!
118
+ when SystemExit
119
+ if $!.success?
120
+ # exit 0
121
+ puts sprintf(template, "ok ", test_module, Rgot.now - duration)
122
+ else
123
+ # exit 1
124
+ puts "exit status #{$!.status}"
125
+ puts sprintf(template, "FAIL", test_module, Rgot.now - duration)
126
+ end
127
+ when NilClass
128
+ # not raise, not exit
129
+ else
130
+ # any exception
131
+ puts sprintf(template, "FAIL", test_module, Rgot.now - duration)
132
+ end
133
+ end
134
+ m = Rgot::M.new(tests: tests, benchmarks: benchmarks, examples: examples, opts: opts)
135
+ if main
136
+ main.module.extend main.module
137
+ main.module.instance_method(main.name).bind(main.module).call(m)
138
+ else
139
+ exit m.run
140
+ end
141
+ end
142
+ end
143
+ ensure
144
+ _, status = Process.waitpid2(pid)
145
+ unless status.success?
146
+ code = 1
147
+ end
148
+ end
149
+ end
150
+
151
+ exit code
152
+ end
153
+ end
154
+ end
data/lib/rgot/common.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'thread'
2
+ require 'pathname'
2
3
 
3
4
  module Rgot
4
5
  class Common
data/lib/rgot/m.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'stringio'
2
2
  require 'etc'
3
+ require 'timeout'
3
4
 
4
5
  module Rgot
5
6
  class M
@@ -11,12 +12,8 @@ module Rgot
11
12
  :thread,
12
13
  ); end
13
14
 
14
- # Ruby-2.0.0 wants default value of keyword_argument
15
- def initialize(tests: nil, benchmarks: nil, examples: nil, opts: Options.new)
16
- raise ArgumentError, "missing keyword: tests" unless tests
17
- raise ArgumentError, "missing keyword: benchmarks" unless benchmarks
18
- raise ArgumentError, "missing keyword: examples" unless examples
19
- cpu = opts.cpu || "#{Etc.respond_to?(:nprocessors) ? Etc.nprocessors : "1"}"
15
+ def initialize(tests:, benchmarks:, examples:, opts: Options.new)
16
+ cpu = opts.cpu || (Etc.respond_to?(:nprocessors) ? Etc.nprocessors : '1').to_s
20
17
  @cpu_list = cpu.split(',').map { |i|
21
18
  j = i.to_i
22
19
  raise Rgot::OptionError, "invalid value #{i.inspect} for --cpu" unless 0 < j
@@ -37,15 +34,15 @@ module Rgot
37
34
  test_ok = false
38
35
  example_ok = false
39
36
 
40
- Timeout.timeout(@opts.timeout.to_f) {
37
+ Timeout.timeout(@opts.timeout.to_f) do
41
38
  test_ok = run_tests
42
39
  example_ok = run_examples
43
- }
40
+ end
44
41
  if !test_ok || !example_ok
45
42
  puts "FAIL"
46
43
  return 1
47
44
  end
48
- puts "PASS" if Rgot.verbose?
45
+ puts "PASS"
49
46
  run_benchmarks
50
47
  0
51
48
  end
@@ -57,7 +54,7 @@ module Rgot
57
54
  @tests.each do |test|
58
55
  t = T.new(test.module, test.name.to_sym)
59
56
  if Rgot.verbose?
60
- puts "=== RUN #{test.name}"
57
+ puts "=== RUN #{test.name}"
61
58
  end
62
59
  t.run
63
60
  t.report
@@ -105,23 +102,30 @@ module Rgot
105
102
  ok = true
106
103
  @examples.each do |example|
107
104
  if Rgot.verbose?
108
- puts "=== RUN #{example.name}"
105
+ puts "=== RUN #{example.name}"
109
106
  end
107
+
108
+ start = Rgot.now
110
109
  example.module.extend(example.module)
111
110
  method = example.module.instance_method(example.name).bind(example.module)
112
- out, err = capture do
111
+ out, _ = capture do
113
112
  method.call
114
113
  end
115
114
  file = method.source_location[0]
116
115
  r = ExampleParser.new(File.read(file))
117
116
  r.parse
118
- e = r.examples.find{|e| e.name == example.name}
117
+ e = r.examples.find { |re| re.name == example.name }
118
+
119
+ duration = Rgot.now - start
119
120
  if e && e.output.strip != out.strip
121
+ printf("--- FAIL: %s (%.2fs)\n", e.name, duration)
120
122
  ok = false
121
123
  puts "got:"
122
124
  puts out.strip
123
125
  puts "want:"
124
126
  puts e.output.strip
127
+ elsif Rgot.verbose?
128
+ printf("--- PASS: %s (%.2fs)\n", e.name, duration)
125
129
  end
126
130
  end
127
131
  ok
data/lib/rgot/pb.rb CHANGED
@@ -2,9 +2,7 @@ module Rgot
2
2
  class PB
3
3
  attr_accessor :bn
4
4
 
5
- # Ruby-2.0.0 wants default value of keyword_argument
6
- def initialize(bn: nil)
7
- raise ArgumentError, "missing keyword: bn" unless bn
5
+ def initialize(bn:)
8
6
  @bn = bn
9
7
  end
10
8
 
data/lib/rgot/t.rb CHANGED
@@ -8,19 +8,17 @@ module Rgot
8
8
  end
9
9
 
10
10
  def run
11
- begin
12
- catch(:skip) { call }
13
- finish!
14
- rescue => e
15
- fail!
16
- report
17
- raise e
18
- end
11
+ catch(:skip) { call }
12
+ finish!
13
+ rescue => e
14
+ fail!
15
+ report
16
+ raise e
19
17
  end
20
18
 
21
19
  def report
22
20
  duration = Rgot.now - @start
23
- template = "--- %s: %s (%.5fs)\n%s"
21
+ template = "--- %s: %s (%.2fs)\n%s"
24
22
  if failed?
25
23
  printf template, "FAIL", @name, duration, @output
26
24
  elsif Rgot.verbose?
@@ -34,7 +32,7 @@ module Rgot
34
32
 
35
33
  def call
36
34
  test_method = @module.instance_method(@name).bind(@module)
37
- if test_method.arity != 1
35
+ if test_method.arity == 0
38
36
  path, line = test_method.source_location
39
37
  warn "#{path}:#{line} `#{test_method.name}' is not running. It's a testing method name, But not have argument"
40
38
  else
data/lib/rgot/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rgot
2
- VERSION = "0.1.4"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/rgot.rb CHANGED
@@ -8,33 +8,18 @@ module Rgot
8
8
  require 'rgot/benchmark_result'
9
9
  require 'rgot/example_parser'
10
10
 
11
- class OptionError < StandardError
12
- end
13
-
14
- class InternalTest < Struct.new(:module, :name)
15
- end
16
-
17
- class InternalBenchmark < Struct.new(:module, :name)
18
- end
19
-
20
- class InternalExample < Struct.new(:module, :name)
21
- end
22
-
23
- class ExampleOutput < Struct.new(:name, :output)
24
- end
11
+ OptionError = Class.new(StandardError)
12
+ InternalTest = Struct.new(:module, :name)
13
+ InternalBenchmark = Struct.new(:module, :name)
14
+ InternalExample = Struct.new(:module, :name)
15
+ ExampleOutput = Struct.new(:name, :output)
25
16
 
26
17
  class << self
27
- if "2.0.0" < RUBY_VERSION
28
- def now
29
- Process.clock_gettime(Process::CLOCK_MONOTONIC)
30
- end
31
- else
32
- def now
33
- Time.now
34
- end
18
+ def now
19
+ Process.clock_gettime(Process::CLOCK_MONOTONIC)
35
20
  end
36
21
 
37
- def benchmark(opts_hash={}, &block)
22
+ def benchmark(opts_hash = {}, &block)
38
23
  opts = B::Options.new
39
24
  opts_hash.each do |k, v|
40
25
  opts[k] = v
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rgot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ksss
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-05 00:00:00.000000000 Z
11
+ date: 2022-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -46,8 +46,8 @@ executables:
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
+ - ".github/workflows/main.yml"
49
50
  - ".gitignore"
50
- - ".travis.yml"
51
51
  - Gemfile
52
52
  - LICENSE.txt
53
53
  - README.md
@@ -56,6 +56,7 @@ files:
56
56
  - lib/rgot.rb
57
57
  - lib/rgot/b.rb
58
58
  - lib/rgot/benchmark_result.rb
59
+ - lib/rgot/cli.rb
59
60
  - lib/rgot/common.rb
60
61
  - lib/rgot/example_parser.rb
61
62
  - lib/rgot/m.rb
@@ -67,7 +68,7 @@ homepage: https://github.com/ksss/rgot
67
68
  licenses:
68
69
  - MIT
69
70
  metadata: {}
70
- post_install_message:
71
+ post_install_message:
71
72
  rdoc_options: []
72
73
  require_paths:
73
74
  - lib
@@ -82,9 +83,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
83
  - !ruby/object:Gem::Version
83
84
  version: '0'
84
85
  requirements: []
85
- rubyforge_project:
86
- rubygems_version: 2.4.5.1
87
- signing_key:
86
+ rubygems_version: 3.4.0.dev
87
+ signing_key:
88
88
  specification_version: 4
89
89
  summary: Ruby + Golang Testing = Rgot
90
90
  test_files: []
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.0.0
4
- - 2.1.7
5
- - 2.2.3
6
- notifications:
7
- email: false