merge a revision partially 097d742a1e: [Backport #20009]

This commit is contained in:
nagachika 2025-07-20 10:35:44 +09:00
parent 581be2b79c
commit f4de78f2b4

View file

@ -193,10 +193,12 @@ describe "Marshal.dump" do
Marshal.dump(MarshalSpec::ClassWithOverriddenName).should == "\x04\bc)MarshalSpec::ClassWithOverriddenName"
end
it "dumps a class with multibyte characters in name" do
source_object = eval("MarshalSpec::MultibyteぁあぃいClass".dup.force_encoding(Encoding::UTF_8))
Marshal.dump(source_object).should == "\x04\bIc,MarshalSpec::Multibyte\xE3\x81\x81\xE3\x81\x82\xE3\x81\x83\xE3\x81\x84Class\x06:\x06ET"
Marshal.load(Marshal.dump(source_object)) == source_object
ruby_version_is "3.3" do
it "dumps a class with multibyte characters in name" do
source_object = eval("MarshalSpec::MultibyteぁあぃいClass".dup.force_encoding(Encoding::UTF_8))
Marshal.dump(source_object).should == "\x04\bIc,MarshalSpec::Multibyte\xE3\x81\x81\xE3\x81\x82\xE3\x81\x83\xE3\x81\x84Class\x06:\x06ET"
Marshal.load(Marshal.dump(source_object)) == source_object
end
end
it "raises TypeError with an anonymous Class" do
@ -217,10 +219,12 @@ describe "Marshal.dump" do
Marshal.dump(MarshalSpec::ModuleWithOverriddenName).should == "\x04\bc*MarshalSpec::ModuleWithOverriddenName"
end
it "dumps a module with multibyte characters in name" do
source_object = eval("MarshalSpec::MultibyteけげこごModule".dup.force_encoding(Encoding::UTF_8))
Marshal.dump(source_object).should == "\x04\bIm-MarshalSpec::Multibyte\xE3\x81\x91\xE3\x81\x92\xE3\x81\x93\xE3\x81\x94Module\x06:\x06ET"
Marshal.load(Marshal.dump(source_object)) == source_object
ruby_version_is "3.3" do
it "dumps a module with multibyte characters in name" do
source_object = eval("MarshalSpec::MultibyteけげこごModule".dup.force_encoding(Encoding::UTF_8))
Marshal.dump(source_object).should == "\x04\bIm-MarshalSpec::Multibyte\xE3\x81\x91\xE3\x81\x92\xE3\x81\x93\xE3\x81\x94Module\x06:\x06ET"
Marshal.load(Marshal.dump(source_object)) == source_object
end
end
it "raises TypeError with an anonymous Module" do
@ -686,10 +690,12 @@ describe "Marshal.dump" do
Marshal.dump(obj).should include("MarshalSpec::TimeWithOverriddenName")
end
it "dumps a Time subclass with multibyte characters in name" do
source_object = eval("MarshalSpec::MultibyteぁあぃいTime".dup.force_encoding(Encoding::UTF_8))
Marshal.dump(source_object).should == "\x04\bIc+MarshalSpec::Multibyte\xE3\x81\x81\xE3\x81\x82\xE3\x81\x83\xE3\x81\x84Time\x06:\x06ET"
Marshal.load(Marshal.dump(source_object)) == source_object
ruby_version_is "3.3" do
it "dumps a Time subclass with multibyte characters in name" do
source_object = eval("MarshalSpec::MultibyteぁあぃいTime".dup.force_encoding(Encoding::UTF_8))
Marshal.dump(source_object).should == "\x04\bIc+MarshalSpec::Multibyte\xE3\x81\x81\xE3\x81\x82\xE3\x81\x83\xE3\x81\x84Time\x06:\x06ET"
Marshal.load(Marshal.dump(source_object)) == source_object
end
end
it "raises TypeError with an anonymous Time subclass" do