mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
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'
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# -*- 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($);
|
|||||||
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= (
|
|||||||
'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= (
|
|||||||
'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($) {
|
|||||||
$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 ($$$) {
|
|||||||
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 ($) {
|
|||||||
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 ($) {
|
|||||||
|
|
||||||
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 ($) {
|
|||||||
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);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user