summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2024-06-11 14:01:29 -0400
committerGitHub <noreply@github.com>2024-06-11 11:01:29 -0700
commit4c50d23245689761e04db450ced9fe9fa76997d0 (patch)
treece372b2b6c65651e7bdee240912ce04baa8c07d6 /spec
parent40251ed0dfe99bb09c2fa542fce603ade25e3729 (diff)
Raise SyntaxError on invalid encoding symbol (#10967)
[Bug #20280] Backport of #10014.
Diffstat (limited to 'spec')
-rw-r--r--spec/ruby/language/hash_spec.rb28
-rw-r--r--spec/ruby/language/symbol_spec.rb14
2 files changed, 23 insertions, 19 deletions
diff --git a/spec/ruby/language/hash_spec.rb b/spec/ruby/language/hash_spec.rb
index 6ac382c42c..1a5b5d0a71 100644
--- a/spec/ruby/language/hash_spec.rb
+++ b/spec/ruby/language/hash_spec.rb
@@ -191,20 +191,22 @@ describe "Hash literal" do
usascii_hash.keys.first.encoding.should == Encoding::US_ASCII
end
- it "raises an EncodingError at parse time when Symbol key with invalid bytes" do
- ScratchPad.record []
- -> {
- eval 'ScratchPad << 1; {:"\xC3" => 1}'
- }.should raise_error(EncodingError, 'invalid symbol in encoding UTF-8 :"\xC3"')
- ScratchPad.recorded.should == []
- end
+ ruby_bug "#20280", ""..."3.3" do
+ it "raises a SyntaxError at parse time when Symbol key with invalid bytes" do
+ ScratchPad.record []
+ -> {
+ eval 'ScratchPad << 1; {:"\xC3" => 1}'
+ }.should raise_error(SyntaxError, /invalid symbol/)
+ ScratchPad.recorded.should == []
+ end
- it "raises an EncodingError at parse time when Symbol key with invalid bytes and 'key: value' syntax used" do
- ScratchPad.record []
- -> {
- eval 'ScratchPad << 1; {"\xC3": 1}'
- }.should raise_error(EncodingError, 'invalid symbol in encoding UTF-8 :"\xC3"')
- ScratchPad.recorded.should == []
+ it "raises a SyntaxError at parse time when Symbol key with invalid bytes and 'key: value' syntax used" do
+ ScratchPad.record []
+ -> {
+ eval 'ScratchPad << 1; {"\xC3": 1}'
+ }.should raise_error(SyntaxError, /invalid symbol/)
+ ScratchPad.recorded.should == []
+ end
end
end
diff --git a/spec/ruby/language/symbol_spec.rb b/spec/ruby/language/symbol_spec.rb
index 7c1898efc2..ea6d541b8b 100644
--- a/spec/ruby/language/symbol_spec.rb
+++ b/spec/ruby/language/symbol_spec.rb
@@ -96,11 +96,13 @@ describe "A Symbol literal" do
%I{a b #{"c"}}.should == [:a, :b, :c]
end
- it "raises an EncodingError at parse time when Symbol with invalid bytes" do
- ScratchPad.record []
- -> {
- eval 'ScratchPad << 1; :"\xC3"'
- }.should raise_error(EncodingError, 'invalid symbol in encoding UTF-8 :"\xC3"')
- ScratchPad.recorded.should == []
+ ruby_bug "#20280", ""..."3.3" do
+ it "raises a SyntaxError at parse time when Symbol with invalid bytes" do
+ ScratchPad.record []
+ -> {
+ eval 'ScratchPad << 1; :"\xC3"'
+ }.should raise_error(SyntaxError, /invalid symbol/)
+ ScratchPad.recorded.should == []
+ end
end
end