ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/t/01_timer.t
(Generate patch)

Comparing EV/t/01_timer.t (file contents):
Revision 1.5 by root, Sat Nov 17 01:52:50 2007 UTC vs.
Revision 1.7 by root, Thu May 22 02:44:57 2008 UTC

2 2
3no warnings; 3no warnings;
4use strict; 4use strict;
5 5
6use EV; 6use EV;
7
8my $fudge = 0.02; # allow rt and monotonic clock to disagree by this much
7 9
8my $id = 1; 10my $id = 1;
9my @timer; 11my @timer;
10my @periodic; 12my @periodic;
11 13
15for my $i (1..1000) { 17for my $i (1..1000) {
16 my $t = $i * $i * 1.735435336; $t -= int $t; 18 my $t = $i * $i * 1.735435336; $t -= int $t;
17 push @timer, EV::timer $t, 0, sub { 19 push @timer, EV::timer $t, 0, sub {
18 my $now = EV::now; 20 my $now = EV::now;
19 21
22 EV::default_loop->loop_verify;
23
20 print $now >= $prev ? "" : "not ", "ok ", ++$id, " # t0 $i $now >= $prev\n"; 24 print $now + $fudge >= $prev ? "" : "not ", "ok ", ++$id, " # t0 $i $now + $fudge >= $prev\n";
21 print $now >= $base + $t ? "" : "not ", "ok ", ++$id, " # t1 $i $now >= $base + $t\n"; 25 print $now + $fudge >= $base + $t ? "" : "not ", "ok ", ++$id, " # t1 $i $now + $fudge >= $base + $t\n";
22 26
23 unless ($id % 3) { 27 unless ($id % 3) {
24 $t *= 0.0625; 28 $t *= 0.0625;
25 $_[0]->set ($t); 29 $_[0]->set ($t);
26 $_[0]->start; 30 $_[0]->start;
31 }; 35 };
32 36
33 my $t = $i * $i * 1.375475771; $t -= int $t; 37 my $t = $i * $i * 1.375475771; $t -= int $t;
34 push @periodic, EV::periodic $base + $t, 0, 0, sub { 38 push @periodic, EV::periodic $base + $t, 0, 0, sub {
35 my $now = EV::now; 39 my $now = EV::now;
40
41 EV::default_loop->loop_verify;
36 42
37 print $now >= $prev ? "" : "not ", "ok ", ++$id, " # p0 $i $now >= $prev\n"; 43 print $now >= $prev ? "" : "not ", "ok ", ++$id, " # p0 $i $now >= $prev\n";
38 print $now >= $base + $t ? "" : "not ", "ok ", ++$id, " # p1 $i $now >= $base + $t\n"; 44 print $now >= $base + $t ? "" : "not ", "ok ", ++$id, " # p1 $i $now >= $base + $t\n";
39 45
40 unless ($id % 3) { 46 unless ($id % 3) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines