require 'tempfile' assert('regression for #1564') do o = `#{cmd('mruby')} -e #{shellquote('<<')} 2>&1` assert_include o, "-e:1:2: syntax error" o = `#{cmd('mruby')} -e #{shellquote('<<-')} 2>&1` assert_include o, "-e:1:3: syntax error" end assert('regression for #1572') do script, bin = Tempfile.new('test.rb'), Tempfile.new('test.mrb') File.write script.path, 'p "ok"' system "#{cmd('mrbc')} -g -o #{bin.path} #{script.path}" o = `#{cmd('mruby')} -b #{bin.path}`.strip assert_equal '"ok"', o end assert '$0 value' do script, bin = Tempfile.new('test.rb'), Tempfile.new('test.mrb') # .rb script script.write "p $0\n" script.flush assert_equal "\"#{script.path}\"", `#{cmd('mruby')} "#{script.path}"`.chomp # .mrb file `#{cmd('mrbc')} -o "#{bin.path}" "#{script.path}"` assert_equal "\"#{bin.path}\"", `#{cmd('mruby')} -b "#{bin.path}"`.chomp # one liner assert_equal '"-e"', `#{cmd('mruby')} -e #{shellquote('p $0')}`.chomp end assert('float literal') do script, bin = Tempfile.new('test.rb'), Tempfile.new('test.mrb') File.write script.path, 'p [3.21, 2e308.infinite?, -2e308.infinite?]' system "#{cmd('mrbc')} -g -o #{bin.path} #{script.path}" assert_equal "[3.21, 1, -1]", `#{cmd('mruby')} -b #{bin.path}`.chomp! end assert '__END__', '8.6' do script = Tempfile.new('test.rb') script.write <