hello, I am trying to pass a duration time for running a series of tests to a cleanup subroutine. I am running a loop of different tests (sub run_test)and documenting the duration for each test ran within sub run_tests. I am getting the correct time for each. My problem is trying to pass the same duration time to a cleanup subroutine (sub cleanup_test), which happens after all the tests are completed. below are the 2 subroutines:
sub run_test{
my ($self, @tests) = @_;
# Setup test system.
$self->_setup_test_system();
# Run each test.
TEST:
for my $test_name (@tests) {
# Setup everything necessary for current test.
$self->setup_test_system($test_name);
# Run each testcase for current test.
TESTCASE:
while ($self->__fetch_next()){
my $start = gettimeofday();
my $is_pass = $self->_run_testcase();
my $end = gettimeofday();
my $duration = $end - $start;
if (!$is_pass && $self->{_abort_on_failure}) {
print "\nFailure occurred,for $test_name.\n";
last TESTCASE; # Exit loop
}
}
I would like to pass my $duration to this cleanup subroutine:
sub cleanup_test{
my ($self, $result) = @_;
# Update statistics
$self->{_test_statistics}{num_tests}++;
if ($result == 0) {
$self->{_test_statistics}{num_tests_failed}++;
}
# Log testcase result and return
log_testcase($self->{_test_name}, $self->{_testcase_name}, $self->{_
+test_statistics}{num_tests_failed}, $duration, $self->{_log_file});
I can't get the duration time from (sub run_test) to (sub cleanup_test). What am I missing? Thanks for reading