diff --git a/client/mysqltest.c b/client/mysqltest.c index 2b7000f0d88..4991e565594 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -4196,8 +4196,8 @@ static REP_SET *make_new_set(REP_SETS *sets); static void make_sets_invisible(REP_SETS *sets); static void free_last_set(REP_SETS *sets); static void free_sets(REP_SETS *sets); -static void set_bit(REP_SET *set, uint bit); -static void clear_bit(REP_SET *set, uint bit); +static void internal_set_bit(REP_SET *set, uint bit); +static void internal_clear_bit(REP_SET *set, uint bit); static void or_bits(REP_SET *to,REP_SET *from); static void copy_bits(REP_SET *to,REP_SET *from); static int cmp_bits(REP_SET *set1,REP_SET *set2); @@ -4274,7 +4274,7 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count, { if (from[i][0] == '\\' && from[i][1] == '^') { - set_bit(start_states,states+1); + internal_set_bit(start_states,states+1); if (!from[i][2]) { start_states->table_offset=i; @@ -4283,8 +4283,8 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count, } else if (from[i][0] == '\\' && from[i][1] == '$') { - set_bit(start_states,states); - set_bit(word_states,states); + internal_set_bit(start_states,states); + internal_set_bit(word_states,states); if (!from[i][2] && start_states->table_offset == (uint) ~0) { start_states->table_offset=i; @@ -4293,11 +4293,11 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count, } else { - set_bit(word_states,states); + internal_set_bit(word_states,states); if (from[i][0] == '\\' && (from[i][1] == 'b' && from[i][2])) - set_bit(start_states,states+1); + internal_set_bit(start_states,states+1); else - set_bit(start_states,states); + internal_set_bit(start_states,states); } for (pos=from[i], len=0; *pos ; pos++) { @@ -4403,9 +4403,9 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count, follow[i].len > found_end) found_end=follow[i].len; if (chr && follow[i].chr) - set_bit(new_set,i+1); /* To next set */ + internal_set_bit(new_set,i+1); /* To next set */ else - set_bit(new_set,i); + internal_set_bit(new_set,i); } } if (found_end) @@ -4422,7 +4422,7 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count, if (follow[bit_nr-1].len < found_end || (new_set->found_len && (chr == 0 || !follow[bit_nr].chr))) - clear_bit(new_set,i); + internal_clear_bit(new_set,i); else { if (chr == 0 || !follow[bit_nr].chr) @@ -4571,13 +4571,13 @@ static void free_sets(REP_SETS *sets) return; } -static void set_bit(REP_SET *set, uint bit) +static void internal_set_bit(REP_SET *set, uint bit) { set->bits[bit / WORD_BIT] |= 1 << (bit % WORD_BIT); return; } -static void clear_bit(REP_SET *set, uint bit) +static void internal_clear_bit(REP_SET *set, uint bit) { set->bits[bit / WORD_BIT] &= ~ (1 << (bit % WORD_BIT)); return; diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 117095f8add..ae4136b5494 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -262,6 +262,7 @@ our $opt_socket; our $opt_source_dist; our $opt_start_and_exit; +our $opt_start_dirty; our $opt_start_from; our $opt_strace_client; @@ -305,6 +306,7 @@ sub initial_setup (); sub command_line_setup (); sub executable_setup (); sub environment_setup (); +sub kill_running_server (); sub kill_and_cleanup (); sub ndbcluster_install (); sub ndbcluster_start (); @@ -353,14 +355,22 @@ sub main () { if ( ! $glob_use_running_server ) { - kill_and_cleanup(); - mysql_install_db(); + + if ( $opt_start_dirty ) + { + kill_running_server(); + } + else + { + kill_and_cleanup(); + mysql_install_db(); # mysql_loadstd(); FIXME copying from "std_data" .frm and # .MGR but there are none?! + } } - if ( $opt_start_and_exit ) + if ( $opt_start_and_exit or $opt_start_dirty ) { if ( ndbcluster_start() ) { @@ -531,6 +541,7 @@ sub command_line_setup () { 'script-debug' => \$opt_script_debug, 'sleep=i' => \$opt_sleep, 'socket=s' => \$opt_socket, + 'start-dirty' => \$opt_start_dirty, 'start-and-exit' => \$opt_start_and_exit, 'start-from=s' => \$opt_start_from, 'timer' => \$opt_timer, @@ -951,7 +962,7 @@ sub handle_int_signal () { # ############################################################################## -sub kill_and_cleanup () { +sub kill_running_server () { if ( $opt_fast or $glob_use_embedded_server ) { @@ -976,6 +987,11 @@ sub kill_and_cleanup () { ndbcluster_stop(); $master->[0]->{'ndbcluster'}= 1; } +} + +sub kill_and_cleanup () { + + kill_running_server (); mtr_report("Removing Stale Files"); @@ -1461,7 +1477,15 @@ sub run_testcase ($) { # ---------------------------------------------------------------------- { - unlink("r/$tname.reject"); + # remove the old reject file + if ( $opt_suite eq "main" ) + { + unlink("r/$tname.reject"); + } + else + { + unlink("suite/$opt_suite/r/$tname.reject"); + } unlink($path_timefile); my $res= run_mysqltest($tinfo, $tinfo->{'master_opt'}); @@ -2155,7 +2179,7 @@ Options to run test on running server extern Use running server for tests FIXME DANGEROUS ndbconnectstring=STR Use running cluster, and connect using STR - user=USER The databse user name + user=USER User for connect to server Options for debugging the product @@ -2182,6 +2206,7 @@ Misc options compress Use the compressed protocol between client and server timer Show test case execution time start-and-exit Only initiate and start the "mysqld" servers + start-dirty Only start the "mysqld" servers without initiation fast Don't try to cleanup from earlier runs reorder Reorder tests to get less server restarts help Get this help text