This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
taint-enable lib/overload.t
authorDavid Mitchell <davem@iabyn.com>
Fri, 18 Jun 2010 21:45:45 +0000 (22:45 +0100)
committerDavid Mitchell <davem@iabyn.com>
Sat, 3 Jul 2010 15:25:58 +0000 (16:25 +0100)
Stick a -T at the top of lib/overload.t in preparation for adding some
taint tests later. This causes some of the current tests to fail, since
the FETCH count has changed: so we fix those up too. They change because
under taint, code like ${$x} is compiled as enter/gvsv/leave/rv2sv rather
than gvsv/rv2sv (see Perl_scope), and the leave creates a mortal copy of
the tied value, avoiding any further fetches.

lib/overload.t

index ca58619..949986b 100644 (file)
@@ -1,4 +1,4 @@
-#!./perl
+#!./perl -T
 
 BEGIN {
     chdir 't' if -d 't';
@@ -1737,7 +1737,7 @@ foreach my $op (qw(<=> == != < <= > >=)) {
        }
 
        $subs{'${}'} = '%s';
-       push @terms, [ do {my $s=99; \$s}, '${%s}', '${}', '', 1, 2, 0 ];
+       push @terms, [ do {my $s=99; \$s}, '${%s}', '${}', '', 1, 1, 0 ];
 
        # we skip testing '@{}' here because too much of this test
        # framework involves array deredfences!
@@ -1747,13 +1747,13 @@ foreach my $op (qw(<=> == != < <= > >=)) {
                '', 1, 2, 0 ];
 
        $subs{'&{}'} = '%s';
-       push @terms, [ sub {99}, 'do {&{%s} for 1,2}', '&{})(&{}', '', 2, 4, 0 ];
+       push @terms, [ sub {99}, 'do {&{%s} for 1,2}', '&{})(&{}', '', 2, 2, 0 ];
 
        our $RT57012A = 88;
        our $RT57012B;
        $subs{'*{}'} = '%s';
        push @terms, [ \*RT57012A, '*RT57012B = *{%s}; our $RT57012B',
-               '*{}', '', 1, 2, 0 ];
+               '*{}', '', 1, 1, 0 ];
 
        # XXX TODO: '<>'