1#!./perl 2 3BEGIN { 4 chdir 't' if -d 't'; 5 @INC = '../lib'; 6} 7 8print "1..28\n"; 9 10my $i = 1; 11eval "use 5.000"; # implicit semicolon 12if ($@) { 13 print STDERR $@,"\n"; 14 print "not "; 15} 16print "ok ",$i++,"\n"; 17 18eval "use 5.000;"; 19if ($@) { 20 print STDERR $@,"\n"; 21 print "not "; 22} 23print "ok ",$i++,"\n"; 24 25eval sprintf "use %.5f;", $]; 26if ($@) { 27 print STDERR $@,"\n"; 28 print "not "; 29} 30print "ok ",$i++,"\n"; 31 32 33eval sprintf "use %.5f;", $] - 0.000001; 34if ($@) { 35 print STDERR $@,"\n"; 36 print "not "; 37} 38print "ok ",$i++,"\n"; 39 40eval sprintf("use %.5f;", $] + 1); 41unless ($@) { 42 print "not "; 43} 44print "ok ",$i++,"\n"; 45 46eval sprintf "use %.5f;", $] + 0.00001; 47unless ($@) { 48 print "not "; 49} 50print "ok ",$i++,"\n"; 51 52 53{ use lib } # check that subparse saves pending tokens 54 55local $lib::VERSION = 1.0; 56 57eval "use lib 0.9"; 58if ($@) { 59 print STDERR $@,"\n"; 60 print "not "; 61} 62print "ok ",$i++,"\n"; 63 64eval "use lib 1.0"; 65if ($@) { 66 print STDERR $@,"\n"; 67 print "not "; 68} 69print "ok ",$i++,"\n"; 70 71eval "use lib 1.01"; 72unless ($@) { 73 print "not "; 74} 75print "ok ",$i++,"\n"; 76 77 78eval "use lib 0.9 qw(fred)"; 79if ($@) { 80 print STDERR $@,"\n"; 81 print "not "; 82} 83print "ok ",$i++,"\n"; 84 85print "not " unless ($INC[0] eq "fred" || ($^O eq 'MacOS' && $INC[0] eq ":fred:")); 86print "ok ",$i++,"\n"; 87 88eval "use lib 1.0 qw(joe)"; 89if ($@) { 90 print STDERR $@,"\n"; 91 print "not "; 92} 93print "ok ",$i++,"\n"; 94 95print "not " unless ($INC[0] eq "joe" || ($^O eq 'MacOS' && $INC[0] eq ":joe:")); 96print "ok ",$i++,"\n"; 97 98eval "use lib 1.01 qw(freda)"; 99unless ($@) { 100 print "not "; 101} 102print "ok ",$i++,"\n"; 103 104print "not " if ($INC[0] eq "freda" || ($^O eq 'MacOS' && $INC[0] eq ":freda:")); 105print "ok ",$i++,"\n"; 106 107{ 108 local $lib::VERSION = 35.36; 109 eval "use lib v33.55"; 110 print "not " if $@; 111 print "ok ",$i++,"\n"; 112 113 eval "use lib v100.105"; 114 unless ($@ =~ /lib version 100\.105 required--this is only version 35\.3/) { 115 print "not "; 116 } 117 print "ok ",$i++,"\n"; 118 119 eval "use lib 33.55"; 120 print "not " if $@; 121 print "ok ",$i++,"\n"; 122 123 eval "use lib 100.105"; 124 unless ($@ =~ /lib version 100\.105 required--this is only version 35\.3/) { 125 print "not "; 126 } 127 print "ok ",$i++,"\n"; 128 129 local $lib::VERSION = '35.36'; 130 eval "use lib v33.55"; 131 print "not " if $@; 132 print "ok ",$i++,"\n"; 133 134 eval "use lib v100.105"; 135 unless ($@ =~ /lib version 100\.105 required--this is only version 35\.36/) { 136 print "not "; 137 } 138 print "ok ",$i++,"\n"; 139 140 eval "use lib 33.55"; 141 print "not " if $@; 142 print "ok ",$i++,"\n"; 143 144 eval "use lib 100.105"; 145 unless ($@ =~ /lib version 100\.105 required--this is only version 35\.36/) { 146 print "not "; 147 } 148 print "ok ",$i++,"\n"; 149 150 local $lib::VERSION = v35.36; 151 eval "use lib v33.55"; 152 print "not " if $@; 153 print "ok ",$i++,"\n"; 154 155 eval "use lib v100.105"; 156 unless ($@ =~ /lib v100\.105 required--this is only v35\.36/) { 157 print "not "; 158 } 159 print "ok ",$i++,"\n"; 160 161 eval "use lib 33.55"; 162 print "not " if $@; 163 print "ok ",$i++,"\n"; 164 165 eval "use lib 100.105"; 166 unless ($@ =~ /lib version 100\.105 required--this is only version 35\.036/) { 167 print "not "; 168 } 169 print "ok ",$i++,"\n"; 170} 171 172 173{ 174 # Regression test for patch 14937: 175 # Check that a .pm file with no package or VERSION doesn't core. 176 open F, ">xxx.pm" or die "Cannot open xxx.pm: $!\n"; 177 print F "1;\n"; 178 close F; 179 eval "use lib '.'; use xxx 3;"; 180 unless ($@ =~ /^xxx defines neither package nor VERSION--version check failed at/) { 181 print "not "; 182 } 183 print "ok ",$i++,"\n"; 184 unlink 'xxx.pm'; 185} 186