rgot 0.2.0 → 1.2.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: a4246161e01be60d8f75c374c5411521513b4892
4
- data.tar.gz: b72b95bb14e0793b70d613abdb61078defb658d5
2
+ SHA256:
3
+ metadata.gz: 368b98f9969eee4d2608df53e668eaaed9f06320ecd5b26096ff05c0f81dc16e
4
+ data.tar.gz: b045a87ffcb3f18338ce0286e2f22b71921b5bab011e4049c203164b9ab7a077
5
5
  SHA512:
6
- metadata.gz: 865bf93fdc54e99fdb2b17194516f13d694ad84fe2f11372200a4dcc90e3ee895571f2a041700b991749344a4d15b213b91f55172d8c59636afc85b86051d0d4
7
- data.tar.gz: c24d7e37e5ac9c1ce61539e27196875b1091e896ca8a512a845e2cb78d56d38407c773a511e317adc2bf9a758a35456adca57a9a18db171107a9ca2ad9b6958f
6
+ metadata.gz: 7a3d443886aa26702be0720d8bdf8abf38dd938e3707d595ac1bf21b1edd0f3cb52f64f29e4ca11996357d8671bfaaa4edc94500560510b67c393244202a2db3
7
+ data.tar.gz: 13d8fcdf048c4c82da186f96dc7bfef3eb78a35fb5df04a2f6f17badda63100587df8cd175dc0618d823d613526b9e60aeec8e18cc09075c8bf3c8c218d58841
@@ -0,0 +1,29 @@
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.7.7'
18
+ - '3.0.5'
19
+ - '3.1.3'
20
+
21
+ steps:
22
+ - uses: actions/checkout@v3
23
+ - name: Set up Ruby
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: ${{ matrix.ruby }}
27
+ bundler-cache: true
28
+ - name: Run the default task
29
+ run: bundle exec rake
data/.gitignore CHANGED
@@ -1,3 +1,2 @@
1
- Gemfile.lock
2
1
  pkg
3
2
  tmp
data/Gemfile.lock ADDED
@@ -0,0 +1,20 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rgot (1.2.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ rake (13.0.6)
10
+
11
+ PLATFORMS
12
+ ruby
13
+
14
+ DEPENDENCIES
15
+ bundler
16
+ rake
17
+ rgot!
18
+
19
+ BUNDLED WITH
20
+ 2.3.26
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
@@ -311,7 +341,7 @@ And this is default virtual main code.
311
341
  ```ruby
312
342
  module TestSomeCode
313
343
  def test_main(m)
314
- exit m.run
344
+ m.run
315
345
  end
316
346
  end
317
347
  ```
@@ -332,7 +362,7 @@ module TestSomeCode
332
362
  the_before_running_some_code
333
363
  code = m.run
334
364
  the_after_running_some_code
335
- exit code
365
+ code
336
366
  end
337
367
  end
338
368
  ```
data/Rakefile CHANGED
@@ -2,8 +2,13 @@ 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
+ "test/rgot_benchmark_test.rb",
9
+ "test/rgot_example_test.rb",
10
+ ]
11
+ ruby "bin/rgot -v #{targets.join(' ')}"
7
12
  end
8
13
 
9
14
  task :default => [:test]
data/bin/rgot CHANGED
@@ -1,138 +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 #{Rgot::VERSION} (ruby #{RUBY_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
- testing_files = []
46
-
47
- if ARGV.empty?
48
- Dir.glob("./**/*_test.rb") do |i|
49
- testing_files << i
50
- end
51
- else
52
- ARGV.each do |target|
53
- if File.file?(target)
54
- testing_files << File.expand_path(target)
55
- elsif File.directory?(target)
56
- Dir.glob("./#{target}/**/*_test.rb") do |i|
57
- testing_files << i
58
- end
59
- else
60
- puts target
61
- end
62
- end
63
- end
64
-
65
- code = 0
66
- testing_files.each do |testing_file|
67
- begin
68
- pid = fork do
69
- require testing_file
70
-
71
- modules = Object.constants.select { |c|
72
- next if c == :FileTest
73
- /.*Test\z/ =~ c
74
- }.map { |c|
75
- Object.const_get(c)
76
- }
77
-
78
- modules.each do |test_module|
79
- tests = []
80
- benchmarks = []
81
- examples = []
82
- main = nil
83
- methods = test_module.instance_methods
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 do
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 "exit status #{$!.status}"
112
- puts sprintf(template, "FAIL", test_module, Rgot.now - duration)
113
- end
114
- when NilClass
115
- # not raise, not exit
116
- else
117
- # any exception
118
- puts sprintf(template, "FAIL", test_module, Rgot.now - duration)
119
- end
120
- end
121
- m = Rgot::M.new(tests: tests, benchmarks: benchmarks, examples: examples, opts: opts)
122
- if main
123
- main.module.extend main.module
124
- main.module.instance_method(main.name).bind(main.module).call(m)
125
- else
126
- exit m.run
127
- end
128
- end
129
- end
130
- ensure
131
- _, status = Process.waitpid2(pid)
132
- unless status.success?
133
- code = 1
134
- end
135
- end
136
- end
137
-
138
- exit code
4
+ exit Rgot::Cli.new(ARGV).run
data/lib/rgot/b.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Rgot
2
4
  class B < Common
3
5
  Options = Struct.new(
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Rgot
2
4
  class BenchmarkResult
3
5
  def initialize(n:, t:)
data/lib/rgot/cli.rb ADDED
@@ -0,0 +1,157 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'optparse'
4
+
5
+ require_relative '../rgot'
6
+
7
+ module Rgot
8
+ class Cli
9
+ def initialize(argv)
10
+ @argv = argv
11
+ end
12
+
13
+ def run
14
+ opts = Rgot::M::Options.new
15
+ parse_option(opts)
16
+ main_process(opts)
17
+ end
18
+
19
+ private
20
+
21
+ def parse_option(opts)
22
+ require_paths = []
23
+ parser = OptionParser.new do |o|
24
+ o.on '-v', '--verbose', "log all tests" do |arg|
25
+ Rgot.class_eval { @chatty = arg }
26
+ end
27
+ o.on '--version', "show Rgot version" do |arg|
28
+ puts "rgot #{Rgot::VERSION} (ruby #{RUBY_VERSION})"
29
+ exit 0
30
+ end
31
+ o.on '--bench [regexp]', "benchmark" do |arg|
32
+ unless arg
33
+ raise Rgot::OptionError, "missing argument for flag --bench"
34
+ end
35
+ opts.bench = arg
36
+ end
37
+ o.on '--benchtime [sec]', "benchmark running time" do |arg|
38
+ opts.benchtime = arg
39
+ end
40
+ o.on '--timeout [sec]', "set timeout sec to testing" do |arg|
41
+ opts.timeout = arg
42
+ end
43
+ o.on '--cpu [count,...]', "set cpu counts of comma split" do |arg|
44
+ opts.cpu = arg
45
+ end
46
+ o.on '--thread [count,...]', "set thread counts of comma split" do |arg|
47
+ opts.thread = arg
48
+ end
49
+ o.on '--require [path]', "load some code before running" do |arg|
50
+ require_paths << arg
51
+ end
52
+ o.on '--load-path [path]', "Specify $LOAD_PATH directory" do |arg|
53
+ $LOAD_PATH.unshift(arg)
54
+ end
55
+ end
56
+ parser.parse!(@argv)
57
+
58
+ require_paths.each do |path|
59
+ require path
60
+ end
61
+ end
62
+
63
+ def testing_files
64
+ if @argv.empty?
65
+ Dir.glob("./**/*_test.rb")
66
+ else
67
+ @argv.flat_map do |target|
68
+ if File.file?(target)
69
+ File.expand_path(target)
70
+ elsif File.directory?(target)
71
+ Dir.glob("./#{target}/**/*_test.rb")
72
+ else
73
+ warn "#{target} is not file or directory"
74
+ end
75
+ end.compact
76
+ end
77
+ end
78
+
79
+ def main_process(opts)
80
+ code = 0
81
+
82
+ testing_files.each do |testing_file|
83
+ result = child_process(opts, testing_file)
84
+ unless result == 0
85
+ code = 1
86
+ end
87
+ end
88
+
89
+ code
90
+ end
91
+
92
+ def child_process(opts, testing_file)
93
+ node = RubyVM::AbstractSyntaxTree.parse_file(testing_file).children[2]
94
+ test_module_name = find_toplevel_name(node)
95
+
96
+ load testing_file
97
+
98
+ test_module = Object.const_get(test_module_name)
99
+ tests = []
100
+ benchmarks = []
101
+ examples = []
102
+ main = nil
103
+ methods = test_module.public_instance_methods
104
+ methods.grep(/\Atest_/).each do |m|
105
+ if m == :test_main && main.nil?
106
+ main = Rgot::InternalTest.new(test_module, m)
107
+ else
108
+ tests << Rgot::InternalTest.new(test_module, m)
109
+ end
110
+ end
111
+
112
+ methods.grep(/\Abenchmark_/).each do |m|
113
+ benchmarks << Rgot::InternalBenchmark.new(test_module, m)
114
+ end
115
+
116
+ methods.grep(/\Aexample_?/).each do |m|
117
+ examples << Rgot::InternalExample.new(test_module, m)
118
+ end
119
+
120
+ m = Rgot::M.new(test_module: test_module, tests: tests, benchmarks: benchmarks, examples: examples, opts: opts)
121
+ if main
122
+ main.module.extend main.module
123
+ main.module.instance_method(:test_main).bind(main.module).call(m)
124
+ else
125
+ m.run
126
+ end
127
+ end
128
+
129
+ private
130
+
131
+ def find_toplevel_name(node)
132
+ case node.type
133
+ when :MODULE
134
+ find_toplevel_name(node.children.first)
135
+ when :CONST, :COLON3
136
+ node.children.first
137
+ when :COLON2
138
+ case node.children
139
+ in [nil, sym]
140
+ # module Foo
141
+ sym
142
+ in [namespace, sym]
143
+ # module Foo::Bar
144
+ find_toplevel_name(namespace)
145
+ end
146
+ when :BLOCK
147
+ module_node = node.children.find { |c| c.type == :MODULE }
148
+ unless module_node
149
+ raise "no module found"
150
+ end
151
+ find_toplevel_name(module_node)
152
+ else
153
+ raise node.type.to_s
154
+ end
155
+ end
156
+ end
157
+ end
data/lib/rgot/common.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'thread'
2
4
  require 'pathname'
3
5
 
@@ -6,7 +8,7 @@ module Rgot
6
8
  attr_accessor :output
7
9
 
8
10
  def initialize
9
- @output = ""
11
+ @output = "".dup
10
12
  @failed = false
11
13
  @skipped = false
12
14
  @finished = false
@@ -100,7 +102,8 @@ module Rgot
100
102
  path = c.sub(/:.*/, '')
101
103
  line = c.match(/:(\d+?):/)[1]
102
104
  relative_path = Pathname.new(path).relative_path_from(Pathname.new(Dir.pwd)).to_s
103
- "\t#{relative_path}:#{line}: #{str}\n"
105
+ # Every line is indented at least 4 spaces.
106
+ " #{relative_path}:#{line}: #{str}\n"
104
107
  end
105
108
 
106
109
  def internal_log(msg)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ripper'
2
4
 
3
5
  module Rgot
@@ -8,7 +10,7 @@ module Rgot
8
10
  @examples = []
9
11
  @in_def = false
10
12
  @has_output = false
11
- @output = ""
13
+ @output = "".dup
12
14
  end
13
15
 
14
16
  def on_def(method, args, body)
data/lib/rgot/m.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'stringio'
2
4
  require 'etc'
3
5
  require 'timeout'
@@ -12,43 +14,74 @@ module Rgot
12
14
  :thread,
13
15
  ); end
14
16
 
15
- def initialize(tests:, benchmarks:, examples:, opts: Options.new)
16
- cpu = opts.cpu || (Etc.respond_to?(:nprocessors) ? Etc.nprocessors : '1').to_s
17
- @cpu_list = cpu.split(',').map { |i|
18
- j = i.to_i
19
- raise Rgot::OptionError, "invalid value #{i.inspect} for --cpu" unless 0 < j
20
- j
21
- }
22
- @thread_list = (opts.thread || "1").split(',').map { |i|
23
- j = i.to_i
24
- raise Rgot::OptionError, "invalid value #{i.inspect} for --thread" unless 0 < j
25
- j
26
- }
17
+ def initialize(tests:, benchmarks:, examples:, test_module: nil, opts: Options.new)
18
+ unless test_module
19
+ raise "Require `test_module` keyword" if Gem::Version.new("2.0") <= Gem::Version.new(Rgot::VERSION)
20
+ warn "`Rgot::M#initialize` will require the `test_module` keyword in the next major version."
21
+ end
22
+
27
23
  @tests = tests
28
24
  @benchmarks = benchmarks
29
25
  @examples = examples
26
+ @test_module = test_module
30
27
  @opts = opts
28
+ @cpu_list = nil
29
+ @thread_list = nil
31
30
  end
32
31
 
33
32
  def run
33
+ duration = Rgot.now
34
34
  test_ok = false
35
35
  example_ok = false
36
36
 
37
+ if @tests.empty? && @benchmarks.empty? && @examples.empty?
38
+ warn "rgot: warning: no tests to run"
39
+ end
40
+
41
+ begin
42
+ parse_option
43
+ rescue Rgot::OptionError
44
+ puts sprintf("%s\t%s\t%.3fs", "FAIL", @test_module, Rgot.now - duration)
45
+ raise
46
+ end
47
+
37
48
  Timeout.timeout(@opts.timeout.to_f) do
38
49
  test_ok = run_tests
39
50
  example_ok = run_examples
40
51
  end
52
+
41
53
  if !test_ok || !example_ok
42
54
  puts "FAIL"
43
- return 1
55
+ puts "exit status 1"
56
+ puts sprintf("%s\t%s\t%.3fs", "FAIL", @test_module, Rgot.now - duration)
57
+
58
+ 1
59
+ else
60
+ puts "PASS"
61
+ run_benchmarks
62
+ puts sprintf("%s\t%s\t%.3fs", "ok ", @test_module, Rgot.now - duration)
63
+
64
+ 0
44
65
  end
45
- puts "PASS"
46
- run_benchmarks
47
- 0
48
66
  end
49
67
 
50
68
  private
51
69
 
70
+ def parse_option
71
+ cpu = @opts.cpu || (Etc.respond_to?(:nprocessors) ? Etc.nprocessors : '1').to_s
72
+ @cpu_list = cpu.split(',').map { |i|
73
+ j = i.to_i
74
+ raise Rgot::OptionError, "invalid value #{i.inspect} for --cpu" unless 0 < j
75
+ j
76
+ }
77
+
78
+ @thread_list = (@opts.thread || "1").split(',').map { |i|
79
+ j = i.to_i
80
+ raise Rgot::OptionError, "invalid value #{i.inspect} for --thread" unless 0 < j
81
+ j
82
+ }
83
+ end
84
+
52
85
  def run_tests
53
86
  ok = true
54
87
  @tests.each do |test|
@@ -57,7 +90,6 @@ module Rgot
57
90
  puts "=== RUN #{test.name}"
58
91
  end
59
92
  t.run
60
- t.report
61
93
  if t.failed?
62
94
  ok = false
63
95
  end
@@ -108,13 +140,13 @@ module Rgot
108
140
  start = Rgot.now
109
141
  example.module.extend(example.module)
110
142
  method = example.module.instance_method(example.name).bind(example.module)
111
- out, err = capture do
143
+ out, _ = capture do
112
144
  method.call
113
145
  end
114
146
  file = method.source_location[0]
115
147
  r = ExampleParser.new(File.read(file))
116
148
  r.parse
117
- e = r.examples.find { |e| e.name == example.name }
149
+ e = r.examples.find { |re| re.name == example.name }
118
150
 
119
151
  duration = Rgot.now - start
120
152
  if e && e.output.strip != out.strip
data/lib/rgot/pb.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Rgot
2
4
  class PB
3
5
  attr_accessor :bn
data/lib/rgot/t.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Rgot
2
4
  class T < Common
3
5
  def initialize(test_module, name)
@@ -10,6 +12,7 @@ module Rgot
10
12
  def run
11
13
  catch(:skip) { call }
12
14
  finish!
15
+ report
13
16
  rescue => e
14
17
  fail!
15
18
  report
@@ -17,15 +20,16 @@ module Rgot
17
20
  end
18
21
 
19
22
  def report
23
+ puts @output if Rgot.verbose? && !@output.empty?
20
24
  duration = Rgot.now - @start
21
- template = "--- %s: %s (%.2fs)\n%s"
25
+ template = "--- \e[%sm%s\e[m: %s (%.2fs)\n"
22
26
  if failed?
23
- printf template, "FAIL", @name, duration, @output
27
+ printf template, [41, 1].join(';'), "FAIL", @name, duration
24
28
  elsif Rgot.verbose?
25
29
  if skipped?
26
- printf template, "SKIP", @name, duration, @output
30
+ printf template, [44, 1].join(';'), "SKIP", @name, duration
27
31
  else
28
- printf template, "PASS", @name, duration, @output
32
+ printf template, [42, 1].join(';'), "PASS", @name, duration
29
33
  end
30
34
  end
31
35
  end
data/lib/rgot/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Rgot
2
- VERSION = "0.2.0"
4
+ VERSION = "1.2.0"
3
5
  end
data/lib/rgot.rb CHANGED
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Rgot
2
- require 'rgot/version'
3
- require 'rgot/common'
4
- require 'rgot/m'
5
- require 'rgot/t'
6
- require 'rgot/b'
7
- require 'rgot/pb'
8
- require 'rgot/benchmark_result'
9
- require 'rgot/example_parser'
4
+ autoload :VERSION, 'rgot/version'
5
+ autoload :Common, 'rgot/common'
6
+ autoload :M, 'rgot/m'
7
+ autoload :T, 'rgot/t'
8
+ autoload :B, 'rgot/b'
9
+ autoload :PB, 'rgot/pb'
10
+ autoload :BenchmarkResult, 'rgot/benchmark_result'
11
+ autoload :ExampleParser, 'rgot/example_parser'
10
12
 
11
13
  OptionError = Class.new(StandardError)
12
14
  InternalTest = Struct.new(:module, :name)
data/rgot.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/ksss/rgot"
15
15
  spec.license = "MIT"
16
16
 
17
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|go)/}) }
18
18
  spec.bindir = "bin"
19
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
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.2.0
4
+ version: 1.2.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: 2016-04-13 00:00:00.000000000 Z
11
+ date: 2022-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -46,9 +46,10 @@ 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
+ - Gemfile.lock
52
53
  - LICENSE.txt
53
54
  - README.md
54
55
  - Rakefile
@@ -56,6 +57,7 @@ files:
56
57
  - lib/rgot.rb
57
58
  - lib/rgot/b.rb
58
59
  - lib/rgot/benchmark_result.rb
60
+ - lib/rgot/cli.rb
59
61
  - lib/rgot/common.rb
60
62
  - lib/rgot/example_parser.rb
61
63
  - lib/rgot/m.rb
@@ -67,7 +69,7 @@ homepage: https://github.com/ksss/rgot
67
69
  licenses:
68
70
  - MIT
69
71
  metadata: {}
70
- post_install_message:
72
+ post_install_message:
71
73
  rdoc_options: []
72
74
  require_paths:
73
75
  - lib
@@ -82,9 +84,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
84
  - !ruby/object:Gem::Version
83
85
  version: '0'
84
86
  requirements: []
85
- rubyforge_project:
86
- rubygems_version: 2.5.1
87
- signing_key:
87
+ rubygems_version: 3.3.26
88
+ signing_key:
88
89
  specification_version: 4
89
90
  summary: Ruby + Golang Testing = Rgot
90
91
  test_files: []
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.10
4
- - 2.2.4
5
- - 2.3.0
6
- notifications:
7
- email: false