mrubyc-test 0.5.3 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01fd00e01ce7b93d321a0345e0f658a9a1e9da234c1527b337a9e3fcc3b3b5fd
4
- data.tar.gz: 969827d51ef5b523fef3399174529b7ffaf73952d2011ef8c32a59afd80361f6
3
+ metadata.gz: f487ca59fe60282d05eefb7eaeee8b93971d690ac2b99985b473bb7c82d8ec50
4
+ data.tar.gz: 372db4c64cf31926758dbc249a2364972eccdbc9b620e38b446992821a261e8d
5
5
  SHA512:
6
- metadata.gz: a8ef624b18f81ec4a7071b11001fa55fdc059940a6358635fd86ec10c8537fc308cab9c5c29fba6252c3ee78996d3ccbe64078f3f22657b375cf91cbd933ab22
7
- data.tar.gz: 466243707b3bd2f7f3c98c1b32d20c09607d72cb3b581b3b7f55e2b5544ec12df367e41c38b6fb3a2c7451e4e81dabc8bcfa9dd2112b3225d93dd113e50d348b
6
+ metadata.gz: 9ca5dc64f934ad214ee5e7ccc4426ade163771b85a0e245bf24f0b59c3f6a0cf12b43b0d37cb8536ad818b139975c7d58da7b94f261144ed92bab727c6c85400
7
+ data.tar.gz: d930234bca65fc38e5fa1fd8f26a71b6547b401560ada86df860d9aea0c34afd07af5012eb3222d5be165b976bbc99572a1beb01da8f2156ee13a4ace4fb7334
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mrubyc-test (0.5.2)
4
+ mrubyc-test (0.6.0)
5
5
  activesupport (~> 6.0)
6
6
  rufo (~> 0.12)
7
7
  thor (~> 1.0)
@@ -9,23 +9,23 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (6.0.3.1)
12
+ activesupport (6.0.3.4)
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
14
14
  i18n (>= 0.7, < 2)
15
15
  minitest (~> 5.1)
16
16
  tzinfo (~> 1.1)
17
17
  zeitwerk (~> 2.2, >= 2.2.2)
18
- concurrent-ruby (1.1.6)
19
- diff-lcs (1.3)
20
- i18n (1.8.2)
18
+ concurrent-ruby (1.1.7)
19
+ diff-lcs (1.4.4)
20
+ i18n (1.8.5)
21
21
  concurrent-ruby (~> 1.0)
22
- minitest (5.14.1)
22
+ minitest (5.14.2)
23
23
  rake (13.0.1)
24
24
  rspec (3.9.0)
25
25
  rspec-core (~> 3.9.0)
26
26
  rspec-expectations (~> 3.9.0)
27
27
  rspec-mocks (~> 3.9.0)
28
- rspec-core (3.9.2)
28
+ rspec-core (3.9.3)
29
29
  rspec-support (~> 3.9.3)
30
30
  rspec-expectations (3.9.2)
31
31
  diff-lcs (>= 1.2.0, < 2.0)
@@ -39,7 +39,7 @@ GEM
39
39
  thread_safe (0.3.6)
40
40
  tzinfo (1.2.7)
41
41
  thread_safe (~> 0.1)
42
- zeitwerk (2.3.0)
42
+ zeitwerk (2.4.0)
43
43
 
44
44
  PLATFORMS
45
45
  ruby
@@ -51,4 +51,4 @@ DEPENDENCIES
51
51
  rspec (~> 3.9)
52
52
 
53
53
  BUNDLED WITH
54
- 2.1.2
54
+ 2.1.4
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require "bundler/setup"
4
- require "mrubyc/test"
4
+ require "mrubyc-test"
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -25,30 +25,30 @@ module Mrubyc::Test
25
25
  def prepare(test_files, verbose, method_name_pattern)
26
26
  config = Mrubyc::Test::Config.read
27
27
  model_files = Dir.glob(File.join(Dir.pwd, config['mruby_lib_dir'], 'models', '*.rb'))
28
-
29
28
  # gather attributes from your implementations and tests
30
- attributes = Mrubyc::Test::Generator::Attribute.run(model_files: model_files, test_files: test_files)
31
-
29
+ attributes = Mrubyc::Test::Generator::Attribute.run(
30
+ model_files: model_files,
31
+ test_files: test_files
32
+ )
32
33
  # convert attributes into tast_cases
