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