[270] | 1 | require 'tempfile'
|
---|
| 2 |
|
---|
| 3 | assert('regression for #1564') do
|
---|
| 4 | o = `#{cmd('mruby')} -e #{shellquote('<<')} 2>&1`
|
---|
| 5 | assert_equal o, "-e:1:2: syntax error, unexpected tLSHFT\n"
|
---|
| 6 | o = `#{cmd('mruby')} -e #{shellquote('<<-')} 2>&1`
|
---|
| 7 | assert_equal o, "-e:1:3: syntax error, unexpected tLSHFT\n"
|
---|
| 8 | end
|
---|
| 9 |
|
---|
| 10 | assert('regression for #1572') do
|
---|
| 11 | script, bin = Tempfile.new('test.rb'), Tempfile.new('test.mrb')
|
---|
| 12 | File.write script.path, 'p "ok"'
|
---|
| 13 | system "#{cmd('mrbc')} -g -o #{bin.path} #{script.path}"
|
---|
| 14 | o = `#{cmd('mruby')} -b #{bin.path}`.strip
|
---|
| 15 | assert_equal o, '"ok"'
|
---|
| 16 | end
|
---|
| 17 |
|
---|
| 18 | assert '$0 value' do
|
---|
| 19 | script, bin = Tempfile.new('test.rb'), Tempfile.new('test.mrb')
|
---|
| 20 |
|
---|
| 21 | # .rb script
|
---|
| 22 | script.write "p $0\n"
|
---|
| 23 | script.flush
|
---|
| 24 | assert_equal "\"#{script.path}\"", `#{cmd('mruby')} "#{script.path}"`.chomp
|
---|
| 25 |
|
---|
| 26 | # .mrb file
|
---|
| 27 | `#{cmd('mrbc')} -o "#{bin.path}" "#{script.path}"`
|
---|
| 28 | assert_equal "\"#{bin.path}\"", `#{cmd('mruby')} -b "#{bin.path}"`.chomp
|
---|
| 29 |
|
---|
| 30 | # one liner
|
---|
| 31 | assert_equal '"-e"', `#{cmd('mruby')} -e #{shellquote('p $0')}`.chomp
|
---|
| 32 | end
|
---|
| 33 |
|
---|
| 34 | assert '__END__', '8.6' do
|
---|
| 35 | script = Tempfile.new('test.rb')
|
---|
| 36 |
|
---|
| 37 | script.write <<EOS
|
---|
| 38 | p 'test'
|
---|
| 39 | __END__ = 'fin'
|
---|
| 40 | p __END__
|
---|
| 41 | __END__
|
---|
| 42 | p 'legend'
|
---|
| 43 | EOS
|
---|
| 44 | script.flush
|
---|
| 45 | assert_equal "\"test\"\n\"fin\"\n", `#{cmd('mruby')} #{script.path}`
|
---|
| 46 | end
|
---|