33
34
  test_cases = Mrubyc::Test::Generator::TestCase.run(attributes)
34
-
35
35
  # generate a ruby script that will be compiled by mrbc and executed in mruby/c VM
36
- Mrubyc::Test::Generator::Script.run(model_files: model_files, test_files: test_files, test_cases: test_cases, verbose: verbose, method_name_pattern: method_name_pattern)
36
+ Mrubyc::Test::Generator::Script.run(
37
+ model_files: model_files,
38
+ test_files: test_files,
39
+ test_cases: test_cases,
40
+ verbose: verbose,
41
+ method_name_pattern: method_name_pattern
42
+ )
37
43
  end
38
44
 
39
- def make
45
+ def make(mrbc_path)
40
46
  config = Mrubyc::Test::Config.read
41
47
  tmp_dir = File.join(Dir.pwd, config['test_tmp_dir'])
42
48
  puts "cd #{tmp_dir}"
43
49
  puts
44
50
  exit_code = 0
45
51
  pwd = Dir.pwd
46
- mruby_version = File.read('.ruby-version').gsub("\n", '').chomp
47
- unless mruby_version.index('mruby')
48
- puts '.ruby-version doesn\'t set `mruby-x.x.x It is recommended to use the latest version of https://github.com/hasumikin/mrubyc-utils`'
49
- print 'You can specify the version name of mruby [mruby-x.x.x]: '
50
- mruby_version = STDIN.gets.chomp
51
- end
52
52
  hal_path = "#{pwd}/#{config['mrubyc_src_dir']}/hal"
53
53
  hal_bak_path = "#{pwd}/#{config['mrubyc_src_dir']}/~hal"
54
54
  FileUtils.mv(hal_path, hal_bak_path) if FileTest.exist?(hal_path)
@@ -56,8 +56,8 @@ module Mrubyc::Test
56
56
  FileUtils.ln_s "#{pwd}/#{config['test_tmp_dir']}/hal", "#{pwd}/#{config['mrubyc_src_dir']}/hal"
57
57
  Dir.chdir(tmp_dir) do
58
58
  [
59
- "RBENV_VERSION=#{mruby_version} mrbc -E -B test test.rb",
60
- "RBENV_VERSION=#{mruby_version} mrbc -E -B models models.rb",
59
+ "#{mrbc_path} -E -B test test.rb",
60
+ "#{mrbc_path} -E -B models models.rb",
61
61
  "cc -I #{pwd}/#{config['mrubyc_src_dir']} -o test main.c #{pwd}/#{config['mrubyc_src_dir']}/*.c #{pwd}/#{config['mrubyc_src_dir']}/hal/*.c #{ENV["CFLAGS"]} #{ENV["LDFLAGS"]}",
62
62
  "./test"].each do |cmd|
63
63
  puts cmd
@@ -84,10 +84,35 @@ module Mrubyc::Test
84
84
 
85
85
  end
86
86
 
87
- desc 'test', '[Default command] Execute test. You can specify a test file like `mrubyc-test test test/array_test.rb`'
88
- option :every, type: :numeric, default: 10, aliases: "-e", banner: "NUMBER - To avoid Out of Memory, test will be devided up to every specified NUMBER of xxx_test.rb files"
89
- option :verbose, type: :boolean, default: false, aliases: "-v", banner: "[true/false] - Show test result verbosely"
90
- option :name, type: :string, aliases: "-n", banner: "NAME - Specify the NAME of tests you want to run. If you write --name='/PATTERN/', it will be processed as a regular expression. It must be single-quoted and doubled-backslash. eg) --name='/a\\\\db/' will create Regexp object `/a\\db/` and match strings like `a1b`"
87
+ desc 'test', <<~DESC
88
+ [Default command]
89
+ Execute test. You can specify a test file like
90
+ `mrubyc-test test test/array_test.rb`'
91
+ DESC
92
+ option :every, type: :numeric, default: 10, aliases: "-e",
93
+ banner: <<~DESC.chomp
94
+ NUMBER
95
+ To avoid Out of Memory, test will be devided up to
96
+ every specified NUMBER of xxx_test.rb files
97
+ DESC
98
+ option :verbose, type: :boolean, default: false, aliases: "-v",
99
+ banner: "[true/false] - Show test result verbosely"
100
+ option :name, type: :string, aliases: "-n",
101
+ banner: <<~DESC.chomp
102
+ NAME
103
+ Specify the NAME of tests you want to run. If you
104
+ write --name='/PATTERN/', it will be processed as a regular
105
+ expression. It must be single-quoted and doubled-backslash.
106
+ eg) --name='/a\\\\db/' will create Regexp object `/a\\db/`
107
+ and match strings like `a1b`
108
+ DESC
109
+ option :mrbc_path, type: :string, aliases: "-p",
110
+ banner: <<~DESC.chomp
111
+ PATH
112
+ Specify the path to mrbc.
113
+ eg: /home/hoge/mruby/build/host/bin/mrbc
114
+ RBENV_VERSION will be ignored if you specify this option.
115
+ DESC
91
116
  def test(testfilepath = "test/*.rb")
