[perl #68108] : also fix if/else constant folding
[p5sagit/p5-mst-13.2.git] / t / op / lex_assign.t
old mode 100755 (executable)
new mode 100644 (file)
index 2fb059d..38f11cc
@@ -2,13 +2,13 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    @INC = '../lib';
 }
-$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3; 
 
+$| = 1;
 umask 0;
 $xref = \ "";
-$runme = ($^O eq 'VMS' ? 'MCR ' : '') . $^X;
+$runme = $^X;
 @a = (1..5);
 %h = (1..6);
 $aref = \@a;
@@ -24,7 +24,7 @@ sub subb {"in s"}
 
 @INPUT = <DATA>;
 @simple_input = grep /^\s*\w+\s*\$\w+\s*[#\n]/, @INPUT;
-print "1..", (10 + @INPUT + @simple_input), "\n";
+print "1..", (11 + @INPUT + @simple_input), "\n";
 $ord = 0;
 
 sub wrn {"@_"}
@@ -112,11 +112,12 @@ for (@INPUT) {
   $ord++;
   ($op, undef, $comment) = /^([^\#]+)(\#\s+(.*))?/;
   $comment = $op unless defined $comment;
+  chomp;
   $op = "$op==$op" unless $op =~ /==/;
   ($op, $expectop) = $op =~ /(.*)==(.*)/;
   
   $skip = ($op =~ /^'\?\?\?'/ or $comment =~ /skip\(.*\Q$^O\E.*\)/i)
-         ? "skip" : "not";
+         ? "skip" : "# '$_'\nnot";
   $integer = ($comment =~ /^i_/) ? "use integer" : '' ;
   (print "#skipping $comment:\nok $ord\n"), next if $skip eq 'skip';
   
@@ -137,7 +138,7 @@ EOE
       print "# skipping $comment: unimplemented:\nok $ord\n";
     } else {
       warn $@;
-      print "not ok $ord\n";
+      print "# '$_'\nnot ok $ord\n";
     }
   }
 }
@@ -146,6 +147,7 @@ for (@simple_input) {
   $ord++;
   ($op, undef, $comment) = /^([^\#]+)(\#\s+(.*))?/;
   $comment = $op unless defined $comment;
+  chomp;
   ($operator, $variable) = /^\s*(\w+)\s*\$(\w+)/ or warn "misprocessed '$_'\n";
   eval <<EOE;
   local \$SIG{__WARN__} = \\&wrn;
@@ -164,14 +166,33 @@ EOE
       print "# skipping $comment: syntax not good for selfassign:\nok $ord\n";
     } else {
       warn $@;
-      print "not ok $ord\n";
+      print "# '$_'\nnot ok $ord\n";
     }
   }
 }
+
+$ord++;
+eval {
+    sub PVBM () { 'foo' }
+    index 'foo', PVBM;
+    my $x = PVBM;
+
+    my $str = 'foo';
+    my $pvlv = \substr $str, 0, 1;
+    $x = $pvlv;
+
+    1;
+};
+if ($@) {
+    warn "# $@";
+    print 'not ';
+}
+print "ok $ord\n";
+
 __END__
 ref $xref                      # ref
 ref $cstr                      # ref nonref
-`$runme -e "print qq[1\n]"`                            # backtick skip(MSWin32)
+`$runme -e "print qq[1\\n]"`                           # backtick skip(MSWin32)
 `$undefed`                     # backtick undef skip(MSWin32)
 <*>                            # glob
 <OP>                           # readline
@@ -242,7 +263,7 @@ lc $cstr                    # lc
 quotemeta $cstr                        # quotemeta
 @$aref                         # rv2av
 @$undefed                      # rv2av undef
-each %h==1                     # each
+(each %h) % 2 == 1             # each
 values %h                      # values
 keys %h                                # keys
 %$href                         # rv2hv
@@ -263,7 +284,7 @@ open BLAH, "<non-existent"  # open
 fileno STDERR                  # fileno
 umask 0                                # umask
 select STDOUT                  # sselect
-select "","","",0              # select
+select undef,undef,undef,0     # select
 getc OP                                # getc
 '???'                          # read
 '???'                          # sysread
@@ -307,7 +328,7 @@ getpriority $$, $$          # getpriority
 time                           # time
 localtime $^T                  # localtime
 gmtime $^T                     # gmtime
-sleep 1                                # sleep
+'???'                          # sleep: can randomly fail
 '???'                          # alarm
 '???'                          # shmget
 '???'                          # shmctl