Commit | Line | Data |
729c079f |
1 | #!./perl |
2 | |
3 | BEGIN { |
4 | chdir 't' if -d 't'; |
5 | @INC = ('.', '../lib'); |
6 | } |
7 | |
8 | require 'test.pl'; |
9 | |
e4d771f5 |
10 | plan (11); |
729c079f |
11 | |
12 | my $blank = ""; |
13 | eval {select undef, $blank, $blank, 0}; |
14 | is ($@, ""); |
15 | eval {select $blank, undef, $blank, 0}; |
16 | is ($@, ""); |
17 | eval {select $blank, $blank, undef, 0}; |
18 | is ($@, ""); |
19 | |
20 | eval {select "", $blank, $blank, 0}; |
15547071 |
21 | is ($@, ""); |
729c079f |
22 | eval {select $blank, "", $blank, 0}; |
15547071 |
23 | is ($@, ""); |
729c079f |
24 | eval {select $blank, $blank, "", 0}; |
15547071 |
25 | is ($@, ""); |
26 | |
27 | eval {select "a", $blank, $blank, 0}; |
28 | like ($@, qr/^Modification of a read-only value attempted/); |
29 | eval {select $blank, "a", $blank, 0}; |
30 | like ($@, qr/^Modification of a read-only value attempted/); |
31 | eval {select $blank, $blank, "a", 0}; |
729c079f |
32 | like ($@, qr/^Modification of a read-only value attempted/); |
e4d771f5 |
33 | |
2b983d1f |
34 | my($sleep,$fudge) = (3,0); |
0ebb4f02 |
35 | # Actual sleep time on Windows may be rounded down to an integral |
36 | # multiple of the system clock tick interval. Clock tick interval |
37 | # is configurable, but usually about 15.625 milliseconds. |
2b983d1f |
38 | # time() however doesn't return fractional values, so the observed |
39 | # delay may be 1 second short. |
40 | ($sleep,$fudge) = (4,1) if $^O eq "MSWin32"; |
0ebb4f02 |
41 | |
e4d771f5 |
42 | my $t = time; |
43 | select(undef, undef, undef, $sleep); |
0ebb4f02 |
44 | ok(time-$t >= $sleep-$fudge, "$sleep seconds have passed"); |
e4d771f5 |
45 | |
46 | my $empty = ""; |
47 | vec($empty,0,1) = 0; |
48 | $t = time; |
49 | select($empty, undef, undef, $sleep); |
0ebb4f02 |
50 | ok(time-$t >= $sleep-$fudge, "$sleep seconds have passed"); |