This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/uni/overload.t: test for RT 3054: might segfault.
authorDan Collins <dcollinsn@gmail.com>
Sun, 3 Jul 2016 22:53:27 +0000 (18:53 -0400)
committerYves Orton <demerphq@gmail.com>
Fri, 21 Oct 2016 07:09:43 +0000 (09:09 +0200)
This one may be a bit dangerous. It is also one of many bugs
involving a segfault due to a C stack overflow.

t/uni/overload.t

index d7d541c..21d81ec 100644 (file)
@@ -9,7 +9,7 @@ BEGIN {
     set_up_inc( '../lib' );
 }
 
-plan(tests => 215);
+plan(tests => 216);
 
 package UTF8Toggle;
 use strict;
@@ -287,3 +287,12 @@ foreach my $value ("\243", UTF8Toggle->new("\243")) {
     my $p = substr $text, 0, 1;
     is ($p, "\x{3075}");
 }
+
+TODO: {
+    local $::TODO = 'RT #3054: Recursive operator overloading overflows the C stack';
+    fresh_perl_is(<<'EOP', "ok\n", {}, 'RT #3054: Recursive operator overloading should not crash the interpreter');
+    use overload '""' => sub { "$_[0]" };
+    print bless {}, __PACKAGE__;
+    print "ok\n";
+EOP
+}