From b6b32278a19aebc28718549a7938bbfb73f6e95f Mon Sep 17 00:00:00 2001 From: Jan Lelis Date: Mon, 2 Oct 2023 17:56:34 +0200 Subject: [PATCH] Exclude truffleruby from inclomplete character tests --- spec/unibits_spec.rb | 67 +++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/spec/unibits_spec.rb b/spec/unibits_spec.rb index dcb6024..3de6b51 100644 --- a/spec/unibits_spec.rb +++ b/spec/unibits_spec.rb @@ -213,20 +213,21 @@ end describe "invalid UTF-16 encodings" do - it "- incomplete number of bytes (1/2)" do - string = "a".b.force_encoding("UTF-16LE") - result = Paint.unpaint(Unibits.visualize(string)) - result.must_match "incompl." - result.must_match "�" + unless RUBY_ENGINE === "truffleruby" + it "- incomplete number of bytes (1/2)" do + string = "a".b.force_encoding("UTF-16LE") + result = Paint.unpaint(Unibits.visualize(string)) + result.must_match "incompl." + result.must_match "�" + end + + it "- incomplete number of bytes (2/2)" do + string = "🌫".b[0..-2].force_encoding("UTF-16LE") + result = Paint.unpaint(Unibits.visualize(string)) + result.must_match "incompl." + result.must_match "�" + end end - - it "- incomplete number of bytes (2/2)" do - string = "🌫".b[0..-2].force_encoding("UTF-16LE") - result = Paint.unpaint(Unibits.visualize(string)) - result.must_match "incompl." - result.must_match "�" - end - it "- only lower half surrogate" do string = "\x3C\xD8\x2Ba".force_encoding("UTF-16LE") result = Paint.unpaint(Unibits.visualize(string)) @@ -245,25 +246,27 @@ describe "invalid UTF-32 encodings" do # please note, currently, too large codepoints and encoded utf16 surrogates are treated as valid encodings - it "- incomplete number of bytes (1/3)" do - string = "a".b.force_encoding("UTF-32LE") - result = Paint.unpaint(Unibits.visualize(string)) - result.must_match "incompl." - result.must_match "�" - end - - it "- incomplete number of bytes (2/3)" do - string = "🌫".b[0..-2].force_encoding("UTF-32LE") - result = Paint.unpaint(Unibits.visualize(string)) - result.must_match "incompl." - result.must_match "�" - end - - it "- incomplete number of bytes (3/3)" do - string = "🌫".b[0..-2].force_encoding("UTF-32LE") - result = Paint.unpaint(Unibits.visualize(string)) - result.must_match "incompl." - result.must_match "�" + unless RUBY_ENGINE === "truffleruby" + it "- incomplete number of bytes (1/3)" do + string = "a".b.force_encoding("UTF-32LE") + result = Paint.unpaint(Unibits.visualize(string)) + result.must_match "incompl." + result.must_match "�" + end + + it "- incomplete number of bytes (2/3)" do + string = "🌫".b[0..-2].force_encoding("UTF-32LE") + result = Paint.unpaint(Unibits.visualize(string)) + result.must_match "incompl." + result.must_match "�" + end + + it "- incomplete number of bytes (3/3)" do + string = "🌫".b[0..-2].force_encoding("UTF-32LE") + result = Paint.unpaint(Unibits.visualize(string)) + result.must_match "incompl." + result.must_match "�" + end end it "- too large codepoint (1/2)" do