This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
add tests for #3516: \G in a m//g
authorDavid Mitchell <davem@iabyn.com>
Thu, 27 Jan 2011 15:15:35 +0000 (15:15 +0000)
committerDavid Mitchell <davem@iabyn.com>
Thu, 27 Jan 2011 15:15:35 +0000 (15:15 +0000)
as suggested in RT# #76706 by George Greer.

t/re/pat.t

index 4d2e582..b707b25 100644 (file)
@@ -1171,6 +1171,29 @@ sub run_tests {
         iseq($first, $second);
     }
 
+    {
+       # RT #3516: \G in a m//g expression causes problems
+       my $count = 0;
+       while ("abc" =~ m/(\G[ac])?/g) {
+           last if $count++ > 10;
+       }
+       ok($count < 10, 'RT #3516 A');
+
+       $count = 0;
+       while ("abc" =~ m/(\G|.)[ac]/g) {
+           last if $count++ > 10;
+       }
+       ok($count < 10, 'RT #3516 B');
+
+       $count = 0;
+       while ("abc" =~ m/(\G?[ac])?/g) {
+           last if $count++ > 10;
+       }
+       ok($count < 10, 'RT #3516 C');
+    }
+
+
+
 } # End of sub run_tests
 
 1;