92
117
  init_env
93
118
  method_name_pattern = (%r{\A/(.*)/\Z} =~ options[:name] ? Regexp.new($1) : options[:name])
@@ -96,9 +121,20 @@ module Mrubyc::Test
96
121
  else
97
122
  File.join(Dir.pwd, testfilepath)
98
123
  end
124
+ mrbc_path = if options[:mrbc_path]
125
+ options[:mrbc_path]
126
+ else
127
+ mruby_version = File.read('.ruby-version').gsub("\n", '').chomp
128
+ unless mruby_version.index('mruby')
129
+ puts '.ruby-version doesn\'t set `mruby-x.x.x It is recommended to use the latest version of https://github.com/hasumikin/mrubyc-utils`'
130
+ print 'You can specify the version name of mruby [mruby-x.x.x]: '
131
+ mruby_version = STDIN.gets.chomp
132
+ end
133
+ "RBENV_VERSION=#{mruby_version} mrbc"
134
+ end
99
135
  Dir.glob(test_path).each_slice(options[:every]) do |test_files|
100
136
  prepare(test_files, options[:verbose], method_name_pattern)
101
- make
137
+ make(mrbc_path)
102
138
  end
103
139
  end
104
140
 
@@ -10,11 +10,25 @@ module Mrubyc
10
10
  class << self
11
11
  def run(model_files: [], test_files:, test_cases:, verbose:, method_name_pattern:)
12
12
  config = Mrubyc::Test::Config.read
13
- test_erb = ERB.new(File.read(File.expand_path('../../../../templates/test.rb.erb', __FILE__)), nil, '-')
14
- models_erb = ERB.new(File.read(File.expand_path('../../../../templates/models.rb.erb', __FILE__)), nil, '-')
13
+ test_erb = ERB.new(
14
+ File.read(
15
+ File.expand_path('../../../../templates/test.rb.erb', __FILE__)
16
+ ), nil, '-'
17
+ )
18
+ models_erb = ERB.new(
19
+ File.read(
20
+ File.expand_path('../../../../templates/models.rb.erb', __FILE__)
21
+ ), nil, '-'
22
+ )
15
23
  mrubyc_class_dir = File.expand_path('../../../../mrubyc-ext/', __FILE__)
16
- File.write(File.join(config['test_tmp_dir'], 'test.rb'), Rufo.format(test_erb.result(binding)))
17
- File.write(File.join(config['test_tmp_dir'], 'models.rb'), Rufo.format(models_erb.result(binding)))
24
+ File.write(File.join(
25
+ config['test_tmp_dir'], 'test.rb'),
26
+ Rufo.format(test_erb.result(binding))
27
+ )
28
+ File.write(File.join(
29
+ config['test_tmp_dir'], 'models.rb'),
30
+ Rufo.format(models_erb.result(binding))
31
+ )
18
32
  end
19
33
  end
20
34
  end
@@ -1,5 +1,5 @@
1
1
  module Mrubyc
2
2
  module Test
3
- VERSION = "0.5.3"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mrubyc-test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - HASUMI Hitoshi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-27 00:00:00.000000000 Z
11
+ date: 2020-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler