From 55049b87599a47fa1a4dc05056c0182812dfb8d6 Mon Sep 17 00:00:00 2001 From: Daniel Nichter Date: Wed, 27 Feb 2013 19:23:08 -0700 Subject: [PATCH] Fix Runtime.t and update it in all tools. --- bin/pt-deadlock-logger | 2 +- bin/pt-fk-error-logger | 2 +- bin/pt-query-digest | 27 ++++++++++++++++----------- bin/pt-table-checksum | 27 ++++++++++++++++----------- bin/pt-table-usage | 27 ++++++++++++++++----------- lib/Runtime.pm | 2 +- t/lib/Runtime.t | 8 ++++---- 7 files changed, 55 insertions(+), 40 deletions(-) diff --git a/bin/pt-deadlock-logger b/bin/pt-deadlock-logger index ebc8ab1a..737bd23e 100755 --- a/bin/pt-deadlock-logger +++ b/bin/pt-deadlock-logger @@ -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}; } diff --git a/bin/pt-fk-error-logger b/bin/pt-fk-error-logger index 4de8b6c2..a09482a5 100755 --- a/bin/pt-fk-error-logger +++ b/bin/pt-fk-error-logger @@ -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}; } diff --git a/bin/pt-query-digest b/bin/pt-query-digest index 6b671d26..5b296067 100755 --- a/bin/pt-query-digest +++ b/bin/pt-query-digest @@ -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}); } @@ -10855,7 +10860,7 @@ sub have_time { my ( $self, %args ) = @_; my $time_left = $self->time_left(%args); return 1 if !defined $time_left; # run forever - return $time_left <= 0 ? 0 : 1; # <=0s means runtime has elapsed + return $time_left <= 0 ? 0 : 1; # <=0s means run time has elapsed } sub time_elapsed { @@ -10881,7 +10886,7 @@ sub reset { $self->{end_time} = undef; $self->{time_left} = undef; $self->{stop} = 0; - PTDEBUG && _d("Reset runtime"); + PTDEBUG && _d("Reset run time"); return; } @@ -12892,8 +12897,8 @@ sub main { $now_callback = sub { return; }; } $pipeline_data->{Runtime} = new Runtime( - now => $now_callback, - runtime => $o->get('run-time'), + now => $now_callback, + run_time => $o->get('run-time'), ); $pipeline->add( diff --git a/bin/pt-table-checksum b/bin/pt-table-checksum index 558b62c2..f6741552 100755 --- a/bin/pt-table-checksum +++ b/bin/pt-table-checksum @@ -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}); } @@ -8482,7 +8487,7 @@ sub have_time { my ( $self, %args ) = @_; my $time_left = $self->time_left(%args); return 1 if !defined $time_left; # run forever - return $time_left <= 0 ? 0 : 1; # <=0s means runtime has elapsed + return $time_left <= 0 ? 0 : 1; # <=0s means run time has elapsed } sub time_elapsed { @@ -8508,7 +8513,7 @@ sub reset { $self->{end_time} = undef; $self->{time_left} = undef; $self->{stop} = 0; - PTDEBUG && _d("Reset runtime"); + PTDEBUG && _d("Reset run time"); return; } @@ -8821,8 +8826,8 @@ sub main { my $have_time; if ( my $run_time = $o->get('run-time') ) { my $rt = Runtime->new( - now => sub { return time; }, - runtime => $run_time, + now => sub { return time; }, + run_time => $run_time, ); $have_time = sub { return $rt->have_time(); }; } diff --git a/bin/pt-table-usage b/bin/pt-table-usage index a32eebcc..2e756556 100755 --- a/bin/pt-table-usage +++ b/bin/pt-table-usage @@ -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}); } @@ -5111,7 +5116,7 @@ sub have_time { my ( $self, %args ) = @_; my $time_left = $self->time_left(%args); return 1 if !defined $time_left; # run forever - return $time_left <= 0 ? 0 : 1; # <=0s means runtime has elapsed + return $time_left <= 0 ? 0 : 1; # <=0s means run time has elapsed } sub time_elapsed { @@ -5137,7 +5142,7 @@ sub reset { $self->{end_time} = undef; $self->{time_left} = undef; $self->{stop} = 0; - PTDEBUG && _d("Reset runtime"); + PTDEBUG && _d("Reset run time"); return; } @@ -6613,8 +6618,8 @@ sub main { { # terminator my $runtime = new Runtime( - now => sub { return time }, - runtime => $o->get('run-time'), + now => sub { return time }, + run_time => $o->get('run-time'), ); $pipeline->add( diff --git a/lib/Runtime.pm b/lib/Runtime.pm index 64019682..58ce1e15 100644 --- a/lib/Runtime.pm +++ b/lib/Runtime.pm @@ -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}; } diff --git a/t/lib/Runtime.t b/t/lib/Runtime.t index 5767803c..b800ed15 100644 --- a/t/lib/Runtime.t +++ b/t/lib/Runtime.t @@ -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(