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 -*- # -*- 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 # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public # modify it under the terms of the GNU Library General Public
...@@ -36,6 +36,7 @@ sub start_timer($); ...@@ -36,6 +36,7 @@ sub start_timer($);
sub has_expired($); sub has_expired($);
sub init_timers(); sub init_timers();
sub mark_time_used($); sub mark_time_used($);
sub mark_time_idle();
sub add_total_times($); sub add_total_times($);
sub print_times_used($$); sub print_times_used($$);
sub print_total_times($); sub print_total_times($);
...@@ -224,6 +225,7 @@ my %time_used= ( ...@@ -224,6 +225,7 @@ my %time_used= (
'ch-warn' => 0, 'ch-warn' => 0,
'test' => 0, 'test' => 0,
'init' => 0, 'init' => 0,
'admin' => 0,
); );
my %time_text= ( my %time_text= (
...@@ -232,7 +234,8 @@ my %time_text= ( ...@@ -232,7 +234,8 @@ my %time_text= (
'check' => "Check-testcase", 'check' => "Check-testcase",
'ch-warn' => "Check for warnings", 'ch-warn' => "Check for warnings",
'test' => "Test execution", 'test' => "Test execution",
'init' => "Initialization etc.", 'init' => "Initialization/cleanup",
'admin' => "Test administration",
); );
# Counts number of reports from workers # Counts number of reports from workers
...@@ -255,6 +258,10 @@ sub mark_time_used($) { ...@@ -255,6 +258,10 @@ sub mark_time_used($) {
$last_timer_set= $curr_time; $last_timer_set= $curr_time;
} }
sub mark_time_idle() {
$last_timer_set= gettimeofday() if $opt_report_times;
}
sub add_total_times($) { sub add_total_times($) {
my ($dummy, $num, @line)= split (" ", $_[0]); my ($dummy, $num, @line)= split (" ", $_[0]);
......
...@@ -549,7 +549,9 @@ sub run_test_server ($$$) { ...@@ -549,7 +549,9 @@ sub run_test_server ($$$) {
my $s= IO::Select->new(); my $s= IO::Select->new();
$s->add($server); $s->add($server);
while (1) { while (1) {
mark_time_used('admin');
my @ready = $s->can_read(1); # Wake up once every second my @ready = $s->can_read(1); # Wake up once every second
mark_time_idle();
foreach my $sock (@ready) { foreach my $sock (@ready) {
if ($sock == $server) { if ($sock == $server) {
# New client connected # New client connected
...@@ -891,7 +893,7 @@ sub run_worker ($) { ...@@ -891,7 +893,7 @@ sub run_worker ($) {
if ( $opt_gprof ) { if ( $opt_gprof ) {
gprof_collect (find_mysqld($basedir), keys %gprof_dirs); gprof_collect (find_mysqld($basedir), keys %gprof_dirs);
} }
mark_time_used('init'); mark_time_used('admin');
print_times_used($server, $thread_num); print_times_used($server, $thread_num);
exit($valgrind_reports); exit($valgrind_reports);
} }
...@@ -3775,7 +3777,7 @@ sub run_testcase ($) { ...@@ -3775,7 +3777,7 @@ sub run_testcase ($) {
do_before_run_mysqltest($tinfo); do_before_run_mysqltest($tinfo);
mark_time_used('init'); mark_time_used('admin');
if ( $opt_check_testcases and check_testcase($tinfo, "before") ){ if ( $opt_check_testcases and check_testcase($tinfo, "before") ){
# Failed to record state of server or server crashed # Failed to record state of server or server crashed
...@@ -5248,7 +5250,7 @@ sub start_mysqltest ($) { ...@@ -5248,7 +5250,7 @@ sub start_mysqltest ($) {
my $exe= $exe_mysqltest; my $exe= $exe_mysqltest;
my $args; my $args;
mark_time_used('init'); mark_time_used('admin');
mtr_init_args(\$args); 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