The "bar".freeze literal correctly put an old-gen fstring on the stack. But -%w(b a r).join('') returns a young-gen fstring, which suggest it somehow failed to find the old one in the frozen_strings table.
This could be caused by another test corrupting the table, or corrupting the "bar" fstring.
By using a different literal value we can learn whether the bug is specific to "bar" (used in many tests) or more general.
test_uplus_minus: Use a different string literal
This test fail relatively frequently and it's unclear what is
happening.
The
"bar".freezeliteral correctly put an old-gen fstring on the stack.But
-%w(b a r).join('')returns a young-gen fstring, which suggest itsomehow failed to find the old one in the
frozen_stringstable.This could be caused by another test corrupting the table, or corrupting
the
"bar"fstring.By using a different literal value we can learn whether the bug is specific
to
"bar"(used in many tests) or more general.