diff options
| author | Peter Zhu <peter@peterzhu.ca> | 2024-06-11 14:01:29 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-11 11:01:29 -0700 |
| commit | 4c50d23245689761e04db450ced9fe9fa76997d0 (patch) | |
| tree | ce372b2b6c65651e7bdee240912ce04baa8c07d6 /spec/ruby | |
| parent | 40251ed0dfe99bb09c2fa542fce603ade25e3729 (diff) | |
Raise SyntaxError on invalid encoding symbol (#10967)
[Bug #20280]
Backport of #10014.
Diffstat (limited to 'spec/ruby')
| -rw-r--r-- | spec/ruby/language/hash_spec.rb | 28 | ||||
| -rw-r--r-- | spec/ruby/language/symbol_spec.rb | 14 |
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 |
