Commit c0bdb209 authored by Bjorn Munch's avatar Bjorn Munch

Bug #12316050 MTR: --REPORT-TIMES GIVES TOO HIGH NUMBER FOR INITIALIZATION

Forgot that the main thread would be idle while waiting for tests
Added sub mark_time_idle() so ignore time spent waiting
Also added a new time category 'admin' to take some of 'init'
parent cda1dc52
# -*- cperl -*-
# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
......@@ -36,6 +36,7 @@ sub start_timer($);
sub has_expired($);
sub init_timers();
sub mark_time_used($);
sub mark_time_idle();
sub add_total_times($);
sub print_times_used($$);
sub print_total_times($);
......@@ -224,6 +225,7 @@ my %time_used= (
'ch-warn' => 0,
'test' => 0,
'init' => 0,
'admin' => 0,
);
my %time_text= (
......@@ -232,7 +234,8 @@ my %time_text= (
'check' => "Check-testcase",
'ch-warn' => "Check for warnings",
'test' => "Test execution",
'init' => "Initialization etc.",
'init' => "Initialization/cleanup",
'admin' => "Test administration",
);
# Counts number of reports from workers
......@@ -255,6 +258,10 @@ sub mark_time_used($) {
$last_timer_set= $curr_time;
}
sub mark_time_idle() {
$last_timer_set= gettimeofday() if $opt_report_times;
}
sub add_total_times($) {
my ($dummy, $num, @line)= split (" ", $_[0]);
......
......@@ -549,7 +549,9 @@ sub run_test_server ($$$) {
my $s= IO::Select->new();
$s->add($server);
while (1) {
mark_time_used('admin');
my @ready = $s->can_read(1); # Wake up once every second
mark_time_idle();
foreach my $sock (@ready) {
if ($sock == $server) {
# New client connected
......@@ -891,7 +893,7 @@ sub run_worker ($) {
if ( $opt_gprof ) {
gprof_collect (find_mysqld($basedir), keys %gprof_dirs);
}
mark_time_used('init');
mark_time_used('admin');
print_times_used($server, $thread_num);
exit($valgrind_reports);
}
......@@ -3775,7 +3777,7 @@ sub run_testcase ($) {
do_before_run_mysqltest($tinfo);
mark_time_used('init');
mark_time_used('admin');
if ( $opt_check_testcases and check_testcase($tinfo, "before") ){
# Failed to record state of server or server crashed
......@@ -5248,7 +5250,7 @@ sub start_mysqltest ($) {
my $exe= $exe_mysqltest;
my $args;
mark_time_used('init');
mark_time_used('admin');
mtr_init_args(\$args);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment