mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 11:57:38 +02:00
Improved 'make test-unit' time slightly
storage/maria/unittest/ma_test_loghandler-t.c: Don't sync during test storage/maria/unittest/ma_test_loghandler_multigroup-t.c: Don't sync during test storage/maria/unittest/ma_test_loghandler_multithread-t.c: Don't sync during test unittest/mysys/bitmap-t.c: Don't test all bit combinations (not needed) unittest/mysys/thr_template.c: Remove sleep as old bug should be fixed nowadays unittest/mysys/waiting_threads-t.c: Only run test with --big unittest/mytap/tap.c: Print total time at end of test. unittest/unit.pl: Use TAP::Harness instead of Test::Harness (recommended according to manual) Add times to tests.
This commit is contained in:
parent
a67a5dd6f9
commit
d5caa00161
8 changed files with 115 additions and 9 deletions
|
|
@ -173,6 +173,8 @@ int main(int argc __attribute__((unused)), char *argv[])
|
|||
maria_data_root= (char *)".";
|
||||
if (maria_log_remove())
|
||||
exit(1);
|
||||
/* We don't need to do physical syncs in this test */
|
||||
my_disable_sync= 1;
|
||||
|
||||
for (i= 0; i < (LONG_BUFFER_SIZE + LSN_STORE_SIZE * 2 + 2); i+= 2)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -247,6 +247,8 @@ int main(int argc __attribute__((unused)), char *argv[])
|
|||
load_defaults("my", load_default_groups, &argc, &argv);
|
||||
default_argv= argv;
|
||||
get_options(&argc, &argv);
|
||||
/* We don't need to do physical syncs in this test */
|
||||
my_disable_sync= 1;
|
||||
|
||||
if (maria_log_remove())
|
||||
exit(1);
|
||||
|
|
|
|||
|
|
@ -271,6 +271,8 @@ int main(int argc __attribute__((unused)),
|
|||
|
||||
plan(WRITERS + FLUSHERS +
|
||||
ITERATIONS * WRITERS * 3 + FLUSH_ITERATIONS * FLUSHERS );
|
||||
/* We don't need to do physical syncs in this test */
|
||||
my_disable_sync= 1;
|
||||
|
||||
bzero(&pagecache, sizeof(pagecache));
|
||||
maria_data_root= (char *)".";
|
||||
|
|
|
|||
|
|
@ -526,8 +526,14 @@ int main()
|
|||
int const max_size = MAX_TESTED_BITMAP_SIZE;
|
||||
MY_INIT("bitmap-t");
|
||||
|
||||
plan(max_size - min_size);
|
||||
for (i= min_size; i < max_size; i++)
|
||||
plan((max_size - min_size)/7+1);
|
||||
|
||||
/*
|
||||
It's ok to do steps in 7, as i module 64 will go trough all values 1..63.
|
||||
Any errors in the code should manifest as we are working with integers
|
||||
of size 16, 32, or 64 bits...
|
||||
*/
|
||||
for (i= min_size; i < max_size; i+=7)
|
||||
ok(do_test(i) == 0, "bitmap size %d", i);
|
||||
return exit_status();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,9 @@ int main(int argc __attribute__((unused)), char **argv)
|
|||
workaround until we know why it crashes randomly on some machine
|
||||
(BUG#22320).
|
||||
*/
|
||||
sleep(2);
|
||||
#ifdef NOT_USED
|
||||
sleep(1);
|
||||
#endif
|
||||
pthread_mutex_destroy(&mutex);
|
||||
pthread_cond_destroy(&cond);
|
||||
pthread_attr_destroy(&thr_attr);
|
||||
|
|
|
|||
|
|
@ -181,6 +181,11 @@ void do_one_test()
|
|||
void do_tests()
|
||||
{
|
||||
DBUG_ENTER("do_tests");
|
||||
if (skip_big_tests)
|
||||
{
|
||||
skip(1, "Big test skipped");
|
||||
return;
|
||||
}
|
||||
plan(14);
|
||||
compile_time_assert(THREADS >= 4);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2006, 2010, Oracle and/or its affiliates.
|
||||
Copyright (c) 2011, Monty Program Ab
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -27,6 +28,10 @@
|
|||
#include <string.h>
|
||||
#include <signal.h>
|
||||
|
||||
static ulong start_timer(void);
|
||||
static void end_timer(ulong start_time,char *buff);
|
||||
static void nice_time(double sec,char *buff,my_bool part_second);
|
||||
|
||||
/*
|
||||
Visual Studio 2003 does not know vsnprintf but knows _vsnprintf.
|
||||
We don't put this #define in config-win.h because we prefer
|
||||
|
|
@ -185,6 +190,7 @@ static signal_entry install_signal[]= {
|
|||
};
|
||||
|
||||
int skip_big_tests= 1;
|
||||
ulong start_time;
|
||||
|
||||
void
|
||||
plan(int count)
|
||||
|
|
@ -192,6 +198,8 @@ plan(int count)
|
|||
char *config= getenv("MYTAP_CONFIG");
|
||||
size_t i;
|
||||
|
||||
start_time= start_timer();
|
||||
|
||||
if (config)
|
||||
skip_big_tests= strcmp(config, "big");
|
||||
|
||||
|
|
@ -289,6 +297,7 @@ skip(int how_many, char const *fmt, ...)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
todo_start(char const *message, ...)
|
||||
{
|
||||
|
|
@ -304,7 +313,10 @@ todo_end()
|
|||
*g_test.todo = '\0';
|
||||
}
|
||||
|
||||
int exit_status() {
|
||||
int exit_status()
|
||||
{
|
||||
char buff[60];
|
||||
|
||||
/*
|
||||
If there were no plan, we write one last instead.
|
||||
*/
|
||||
|
|
@ -323,10 +335,78 @@ int exit_status() {
|
|||
diag("Failed %d tests!", g_test.failed);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
end_timer(start_time, buff);
|
||||
printf("Test took %s\n", buff);
|
||||
fflush(stdout);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
#if defined(__WIN__) || defined(__NETWARE__)
|
||||
#include <time.h>
|
||||
#else
|
||||
#include <sys/times.h>
|
||||
#ifdef _SC_CLK_TCK // For mit-pthreads
|
||||
#undef CLOCKS_PER_SEC
|
||||
#define CLOCKS_PER_SEC (sysconf(_SC_CLK_TCK))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static ulong start_timer(void)
|
||||
{
|
||||
#if defined(__WIN__) || defined(__NETWARE__)
|
||||
return clock();
|
||||
#else
|
||||
struct tms tms_tmp;
|
||||
return times(&tms_tmp);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Write as many as 52+1 bytes to buff, in the form of a legible
|
||||
duration of time.
|
||||
|
||||
len("4294967296 days, 23 hours, 59 minutes, 60.00 seconds") -> 52
|
||||
*/
|
||||
|
||||
static void nice_time(double sec,char *buff, my_bool part_second)
|
||||
{
|
||||
ulong tmp;
|
||||
if (sec >= 3600.0*24)
|
||||
{
|
||||
tmp=(ulong) floor(sec/(3600.0*24));
|
||||
sec-=3600.0*24*tmp;
|
||||
buff+= my_sprintf(buff, (buff, "%ld %s", tmp,
|
||||
tmp > 1 ? " days " : " day "));
|
||||
}
|
||||
if (sec >= 3600.0)
|
||||
{
|
||||
tmp=(ulong) floor(sec/3600.0);
|
||||
sec-=3600.0*tmp;
|
||||
buff+= my_sprintf(buff, (buff, "%ld %s", tmp,
|
||||
tmp > 1 ? " hours " : " hour "));
|
||||
}
|
||||
if (sec >= 60.0)
|
||||
{
|
||||
tmp=(ulong) floor(sec/60.0);
|
||||
sec-=60.0*tmp;
|
||||
buff+= my_sprintf(buff, (buff, "%ld min ", tmp));
|
||||
}
|
||||
if (part_second)
|
||||
sprintf(buff,"%.2f sec",sec);
|
||||
else
|
||||
sprintf(buff,"%d sec",(int) sec);
|
||||
}
|
||||
|
||||
|
||||
static void end_timer(ulong start_time,char *buff)
|
||||
{
|
||||
nice_time((double) (start_timer() - start_time) /
|
||||
CLOCKS_PER_SEC,buff,1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@mainpage Testing C and C++ using MyTAP
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
use Test::Harness;
|
||||
use TAP::Harness;
|
||||
use File::Find;
|
||||
use Getopt::Long;
|
||||
|
||||
|
|
@ -37,10 +37,11 @@ unit - Run unit tests in directory
|
|||
=cut
|
||||
|
||||
my $big= $ENV{'MYTAP_CONFIG'} eq 'big';
|
||||
my $verbose= 0;
|
||||
|
||||
my $result = GetOptions (
|
||||
"big!" => \$big,
|
||||
"verbose!" => \$Test::Harness::verbose,
|
||||
"verbose!" => \$verbose,
|
||||
);
|
||||
|
||||
$ENV{'MYTAP_CONFIG'} = $big ? 'big' : '';
|
||||
|
|
@ -102,8 +103,14 @@ sub run_cmd (@) {
|
|||
if (@files > 0) {
|
||||
# Removing the first './' from the file names
|
||||
foreach (@files) { s!^\./!! }
|
||||
$ENV{'HARNESS_PERL_SWITCHES'} .= ' -e "exec @ARGV"';
|
||||
runtests @files;
|
||||
|
||||
my %args = (
|
||||
verbosity => $verbose,
|
||||
timer => 1,
|
||||
exec => [ "/bin/sh", "-c" ],
|
||||
);
|
||||
my $harness= TAP::Harness->new( \%args );
|
||||
$harness->runtests(@files);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue