mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-11 13:40:07 +00:00
Explicit setters for (curr|prev|first)_ts.
This commit is contained in:
@@ -93,29 +93,35 @@ sub new {
|
||||
# The next lot are accessors, plus some convenience functions.
|
||||
|
||||
sub curr_ts {
|
||||
my ($self, $val) = @_;
|
||||
if ($val) {
|
||||
$self->{_ts}->{curr} = $val;
|
||||
}
|
||||
my ($self) = @_;
|
||||
return $self->{_ts}->{curr} || 0;
|
||||
}
|
||||
|
||||
sub prev_ts {
|
||||
sub set_curr_ts {
|
||||
my ($self, $val) = @_;
|
||||
if ($val) {
|
||||
$self->{_ts}->{prev} = $val;
|
||||
}
|
||||
$self->{_ts}->{curr} = $val || 0;
|
||||
}
|
||||
|
||||
sub prev_ts {
|
||||
my ($self) = @_;
|
||||
return $self->{_ts}->{prev} || 0;
|
||||
}
|
||||
|
||||
sub first_ts {
|
||||
sub set_prev_ts {
|
||||
my ($self, $val) = @_;
|
||||
if ($val) {
|
||||
$self->{_ts}->{first} = $val;
|
||||
}
|
||||
$self->{_ts}->{prev} = $val || 0;
|
||||
}
|
||||
|
||||
sub first_ts {
|
||||
my ($self) = @_;
|
||||
return $self->{_ts}->{first} || 0;
|
||||
}
|
||||
|
||||
sub set_first_ts {
|
||||
my ($self, $val) = @_;
|
||||
$self->{_ts}->{first} = $val || 0;
|
||||
}
|
||||
|
||||
sub filter_zeroed_rows {
|
||||
my ($self, $new_val) = @_;
|
||||
if ( defined($new_val) ) {
|
||||
@@ -306,7 +312,7 @@ sub _save_curr_as_prev {
|
||||
$self->{_prev_stats_for}->{$dev}->{sum_ios_in_progress} +=
|
||||
$curr->{$dev}->{ios_in_progress};
|
||||
}
|
||||
$self->prev_ts($self->curr_ts());
|
||||
$self->set_prev_ts($self->curr_ts());
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -321,7 +327,7 @@ sub _save_curr_as_first {
|
||||
# be enough.
|
||||
map { $_ => {%{$curr->{$_}}} } keys %$curr
|
||||
};
|
||||
$self->first_ts($self->curr_ts());
|
||||
$self->set_first_ts($self->curr_ts());
|
||||
$self->{_first} = undef;
|
||||
}
|
||||
}
|
||||
@@ -627,7 +633,7 @@ sub _load {
|
||||
if ( $current_ts && %$new_cur ) {
|
||||
$self->_save_curr_as_prev( $self->stats_for() );
|
||||
$self->_save_stats($new_cur);
|
||||
$self->curr_ts($current_ts);
|
||||
$self->set_curr_ts($current_ts);
|
||||
$self->_save_curr_as_first( $new_cur );
|
||||
$new_cur = {};
|
||||
}
|
||||
@@ -646,7 +652,7 @@ sub _load {
|
||||
if ( %{$new_cur} ) {
|
||||
$self->_save_curr_as_prev( $self->stats_for() );
|
||||
$self->_save_stats($new_cur);
|
||||
$self->curr_ts($current_ts);
|
||||
$self->set_curr_ts($current_ts);
|
||||
$self->_save_curr_as_first( $new_cur );
|
||||
$new_cur = {};
|
||||
}
|
||||
|
@@ -64,7 +64,7 @@ sub group_by_all {
|
||||
},
|
||||
map( { ($_ => $args{$_}) } qw(filehandle filename data) ),
|
||||
);
|
||||
if (!$self->prev_ts) {
|
||||
if (!$self->prev_ts()) {
|
||||
seek $args{filehandle}, $orig, 0;
|
||||
}
|
||||
return;
|
||||
|
@@ -168,15 +168,16 @@ throws_ok( sub { $obj->design_print_formats( columns => {} ) },
|
||||
qr/The columns argument to design_print_formats should be an arrayref/,
|
||||
"design_print_formats dies when passed an invalid columns argument");
|
||||
|
||||
for my $meth ( qw( curr_ts prev_ts first_ts ) ) {
|
||||
ok(!$obj->$meth(), "Diskstats->$meth is initially false");
|
||||
for my $method ( qw( curr_ts prev_ts first_ts ) ) {
|
||||
my $setter = "set_$method";
|
||||
ok(!$obj->$method(), "Diskstats->$method is initially false");
|
||||
|
||||
$obj->$meth(10);
|
||||
is($obj->$meth(), 10, "Diskstats->$meth(10) sets it to 10");
|
||||
$obj->$setter(10);
|
||||
is($obj->$method(), 10, "Diskstats->$setter(10) sets it to 10");
|
||||
|
||||
$obj->$meth(20);
|
||||
$obj->$setter(20);
|
||||
$obj->clear_ts();
|
||||
ok(!$obj->$meth(), "Diskstats->clear_ts does as advertized");
|
||||
ok(!$obj->$method(), "Diskstats->clear_ts does as advertized");
|
||||
}
|
||||
|
||||
is($obj->out_fh(), \*STDOUT, "by default, outputs to STDOUT");
|
||||
@@ -371,9 +372,9 @@ EOF
|
||||
);
|
||||
}
|
||||
|
||||
$obj->curr_ts(0);
|
||||
$obj->prev_ts(0);
|
||||
$obj->first_ts(0);
|
||||
$obj->set_curr_ts(0);
|
||||
$obj->set_prev_ts(0);
|
||||
$obj->set_first_ts(0);
|
||||
|
||||
throws_ok(
|
||||
sub { $obj->_calc_deltas() },
|
||||
|
Reference in New Issue
Block a user