Skip to content

Commit

Permalink
Update test-all for frozen string literals
Browse files Browse the repository at this point in the history
  • Loading branch information
byroot committed Mar 14, 2024
1 parent e0d8637 commit db34647
Show file tree
Hide file tree
Showing 15 changed files with 66 additions and 64 deletions.
2 changes: 1 addition & 1 deletion lib/reline/kill_ring.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def initialize(max = 1024)
def append(string, before_p = false)
case @state
when State::FRESH, State::YANK
@ring << RingPoint.new(string)
@ring << RingPoint.new(+string)
@state = State::CONTINUED
when State::CONTINUED, State::PROCESSED
if before_p
Expand Down
4 changes: 2 additions & 2 deletions lib/reline/line_editor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1256,7 +1256,7 @@ def editing_mode
item_mbchars = item.grapheme_clusters
end
size = [memo_mbchars.size, item_mbchars.size].min
result = ''
result = +''
size.times do |i|
if @config.completion_ignore_case
if memo_mbchars[i].casecmp?(item_mbchars[i])
Expand Down Expand Up @@ -2935,7 +2935,7 @@ def finish
end

private def ed_delete_prev_char(key, arg: 1)
deleted = ''
deleted = +''
arg.times do
if @cursor > 0
byte_size = Reline::Unicode.get_prev_mbchar_size(@line, @byte_pointer)
Expand Down
2 changes: 1 addition & 1 deletion test/objspace/test_objspace.rb
Original file line number Diff line number Diff line change
Expand Up @@ -696,7 +696,7 @@ def dump_my_heap_please
assert_test_string_entry_correct_in_dump_all(output)
end

assert_in_out_err(%w[-robjspace], "#{<<-"begin;"}#{<<-'end;'}") do |(output), (error)|
assert_in_out_err(%w[-robjspace --disable=frozen-string-literal], "#{<<-"begin;"}#{<<-'end;'}") do |(output), (error)|
begin;
def dump_my_heap_please
ObjectSpace.trace_object_allocations_start
Expand Down
2 changes: 1 addition & 1 deletion test/ruby/enc/test_case_mapping.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def check_capitalize_suffixes(lower, upper)
# different properties; careful: roundtrip isn't always guaranteed
def check_swapcase_properties(expected, start, *flags)
assert_equal expected, start.swapcase(*flags)
temp = start
temp = +start
assert_equal expected, temp.swapcase!(*flags)
assert_equal start, start.swapcase(*flags).swapcase(*flags)
assert_equal expected, expected.swapcase(*flags).swapcase(*flags)
Expand Down
2 changes: 1 addition & 1 deletion test/ruby/enc/test_case_options.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def assert_okay_bang_operations(arg, *options)

def assert_okay_both_types(*options)
assert_okay_functional_operations 'a', *options
assert_okay_bang_operations 'a', *options
assert_okay_bang_operations +'a', *options
assert_okay_functional_operations :a, *options
end

Expand Down
24 changes: 12 additions & 12 deletions test/ruby/test_argf.rb
Original file line number Diff line number Diff line change
Expand Up @@ -593,7 +593,7 @@ def test_read
def test_read2
ruby('-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
{#
s = ""
s = +""
ARGF.read(8, s)
p s
};
Expand All @@ -604,7 +604,7 @@ def test_read2
def test_read2_with_not_empty_buffer
ruby('-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
{#
s = "0123456789"
s = +"0123456789"
ARGF.read(8, s)
p s
};
Expand All @@ -626,13 +626,13 @@ def test_read3
def test_readpartial
ruby('-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
{#
s = ""
s = +""
begin
loop do
s << ARGF.readpartial(1)
t = ""; ARGF.readpartial(1, t); s << t
t = +""; ARGF.readpartial(1, t); s << t
# not empty buffer
u = "abcdef"; ARGF.readpartial(1, u); s << u
u = +"abcdef"; ARGF.readpartial(1, u); s << u
end
rescue EOFError
puts s
Expand All @@ -645,11 +645,11 @@ def test_readpartial
def test_readpartial2
ruby('-e', "#{<<~"{#"}\n#{<<~'};'}") do |f|
{#
s = ""
s = +""
begin
loop do
s << ARGF.readpartial(1)
t = ""; ARGF.readpartial(1, t); s << t
t = +""; ARGF.readpartial(1, t); s << t
end
rescue EOFError
$stdout.binmode
Expand Down Expand Up @@ -680,7 +680,7 @@ def test_readpartial_eof_twice
def test_getc
ruby('-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
{#
s = ""
s = +""
while c = ARGF.getc
s << c
end
Expand All @@ -706,7 +706,7 @@ def test_getbyte
def test_readchar
ruby('-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
{#
s = ""
s = +""
begin
while c = ARGF.readchar
s << c
Expand Down Expand Up @@ -784,7 +784,7 @@ def test_each_byte
def test_each_char
ruby('-e', "#{<<~"{#"}\n#{<<~'};'}", @t1.path, @t2.path, @t3.path) do |f|
{#
s = ""
s = +""
ARGF.each_char {|c| s << c }
puts s
};
Expand Down Expand Up @@ -1073,7 +1073,7 @@ def test_read_nonblock
ruby('-e', "#{<<~"{#"}\n#{<<~'};'}") do |f|
{#
$stdout.sync = true
:wait_readable == ARGF.read_nonblock(1, "", exception: false) or
:wait_readable == ARGF.read_nonblock(1, +"", exception: false) or
abort "did not return :wait_readable"
begin
Expand All @@ -1086,7 +1086,7 @@ def test_read_nonblock
IO.select([ARGF]) == [[ARGF], [], []] or
abort 'did not awaken for readability (before byte)'
buf = ''
buf = +''
buf.object_id == ARGF.read_nonblock(1, buf).object_id or
abort "read destination buffer failed"
print buf
Expand Down
2 changes: 1 addition & 1 deletion test/ruby/test_bignum.rb
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ def test_very_big_str_to_inum
assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}")
begin;
digits = [["3", 700], ["0", 2700], ["1", 1], ["0", 26599]]
num = digits.inject("") {|s,(c,n)|s << c*n}.to_i
num = digits.inject(+"") {|s,(c,n)|s << c*n}.to_i
assert_equal digits.sum {|c,n|n}, num.to_s.size
end;
end
Expand Down
40 changes: 20 additions & 20 deletions test/ruby/test_dir_m17n.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@ def test_filename_extutf8_invalid
return if Bug::File::Fs.fsname(Dir.tmpdir) == "apfs"
with_tmpdir {|d|
assert_separately(%w[-EASCII-8BIT], <<-'EOS', :chdir=>d)
filename = "\xff".force_encoding("ASCII-8BIT") # invalid byte sequence as UTF-8
filename = "\xff".dup.force_encoding("ASCII-8BIT") # invalid byte sequence as UTF-8
File.open(filename, "w") {}
opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
ents = Dir.entries(".", **(opts||{}))
filename = "%FF" if /darwin/ =~ RUBY_PLATFORM && ents.include?("%FF")
assert_include(ents, filename)
EOS
assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
filename = "\xff".force_encoding("UTF-8") # invalid byte sequence as UTF-8
filename = "\xff".dup.force_encoding("UTF-8") # invalid byte sequence as UTF-8
File.open(filename, "w") {}
opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
ents = Dir.entries(".", **(opts||{}))
Expand All @@ -77,17 +77,17 @@ def test_filename_extutf8_invalid
def test_filename_as_bytes_extutf8
with_tmpdir {|d|
assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
filename = "\xc2\xa1".force_encoding("utf-8")
filename = "\xc2\xa1".dup.force_encoding("utf-8")
File.open(filename, "w") {}
opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
ents = Dir.entries(".", **(opts||{}))
assert_include(ents, filename)
EOS
assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
if /mswin|mingw|darwin/ =~ RUBY_PLATFORM
filename = "\x8f\xa2\xc2".force_encoding("euc-jp")
filename = "\x8f\xa2\xc2".dup.force_encoding("euc-jp")
else
filename = "\xc2\xa1".force_encoding("euc-jp")
filename = "\xc2\xa1".dup.force_encoding("euc-jp")
end
assert_nothing_raised(Errno::ENOENT) do
open(filename) {}
Expand All @@ -96,8 +96,8 @@ def test_filename_as_bytes_extutf8
# no meaning test on windows
unless /mswin|mingw|darwin/ =~ RUBY_PLATFORM
assert_separately(%W[-EUTF-8], <<-'EOS', :chdir=>d)
filename1 = "\xc2\xa1".force_encoding("utf-8")
filename2 = "\xc2\xa1".force_encoding("euc-jp")
filename1 = "\xc2\xa1".dup.force_encoding("utf-8")
filename2 = "\xc2\xa1".dup.force_encoding("euc-jp")
filename3 = filename1.encode("euc-jp")
filename4 = filename2.encode("utf-8")
assert_file.stat(filename1)
Expand All @@ -121,13 +121,13 @@ def test_filename_extutf8_inteucjp_representable
assert_include(ents, filename)
EOS
assert_separately(%w[-EUTF-8:EUC-JP], <<-'EOS', :chdir=>d)
filename = "\xA4\xA2".force_encoding("euc-jp")
filename = "\xA4\xA2".dup.force_encoding("euc-jp")
opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
ents = Dir.entries(".", **(opts||{}))
assert_include(ents, filename)
EOS
assert_separately(%w[-EUTF-8:EUC-JP], <<-'EOS', :chdir=>d)
filename = "\xA4\xA2".force_encoding("euc-jp")
filename = "\xA4\xA2".dup.force_encoding("euc-jp")
assert_nothing_raised(Errno::ENOENT) do
open(filename) {}
end
Expand All @@ -149,7 +149,7 @@ def test_filename_extutf8_inteucjp_unrepresentable
EOS
assert_separately(%w[-EUTF-8:EUC-JP], <<-'EOS', :chdir=>d)
filename1 = "\u2661" # WHITE HEART SUIT which is not representable in EUC-JP
filename2 = "\xA4\xA2".force_encoding("euc-jp") # HIRAGANA LETTER A in EUC-JP
filename2 = "\xA4\xA2".dup.force_encoding("euc-jp") # HIRAGANA LETTER A in EUC-JP
opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
ents = Dir.entries(".", **(opts||{}))
assert_include(ents, filename1)
Expand All @@ -158,7 +158,7 @@ def test_filename_extutf8_inteucjp_unrepresentable
assert_separately(%w[-EUTF-8:EUC-JP], <<-'EOS', :chdir=>d)
filename1 = "\u2661" # WHITE HEART SUIT which is not representable in EUC-JP
filename2 = "\u3042" # HIRAGANA LETTER A which is representable in EUC-JP
filename3 = "\xA4\xA2".force_encoding("euc-jp") # HIRAGANA LETTER A in EUC-JP
filename3 = "\xA4\xA2".dup.force_encoding("euc-jp") # HIRAGANA LETTER A in EUC-JP
assert_file.stat(filename1)
assert_file.stat(filename2)
assert_file.stat(filename3)
Expand All @@ -172,7 +172,7 @@ def test_filename_bytes_euc_jp
return if /cygwin/ =~ RUBY_PLATFORM
with_tmpdir {|d|
assert_separately(%w[-EEUC-JP], <<-'EOS', :chdir=>d)
filename = "\xA4\xA2".force_encoding("euc-jp")
filename = "\xA4\xA2".dup.force_encoding("euc-jp")
File.open(filename, "w") {}
opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
ents = Dir.entries(".", **(opts||{}))
Expand All @@ -189,7 +189,7 @@ def test_filename_euc_jp
return if /cygwin/ =~ RUBY_PLATFORM
with_tmpdir {|d|
assert_separately(%w[-EEUC-JP], <<-'EOS', :chdir=>d)
filename = "\xA4\xA2".force_encoding("euc-jp")
filename = "\xA4\xA2".dup.force_encoding("euc-jp")
File.open(filename, "w") {}
ents = Dir.entries(".")
if /darwin/ =~ RUBY_PLATFORM
Expand All @@ -200,7 +200,7 @@ def test_filename_euc_jp
assert_include(ents, filename)
EOS
assert_separately(%w[-EASCII-8BIT], <<-'EOS', :chdir=>d)
filename = "\xA4\xA2".force_encoding('ASCII-8BIT')
filename = "\xA4\xA2".dup.force_encoding('ASCII-8BIT')
ents = Dir.entries(".")
unless ents.include?(filename)
case RUBY_PLATFORM
Expand Down Expand Up @@ -231,7 +231,7 @@ def test_filename_ext_euc_jp_and_int_utf_8
return if /cygwin/ =~ RUBY_PLATFORM
with_tmpdir {|d|
assert_separately(%w[-EEUC-JP], <<-'EOS', :chdir=>d)
filename = "\xA4\xA2".force_encoding("euc-jp")
filename = "\xA4\xA2".dup.force_encoding("euc-jp")
File.open(filename, "w") {}
opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
ents = Dir.entries(".", **(opts||{}))
Expand All @@ -241,7 +241,7 @@ def test_filename_ext_euc_jp_and_int_utf_8
assert_include(ents, filename)
EOS
assert_separately(%w[-EEUC-JP:UTF-8], <<-'EOS', :chdir=>d)
filename = "\u3042"
filename = "\u3042".dup
opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
ents = Dir.entries(".", **(opts||{}))
if /darwin/ =~ RUBY_PLATFORM
Expand Down Expand Up @@ -350,7 +350,7 @@ def test_glob_warning_match_dir
end

def test_glob_escape_multibyte
name = "\x81\\".force_encoding(Encoding::Shift_JIS)
name = "\x81\\".dup.force_encoding(Encoding::Shift_JIS)
with_tmpdir do
open(name, "w") {} rescue next
match, = Dir.glob("#{name}*")
Expand All @@ -363,8 +363,8 @@ def test_glob_encoding
with_tmpdir do
list = %W"file_one.ext file_two.ext \u{6587 4ef6}1.txt \u{6587 4ef6}2.txt"
list.each {|f| open(f, "w") {}}
a = "file_one*".force_encoding Encoding::IBM437
b = "file_two*".force_encoding Encoding::EUC_JP
a = "file_one*".dup.force_encoding Encoding::IBM437
b = "file_two*".dup.force_encoding Encoding::EUC_JP
assert_equal([a, b].map(&:encoding), Dir[a, b].map(&:encoding))
if Bug::File::Fs.fsname(Dir.pwd) == "apfs"
# High Sierra's APFS cannot use filenames with undefined character
Expand All @@ -375,7 +375,7 @@ def test_glob_encoding
Dir.mkdir(dir)
list << dir
bug12081 = '[ruby-core:73868] [Bug #12081]'
a = "*".force_encoding("us-ascii")
a = "*".dup.force_encoding("us-ascii")
result = Dir[a].map {|n|
if n.encoding == Encoding::ASCII_8BIT ||
n.encoding == Encoding::ISO_8859_1 ||
Expand Down
4 changes: 2 additions & 2 deletions test/ruby/test_env.rb
Original file line number Diff line number Diff line change
Expand Up @@ -612,8 +612,8 @@ def str_to_yield_invalid_envvar_errors(var_name, code_str)
<<-"end;"
envvars_to_check = [
"foo\0bar",
"#{'\xa1\xa1'}".force_encoding(Encoding::UTF_16LE),
"foo".force_encoding(Encoding::ISO_2022_JP),
"#{'\xa1\xa1'}".dup.force_encoding(Encoding::UTF_16LE),
"foo".dup.force_encoding(Encoding::ISO_2022_JP),
]
envvars_to_check.each do |#{var_name}|
#{str_for_yielding_exception_class(code_str)}
Expand Down
2 changes: 1 addition & 1 deletion test/ruby/test_gc_compact.rb
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ def test_moving_strings_up_size_pools
Fiber.new {
str = "a" * GC::INTERNAL_CONSTANTS[:BASE_SLOT_SIZE] * 4
$ary = STR_COUNT.times.map { "" << str }
$ary = STR_COUNT.times.map { +"" << str }
}.resume
stats = GC.verify_compaction_references(expand_heap: true, toward: :empty)
Expand Down
2 changes: 1 addition & 1 deletion test/ruby/test_iseq.rb
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ def obj.foo(*) nil.instance_eval{ ->{super} } end
end

def test_disasm_encoding
src = "\u{3042} = 1; \u{3042}; \u{3043}"
src = +"\u{3042} = 1; \u{3042}; \u{3043}"
asm = compile(src).disasm
assert_equal(src.encoding, asm.encoding)
assert_predicate(asm, :valid_encoding?)
Expand Down
2 changes: 1 addition & 1 deletion test/ruby/test_refinement.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1044,7 +1044,7 @@ module Test
end
using Test
def t
'Refinements are broken!'.chop!
'Refinements are broken!'.dup.chop!
end
t
module Test
Expand Down
2 changes: 1 addition & 1 deletion test/ruby/test_transcode.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2265,7 +2265,7 @@ def test_loading_race
result = th.map(&:value)
end
end
expected = "\xa4\xa2".force_encoding(Encoding::EUC_JP)
expected = "\xa4\xa2".dup.force_encoding(Encoding::EUC_JP)
assert_equal([expected]*num, result, bug11277)
end;
end
Expand Down
2 changes: 1 addition & 1 deletion test/stringio/test_ractor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def test_ractor
require "stringio"
$VERBOSE = nil
r = Ractor.new do
io = StringIO.new("")
io = StringIO.new(+"")
io.puts "abc"
io.truncate(0)
io.puts "def"
Expand Down
Loading

0 comments on commit db34647

Please sign in to comment.