Fix Runtime.t and update it in all tools.

This commit is contained in:
Daniel Nichter
2013-02-27 19:23:08 -07:00
parent 2c4bd60fb7
commit 55049b8759
7 changed files with 55 additions and 40 deletions

View File

@@ -4059,7 +4059,7 @@ use constant PTDEBUG => $ENV{PTDEBUG} || 0;
sub new {
my ( $class, %args ) = @_;
my @required_args = qw(run_time now);
my @required_args = qw(now);
foreach my $arg ( @required_args ) {
die "I need a $arg argument" unless exists $args{$arg};
}

View File

@@ -3569,7 +3569,7 @@ use constant PTDEBUG => $ENV{PTDEBUG} || 0;
sub new {
my ( $class, %args ) = @_;
my @required_args = qw(run_time now);
my @required_args = qw(now);
foreach my $arg ( @required_args ) {
die "I need a $arg argument" unless exists $args{$arg};
}

View File

@@ -10803,15 +10803,20 @@ sub new {
my ( $class, %args ) = @_;
my @required_args = qw(now);
foreach my $arg ( @required_args ) {
die "I need a $arg argument" unless $args{$arg};
die "I need a $arg argument" unless exists $args{$arg};
}
if ( ($args{runtime} || 0) < 0 ) {
die "runtime argument must be greater than zero"
my $run_time = $args{run_time};
if ( defined $run_time ) {
die "run_time must be > 0" if $run_time <= 0;
}
my $now = $args{now};
die "now must be a callback" unless ref $now eq 'CODE';
my $self = {
%args,
run_time => $run_time,
now => $now,
start_time => undef,
end_time => undef,
time_left => undef,
@@ -10838,11 +10843,11 @@ sub time_left {
return unless defined $now;
my $runtime = $self->{runtime};
return unless defined $runtime;
my $run_time = $self->{run_time};
return unless defined $run_time;
if ( !$self->{end_time} ) {
$self->{end_time} = $now + $runtime;
$self->{end_time} = $now + $run_time;
PTDEBUG && _d("End time:", $self->{end_time});
}
@@ -12893,7 +12898,7 @@ sub main {
}
$pipeline_data->{Runtime} = new Runtime(
now => $now_callback,
runtime => $o->get('run-time'),
run_time => $o->get('run-time'),
);
$pipeline->add(

View File

@@ -8430,15 +8430,20 @@ sub new {
my ( $class, %args ) = @_;
my @required_args = qw(now);
foreach my $arg ( @required_args ) {
die "I need a $arg argument" unless $args{$arg};
die "I need a $arg argument" unless exists $args{$arg};
}
if ( ($args{runtime} || 0) < 0 ) {
die "runtime argument must be greater than zero"
my $run_time = $args{run_time};
if ( defined $run_time ) {
die "run_time must be > 0" if $run_time <= 0;
}
my $now = $args{now};
die "now must be a callback" unless ref $now eq 'CODE';
my $self = {
%args,
run_time => $run_time,
now => $now,
start_time => undef,
end_time => undef,
time_left => undef,
@@ -8465,11 +8470,11 @@ sub time_left {
return unless defined $now;
my $runtime = $self->{runtime};
return unless defined $runtime;
my $run_time = $self->{run_time};
return unless defined $run_time;
if ( !$self->{end_time} ) {
$self->{end_time} = $now + $runtime;
$self->{end_time} = $now + $run_time;
PTDEBUG && _d("End time:", $self->{end_time});
}
@@ -8822,7 +8827,7 @@ sub main {
if ( my $run_time = $o->get('run-time') ) {
my $rt = Runtime->new(
now => sub { return time; },
runtime => $run_time,
run_time => $run_time,
);
$have_time = sub { return $rt->have_time(); };
}

View File

@@ -5059,15 +5059,20 @@ sub new {
my ( $class, %args ) = @_;
my @required_args = qw(now);
foreach my $arg ( @required_args ) {
die "I need a $arg argument" unless $args{$arg};
die "I need a $arg argument" unless exists $args{$arg};
}
if ( ($args{runtime} || 0) < 0 ) {
die "runtime argument must be greater than zero"
my $run_time = $args{run_time};
if ( defined $run_time ) {
die "run_time must be > 0" if $run_time <= 0;
}
my $now = $args{now};
die "now must be a callback" unless ref $now eq 'CODE';
my $self = {
%args,
run_time => $run_time,
now => $now,
start_time => undef,
end_time => undef,
time_left => undef,
@@ -5094,11 +5099,11 @@ sub time_left {
return unless defined $now;
my $runtime = $self->{runtime};
return unless defined $runtime;
my $run_time = $self->{run_time};
return unless defined $run_time;
if ( !$self->{end_time} ) {
$self->{end_time} = $now + $runtime;
$self->{end_time} = $now + $run_time;
PTDEBUG && _d("End time:", $self->{end_time});
}
@@ -6614,7 +6619,7 @@ sub main {
{ # terminator
my $runtime = new Runtime(
now => sub { return time },
runtime => $o->get('run-time'),
run_time => $o->get('run-time'),
);
$pipeline->add(

View File

@@ -27,7 +27,7 @@ use constant PTDEBUG => $ENV{PTDEBUG} || 0;
sub new {
my ( $class, %args ) = @_;
my @required_args = qw(run_time now);
my @required_args = qw(now);
foreach my $arg ( @required_args ) {
die "I need a $arg argument" unless exists $args{$arg};
}

View File

@@ -20,7 +20,7 @@ use Runtime;
my $runtime = new Runtime(
now => sub { return time; },
runtime => 3,
run_time => 3,
);
is(
@@ -91,7 +91,7 @@ is(
$runtime = new Runtime(
now => sub { return time; },
# runtime => undef, # forever
# run_time => undef, # forever
);
is(
@@ -125,7 +125,7 @@ is(
$runtime = new Runtime(
now => sub { return time; },
runtime => 3,
run_time => 3,
);
is(
@@ -149,7 +149,7 @@ is(
my @time = qw(0 3 7 9);
$runtime = new Runtime(
now => sub { return shift @time; },
runtime => 8,
run_time => 8,
);
is(