Commit 28f708e1 authored by Michael Widenius's avatar Michael Widenius

Automatic merge with 5.1

parents 4249382a 6b8788e4
...@@ -362,6 +362,7 @@ name char(1) not null, ...@@ -362,6 +362,7 @@ name char(1) not null,
uid int not null, uid int not null,
primary key (id), primary key (id),
index uid_index (uid)); index uid_index (uid));
begin;
insert into t1(id, uid, name) values(1, 0, ' '); insert into t1(id, uid, name) values(1, 0, ' ');
insert into t1(uid, name) values(0, ' '); insert into t1(uid, name) values(0, ' ');
insert into t2(uid, name) select uid, name from t1; insert into t2(uid, name) select uid, name from t1;
...@@ -410,6 +411,7 @@ insert into t2(uid, name) values ...@@ -410,6 +411,7 @@ insert into t2(uid, name) values
insert into t1(uid, name) select uid, name from t2 order by uid; insert into t1(uid, name) select uid, name from t2 order by uid;
delete from t2; delete from t2;
insert into t2(id, uid, name) select id, uid, name from t1; insert into t2(id, uid, name) select id, uid, name from t1;
commit;
select count(*) from t1; select count(*) from t1;
count(*) count(*)
1026 1026
......
...@@ -322,6 +322,7 @@ create table t2 ( ...@@ -322,6 +322,7 @@ create table t2 (
primary key (id), primary key (id),
index uid_index (uid)); index uid_index (uid));
begin;
insert into t1(id, uid, name) values(1, 0, ' '); insert into t1(id, uid, name) values(1, 0, ' ');
insert into t1(uid, name) values(0, ' '); insert into t1(uid, name) values(0, ' ');
...@@ -375,6 +376,8 @@ insert into t1(uid, name) select uid, name from t2 order by uid; ...@@ -375,6 +376,8 @@ insert into t1(uid, name) select uid, name from t2 order by uid;
delete from t2; delete from t2;
insert into t2(id, uid, name) select id, uid, name from t1; insert into t2(id, uid, name) select id, uid, name from t1;
commit;
select count(*) from t1; select count(*) from t1;
select count(*) from t2; select count(*) from t2;
......
...@@ -173,6 +173,8 @@ int main(int argc __attribute__((unused)), char *argv[]) ...@@ -173,6 +173,8 @@ int main(int argc __attribute__((unused)), char *argv[])
maria_data_root= (char *)"."; maria_data_root= (char *)".";
if (maria_log_remove()) if (maria_log_remove())
exit(1); 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) 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[]) ...@@ -247,6 +247,8 @@ int main(int argc __attribute__((unused)), char *argv[])
load_defaults("my", load_default_groups, &argc, &argv); load_defaults("my", load_default_groups, &argc, &argv);
default_argv= argv; default_argv= argv;
get_options(&argc, &argv); get_options(&argc, &argv);
/* We don't need to do physical syncs in this test */
my_disable_sync= 1;
if (maria_log_remove()) if (maria_log_remove())
exit(1); exit(1);
......
...@@ -271,6 +271,8 @@ int main(int argc __attribute__((unused)), ...@@ -271,6 +271,8 @@ int main(int argc __attribute__((unused)),
plan(WRITERS + FLUSHERS + plan(WRITERS + FLUSHERS +
ITERATIONS * WRITERS * 3 + FLUSH_ITERATIONS * 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)); bzero(&pagecache, sizeof(pagecache));
maria_data_root= (char *)"."; maria_data_root= (char *)".";
......
...@@ -526,8 +526,14 @@ int main() ...@@ -526,8 +526,14 @@ int main()
int const max_size = MAX_TESTED_BITMAP_SIZE; int const max_size = MAX_TESTED_BITMAP_SIZE;
MY_INIT("bitmap-t"); MY_INIT("bitmap-t");
plan(max_size - min_size); plan((max_size - min_size)/7+1);
for (i= min_size; i < max_size; i++)
/*
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); ok(do_test(i) == 0, "bitmap size %d", i);
return exit_status(); return exit_status();
} }
...@@ -82,7 +82,9 @@ int main(int argc __attribute__((unused)), char **argv) ...@@ -82,7 +82,9 @@ int main(int argc __attribute__((unused)), char **argv)
workaround until we know why it crashes randomly on some machine workaround until we know why it crashes randomly on some machine
(BUG#22320). (BUG#22320).
*/ */
sleep(2); #ifdef NOT_USED
sleep(1);
#endif
pthread_mutex_destroy(&mutex); pthread_mutex_destroy(&mutex);
pthread_cond_destroy(&cond); pthread_cond_destroy(&cond);
pthread_attr_destroy(&thr_attr); pthread_attr_destroy(&thr_attr);
......
...@@ -181,6 +181,11 @@ void do_one_test() ...@@ -181,6 +181,11 @@ void do_one_test()
void do_tests() void do_tests()
{ {
DBUG_ENTER("do_tests"); DBUG_ENTER("do_tests");
if (skip_big_tests)
{
skip(1, "Big test skipped");
return;
}
plan(14); plan(14);
compile_time_assert(THREADS >= 4); compile_time_assert(THREADS >= 4);
......
/* 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 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 it under the terms of the GNU General Public License as published by
...@@ -27,6 +28,10 @@ ...@@ -27,6 +28,10 @@
#include <string.h> #include <string.h>
#include <signal.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. Visual Studio 2003 does not know vsnprintf but knows _vsnprintf.
We don't put this #define in config-win.h because we prefer We don't put this #define in config-win.h because we prefer
...@@ -185,6 +190,7 @@ static signal_entry install_signal[]= { ...@@ -185,6 +190,7 @@ static signal_entry install_signal[]= {
}; };
int skip_big_tests= 1; int skip_big_tests= 1;
ulong start_time= 0;
void void
plan(int count) plan(int count)
...@@ -192,6 +198,8 @@ plan(int count) ...@@ -192,6 +198,8 @@ plan(int count)
char *config= getenv("MYTAP_CONFIG"); char *config= getenv("MYTAP_CONFIG");
size_t i; size_t i;
start_time= start_timer();
if (config) if (config)
skip_big_tests= strcmp(config, "big"); skip_big_tests= strcmp(config, "big");
...@@ -289,6 +297,7 @@ skip(int how_many, char const *fmt, ...) ...@@ -289,6 +297,7 @@ skip(int how_many, char const *fmt, ...)
} }
} }
void void
todo_start(char const *message, ...) todo_start(char const *message, ...)
{ {
...@@ -304,7 +313,10 @@ todo_end() ...@@ -304,7 +313,10 @@ todo_end()
*g_test.todo = '\0'; *g_test.todo = '\0';
} }
int exit_status() { int exit_status()
{
char buff[60];
/* /*
If there were no plan, we write one last instead. If there were no plan, we write one last instead.
*/ */
...@@ -323,10 +335,81 @@ int exit_status() { ...@@ -323,10 +335,81 @@ int exit_status() {
diag("Failed %d tests!", g_test.failed); diag("Failed %d tests!", g_test.failed);
return EXIT_FAILURE; return EXIT_FAILURE;
} }
if (start_time)
{
end_timer(start_time, buff);
printf("Test took %s\n", buff);
fflush(stdout);
}
return EXIT_SUCCESS; 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 @mainpage Testing C and C++ using MyTAP
......
...@@ -103,7 +103,7 @@ sub run_cmd (@) { ...@@ -103,7 +103,7 @@ sub run_cmd (@) {
# Removing the first './' from the file names # Removing the first './' from the file names
foreach (@files) { s!^\./!! } foreach (@files) { s!^\./!! }
$ENV{'HARNESS_PERL_SWITCHES'} .= ' -e "exec @ARGV"'; $ENV{'HARNESS_PERL_SWITCHES'} .= ' -e "exec @ARGV"';
$Test::Harness::Timer = 1;
runtests @files; runtests @files;
} }
} }
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