diff options
author | David Mitchell <davem@iabyn.com> | 2016-05-02 13:59:28 +0100 |
---|---|---|
committer | Ricardo Signes <rjbs@cpan.org> | 2016-05-03 11:23:03 -0400 |
commit | a21b01b71e8d60c4063525294714681dc88a5bcd (patch) | |
tree | e191388f80b9bce85b4312e3a38b42243dd88f7e /t | |
parent | 5f58a6bfe359e4057623eb7db1a92e73495eddb8 (diff) | |
download | perl-a21b01b71e8d60c4063525294714681dc88a5bcd.tar.gz |
test lexical $foo = "$foo"
There were some issues with this and SvGROW().
This only occured under valgrind or similar, and only when the first of
two reverts had been done - those revertd being two preceding commits.
See RT #127855.
Diffstat (limited to 't')
-rw-r--r-- | t/op/lex_assign.t | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/t/op/lex_assign.t b/t/op/lex_assign.t index 4ea3f243ec..c4a5062b6c 100644 --- a/t/op/lex_assign.t +++ b/t/op/lex_assign.t @@ -197,6 +197,24 @@ eval { }; is($@, '', 'ex-PVBM assert'.$@); +# RT perl #127855 +# Check that stringification and assignment to itself doesn't break +# anything. This is unlikely to actually fail the tests; its more something +# for valgrind to spot. It will also only fail if SvGROW or its caller +# decides to over-allocate (otherwise copying the string will skip the +# sv_grow(), as the new size is the same as the current size). + +{ + my $s; + for my $len (1..40) { + $s = 'x' x $len; + my $t = $s; + $t = "$t"; + ok($s eq $t, "RT 127855: len=$len"); + } +} + + done_testing(); __END__ |