1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/spec/ruby/language/source_encoding_spec.rb
eregon 8180b5bfc0 Update to ruby/spec@09fa86c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-27 14:25:00 +00:00

41 lines
1.4 KiB
Ruby

require_relative '../spec_helper'
describe "Source files" do
describe "encoded in UTF-8 without a BOM" do
it "can be parsed" do
ruby_exe(fixture(__FILE__, "utf8-nobom.rb"), args: "2>&1").should == "hello\n"
end
end
describe "encoded in UTF-8 with a BOM" do
it "can be parsed" do
ruby_exe(fixture(__FILE__, "utf8-bom.rb"), args: "2>&1").should == "hello\n"
end
end
describe "encoded in UTF-16 LE without a BOM" do
it "are parsed because empty as they contain a NUL byte before the encoding comment" do
ruby_exe(fixture(__FILE__, "utf16-le-nobom.rb"), args: "2>&1").should == ""
end
end
describe "encoded in UTF-16 LE with a BOM" do
it "are invalid because they contain an invalid UTF-8 sequence before the encoding comment" do
ruby_exe(fixture(__FILE__, "utf16-le-bom.rb"), args: "2>&1").should =~ /invalid multibyte char/
end
end
describe "encoded in UTF-16 BE without a BOM" do
it "are parsed as empty because they contain a NUL byte before the encoding comment" do
ruby_exe(fixture(__FILE__, "utf16-be-nobom.rb"), args: "2>&1").should == ""
end
end
describe "encoded in UTF-16 BE with a BOM" do
it "are invalid because they contain an invalid UTF-8 sequence before the encoding comment" do
ruby_exe(fixture(__FILE__, "utf16-be-bom.rb"), args: "2>&1").should =~ /invalid multibyte char/
end
end
end