Loading client/mysqltest.c +91 −2 Original line number Diff line number Diff line Loading @@ -80,12 +80,23 @@ * the server - to solve the problem, we try again * after some sleep if connection fails the first * time */ #ifndef MYSQL_MANAGER_PORT #define MYSQL_MANAGER_PORT 23546 #endif enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD, OPT_MANAGER_PORT,OPT_MANAGER_WAIT_TIMEOUT}; static int record = 0, verbose = 0, silent = 0, opt_sleep=0; static char *db = 0, *pass=0; const char* user = 0, *host = 0, *unix_sock = 0; static int port = 0, opt_big_test=0; static uint start_lineno, *lineno; const char* manager_user="root",*manager_host="localhost"; char *manager_pass=0; int manager_port=MYSQL_MANAGER_PORT; int manager_wait_timeout=3; MYSQL_MANAGER* manager=0; static char **default_argv; static const char *load_default_groups[]= { "mysqltest","client",0 }; Loading Loading @@ -168,6 +179,7 @@ Q_PING, Q_EVAL, Q_RPL_PROBE, Q_ENABLE_RPL_PARSE, Q_DISABLE_RPL_PARSE, Q_EVAL_RESULT, Q_ENABLE_QUERY_LOG, Q_DISABLE_QUERY_LOG, Q_SERVER_START, Q_SERVER_STOP, Q_UNKNOWN, /* Unknown command. */ Q_COMMENT, /* Comments, ignored. */ Q_COMMENT_WITH_COMMAND Loading Loading @@ -200,6 +212,7 @@ const char *command_names[] = { "rpl_probe", "enable_rpl_parse", "disable_rpl_parse", "eval_result", "enable_query_log", "disable_query_log", "server_start", "server_stop", 0 }; Loading Loading @@ -243,6 +256,7 @@ static int initialize_replace_buffer(void); static void free_replace_buffer(void); static void do_eval(DYNAMIC_STRING* query_eval, const char* query); void str_to_file(const char* fname, char* str, int size); int do_server_op(struct st_query* q,const char* op); struct st_replace *glob_replace; static char *out_buff; Loading Loading @@ -321,6 +335,8 @@ static void free_used_memory() { uint i; DBUG_ENTER("free_used_memory"); if (manager) mysql_manager_close(manager); close_cons(); close_files(); hash_free(&var_hash); Loading Loading @@ -580,6 +596,44 @@ int open_file(const char* name) return 0; } int do_server_start(struct st_query* q) { return do_server_op(q,"start"); } int do_server_stop(struct st_query* q) { return do_server_op(q,"stop"); } int do_server_op(struct st_query* q,const char* op) { char* p=q->first_argument; char com_buf[256],*com_p; com_p=strmov(com_buf,op); com_p=strmov(com_p,"_exec "); if (!*p) die("Missing server name in server_%s\n",op); while (*p && !isspace(*p)) { *com_p++=*p++; } *com_p++=' '; com_p=int10_to_str(manager_wait_timeout,com_p,10); *com_p++ = '\n'; *com_p=0; if (mysql_manager_command(manager,com_buf,(int)(com_p-com_buf))) die("Error in command: %s(%d)",manager->last_error,manager->last_errno); while (!manager->eof) { if (mysql_manager_fetch_line(manager,com_buf,sizeof(com_buf))) die("Error fetching result line: %s(%d)", manager->last_error, manager->last_errno); } return 0; } int do_source(struct st_query* q) { char* p=q->first_argument, *name; Loading Loading @@ -1125,6 +1179,17 @@ char* safe_get_param(char* str, char** arg, const char* msg) DBUG_RETURN(str); } void init_manager() { if (!(manager=mysql_manager_init(0))) die("Failed in mysql_manager_init()"); if (!mysql_manager_connect(manager,manager_host,manager_user, manager_pass,manager_port)) die("Could not connect to MySQL manager: %s(%d)",manager->last_error, manager->last_errno); } int safe_connect(MYSQL* con, const char* host, const char* user, const char* pass, const char* db, int port, const char* sock) Loading Loading @@ -1519,7 +1584,6 @@ int read_query(struct st_query** q_ptr) return 0; } struct option long_options[] = { {"debug", optional_argument, 0, '#'}, Loading @@ -1527,6 +1591,11 @@ struct option long_options[] = {"big-test", no_argument, 0, 'B'}, {"help", no_argument, 0, '?'}, {"host", required_argument, 0, 'h'}, {"manager-user",required_argument, 0, OPT_MANAGER_USER}, {"manager-host",required_argument, 0, OPT_MANAGER_HOST}, {"manager-password",required_argument,0,OPT_MANAGER_PASSWD}, {"manager-port",required_argument,0,OPT_MANAGER_PORT}, {"manager-wait-timeout",required_argument,0,OPT_MANAGER_WAIT_TIMEOUT}, {"password", optional_argument, 0, 'p'}, {"port", required_argument, 0, 'P'}, {"quiet", no_argument, 0, 'q'}, Loading Loading @@ -1604,6 +1673,23 @@ int parse_args(int argc, char **argv) case 'r': record = 1; break; case (int)OPT_MANAGER_WAIT_TIMEOUT: manager_wait_timeout=atoi(optarg); break; case (int)OPT_MANAGER_PORT: manager_port=atoi(optarg); break; case (int)OPT_MANAGER_HOST: manager_host=optarg; break; case (int)OPT_MANAGER_USER: manager_user=optarg; break; case (int)OPT_MANAGER_PASSWD: my_free(manager_pass,MYF(MY_ALLOW_ZERO_PTR)); manager_pass=my_strdup(optarg,MYF(MY_FAE)); while (*optarg) *optarg++= 'x'; /* Destroy argument */ break; case 'u': user = optarg; break; Loading Loading @@ -2010,6 +2096,7 @@ int main(int argc, char** argv) if (!*cur_file) *cur_file = stdin; *lineno=1; init_manager(); if (!( mysql_init(&cur_con->mysql))) die("Failed in mysql_init()"); Loading Loading @@ -2042,6 +2129,8 @@ int main(int argc, char** argv) case Q_DISABLE_QUERY_LOG: disable_query_log=1; break; case Q_SOURCE: do_source(q); break; case Q_SLEEP: do_sleep(q); break; case Q_SERVER_START: do_server_start(q); break; case Q_SERVER_STOP: do_server_stop(q); break; case Q_INC: do_inc(q); break; case Q_DEC: do_dec(q); break; case Q_ECHO: do_echo(q); break; Loading mysql-test/mysql-test-run.sh +18 −4 Original line number Diff line number Diff line Loading @@ -336,7 +336,9 @@ then fi MYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB --user=$DBUSER --password=$DBPASSWD --silent -v --tmpdir=$MYSQL_TMP_DIR" MYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB \ --user=$DBUSER --password=$DBPASSWD --silent -v \ --tmpdir=$MYSQL_TMP_DIR" MYSQL_TEST_BIN=$MYSQL_TEST MYSQL_TEST="$MYSQL_TEST $MYSQL_TEST_ARGS" GDB_CLIENT_INIT=$MYSQL_TMP_DIR/gdbinit.client Loading Loading @@ -521,6 +523,13 @@ start_manager() $MYSQL_MANAGER --log=$MYSQL_MANAGER_LOG --port=$MYSQL_MANAGER_PORT \ --password-file=$MYSQL_MANAGER_PW_FILE abort_if_failed "Could not start MySQL manager" mysqltest_manager_args="--manager-user=$MYSQL_MANAGER_USER \ --manager-password=$MYSQL_MANAGER_PW \ --manager-port=$MYSQL_MANAGER_PORT \ --manager-wait-timeout=$START_WAIT_TIMEOUT" MYSQL_TEST="$MYSQL_TEST $mysqltest_manager_args" MYSQL_TEST_ARGS="$MYSQL_TEST_ARGS $mysqltest_manager_args" } stop_manager() Loading Loading @@ -552,7 +561,7 @@ manager_term() shift $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \ --password=$MYSQL_MANAGER_PW --port=$MYSQL_MANAGER_PORT <<EOF stop_exec $ident $TERM_WAIT_TIMEOUT stop_exec $ident $STOP_WAIT_TIMEOUT EOF abort_if_failed "Could not execute manager command" } Loading @@ -561,14 +570,16 @@ EOF start_master() { [ x$MASTER_RUNNING = 1 ] && return # Remove old berkeley db log files that can confuse the server $RM -f $MASTER_MYDDIR/log.* # Remove stale binary logs $RM -f $MYSQL_TEST_DIR/var/log/master-bin.* #run master initialization shell script if one exists if [ -f "$master_init_script" ] ; then /bin/sh $master_init_script fi cd $BASEDIR # for gcov # Remove old berkeley db log files that can confuse the server $RM -f $MASTER_MYDDIR/log.* #start master if [ -z "$DO_BENCH" ] then Loading Loading @@ -630,6 +641,9 @@ start_slave() [ x$SKIP_SLAVE = x1 ] && return [ x$SLAVE_RUNNING = 1 ] && return # Remove stale binary logs $RM -f $MYSQL_TEST_DIR/var/log/slave-bin.* #run slave initialization shell script if one exists if [ -f "$slave_init_script" ] ; then Loading mysql-test/r/rpl000018.result +0 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,6 @@ show master logs; Log_name master-bin.001 master-bin.002 master-bin.003 drop table if exists t1; create table t1(n int); insert into t1 values (3351); Loading mysql-test/t/rpl000018-master.shdeleted 100755 → 0 +0 −3 Original line number Diff line number Diff line rm -f $MYSQL_TEST_DIR/var/master-data/master-bin.* cp $MYSQL_TEST_DIR/std_data/master-bin.001 $MYSQL_TEST_DIR/var/master-data/ echo ./master-bin.001 > $MYSQL_TEST_DIR/var/master-data/master-bin.index mysql-test/t/rpl000018.test +2 −0 Original line number Diff line number Diff line connect (master,localhost,root,,test,0,mysql-master.sock); connect (slave,localhost,root,,test,0,mysql-slave.sock); server_stop master; server_start master; connection slave; reset slave; slave start; Loading Loading
client/mysqltest.c +91 −2 Original line number Diff line number Diff line Loading @@ -80,12 +80,23 @@ * the server - to solve the problem, we try again * after some sleep if connection fails the first * time */ #ifndef MYSQL_MANAGER_PORT #define MYSQL_MANAGER_PORT 23546 #endif enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD, OPT_MANAGER_PORT,OPT_MANAGER_WAIT_TIMEOUT}; static int record = 0, verbose = 0, silent = 0, opt_sleep=0; static char *db = 0, *pass=0; const char* user = 0, *host = 0, *unix_sock = 0; static int port = 0, opt_big_test=0; static uint start_lineno, *lineno; const char* manager_user="root",*manager_host="localhost"; char *manager_pass=0; int manager_port=MYSQL_MANAGER_PORT; int manager_wait_timeout=3; MYSQL_MANAGER* manager=0; static char **default_argv; static const char *load_default_groups[]= { "mysqltest","client",0 }; Loading Loading @@ -168,6 +179,7 @@ Q_PING, Q_EVAL, Q_RPL_PROBE, Q_ENABLE_RPL_PARSE, Q_DISABLE_RPL_PARSE, Q_EVAL_RESULT, Q_ENABLE_QUERY_LOG, Q_DISABLE_QUERY_LOG, Q_SERVER_START, Q_SERVER_STOP, Q_UNKNOWN, /* Unknown command. */ Q_COMMENT, /* Comments, ignored. */ Q_COMMENT_WITH_COMMAND Loading Loading @@ -200,6 +212,7 @@ const char *command_names[] = { "rpl_probe", "enable_rpl_parse", "disable_rpl_parse", "eval_result", "enable_query_log", "disable_query_log", "server_start", "server_stop", 0 }; Loading Loading @@ -243,6 +256,7 @@ static int initialize_replace_buffer(void); static void free_replace_buffer(void); static void do_eval(DYNAMIC_STRING* query_eval, const char* query); void str_to_file(const char* fname, char* str, int size); int do_server_op(struct st_query* q,const char* op); struct st_replace *glob_replace; static char *out_buff; Loading Loading @@ -321,6 +335,8 @@ static void free_used_memory() { uint i; DBUG_ENTER("free_used_memory"); if (manager) mysql_manager_close(manager); close_cons(); close_files(); hash_free(&var_hash); Loading Loading @@ -580,6 +596,44 @@ int open_file(const char* name) return 0; } int do_server_start(struct st_query* q) { return do_server_op(q,"start"); } int do_server_stop(struct st_query* q) { return do_server_op(q,"stop"); } int do_server_op(struct st_query* q,const char* op) { char* p=q->first_argument; char com_buf[256],*com_p; com_p=strmov(com_buf,op); com_p=strmov(com_p,"_exec "); if (!*p) die("Missing server name in server_%s\n",op); while (*p && !isspace(*p)) { *com_p++=*p++; } *com_p++=' '; com_p=int10_to_str(manager_wait_timeout,com_p,10); *com_p++ = '\n'; *com_p=0; if (mysql_manager_command(manager,com_buf,(int)(com_p-com_buf))) die("Error in command: %s(%d)",manager->last_error,manager->last_errno); while (!manager->eof) { if (mysql_manager_fetch_line(manager,com_buf,sizeof(com_buf))) die("Error fetching result line: %s(%d)", manager->last_error, manager->last_errno); } return 0; } int do_source(struct st_query* q) { char* p=q->first_argument, *name; Loading Loading @@ -1125,6 +1179,17 @@ char* safe_get_param(char* str, char** arg, const char* msg) DBUG_RETURN(str); } void init_manager() { if (!(manager=mysql_manager_init(0))) die("Failed in mysql_manager_init()"); if (!mysql_manager_connect(manager,manager_host,manager_user, manager_pass,manager_port)) die("Could not connect to MySQL manager: %s(%d)",manager->last_error, manager->last_errno); } int safe_connect(MYSQL* con, const char* host, const char* user, const char* pass, const char* db, int port, const char* sock) Loading Loading @@ -1519,7 +1584,6 @@ int read_query(struct st_query** q_ptr) return 0; } struct option long_options[] = { {"debug", optional_argument, 0, '#'}, Loading @@ -1527,6 +1591,11 @@ struct option long_options[] = {"big-test", no_argument, 0, 'B'}, {"help", no_argument, 0, '?'}, {"host", required_argument, 0, 'h'}, {"manager-user",required_argument, 0, OPT_MANAGER_USER}, {"manager-host",required_argument, 0, OPT_MANAGER_HOST}, {"manager-password",required_argument,0,OPT_MANAGER_PASSWD}, {"manager-port",required_argument,0,OPT_MANAGER_PORT}, {"manager-wait-timeout",required_argument,0,OPT_MANAGER_WAIT_TIMEOUT}, {"password", optional_argument, 0, 'p'}, {"port", required_argument, 0, 'P'}, {"quiet", no_argument, 0, 'q'}, Loading Loading @@ -1604,6 +1673,23 @@ int parse_args(int argc, char **argv) case 'r': record = 1; break; case (int)OPT_MANAGER_WAIT_TIMEOUT: manager_wait_timeout=atoi(optarg); break; case (int)OPT_MANAGER_PORT: manager_port=atoi(optarg); break; case (int)OPT_MANAGER_HOST: manager_host=optarg; break; case (int)OPT_MANAGER_USER: manager_user=optarg; break; case (int)OPT_MANAGER_PASSWD: my_free(manager_pass,MYF(MY_ALLOW_ZERO_PTR)); manager_pass=my_strdup(optarg,MYF(MY_FAE)); while (*optarg) *optarg++= 'x'; /* Destroy argument */ break; case 'u': user = optarg; break; Loading Loading @@ -2010,6 +2096,7 @@ int main(int argc, char** argv) if (!*cur_file) *cur_file = stdin; *lineno=1; init_manager(); if (!( mysql_init(&cur_con->mysql))) die("Failed in mysql_init()"); Loading Loading @@ -2042,6 +2129,8 @@ int main(int argc, char** argv) case Q_DISABLE_QUERY_LOG: disable_query_log=1; break; case Q_SOURCE: do_source(q); break; case Q_SLEEP: do_sleep(q); break; case Q_SERVER_START: do_server_start(q); break; case Q_SERVER_STOP: do_server_stop(q); break; case Q_INC: do_inc(q); break; case Q_DEC: do_dec(q); break; case Q_ECHO: do_echo(q); break; Loading
mysql-test/mysql-test-run.sh +18 −4 Original line number Diff line number Diff line Loading @@ -336,7 +336,9 @@ then fi MYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB --user=$DBUSER --password=$DBPASSWD --silent -v --tmpdir=$MYSQL_TMP_DIR" MYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB \ --user=$DBUSER --password=$DBPASSWD --silent -v \ --tmpdir=$MYSQL_TMP_DIR" MYSQL_TEST_BIN=$MYSQL_TEST MYSQL_TEST="$MYSQL_TEST $MYSQL_TEST_ARGS" GDB_CLIENT_INIT=$MYSQL_TMP_DIR/gdbinit.client Loading Loading @@ -521,6 +523,13 @@ start_manager() $MYSQL_MANAGER --log=$MYSQL_MANAGER_LOG --port=$MYSQL_MANAGER_PORT \ --password-file=$MYSQL_MANAGER_PW_FILE abort_if_failed "Could not start MySQL manager" mysqltest_manager_args="--manager-user=$MYSQL_MANAGER_USER \ --manager-password=$MYSQL_MANAGER_PW \ --manager-port=$MYSQL_MANAGER_PORT \ --manager-wait-timeout=$START_WAIT_TIMEOUT" MYSQL_TEST="$MYSQL_TEST $mysqltest_manager_args" MYSQL_TEST_ARGS="$MYSQL_TEST_ARGS $mysqltest_manager_args" } stop_manager() Loading Loading @@ -552,7 +561,7 @@ manager_term() shift $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \ --password=$MYSQL_MANAGER_PW --port=$MYSQL_MANAGER_PORT <<EOF stop_exec $ident $TERM_WAIT_TIMEOUT stop_exec $ident $STOP_WAIT_TIMEOUT EOF abort_if_failed "Could not execute manager command" } Loading @@ -561,14 +570,16 @@ EOF start_master() { [ x$MASTER_RUNNING = 1 ] && return # Remove old berkeley db log files that can confuse the server $RM -f $MASTER_MYDDIR/log.* # Remove stale binary logs $RM -f $MYSQL_TEST_DIR/var/log/master-bin.* #run master initialization shell script if one exists if [ -f "$master_init_script" ] ; then /bin/sh $master_init_script fi cd $BASEDIR # for gcov # Remove old berkeley db log files that can confuse the server $RM -f $MASTER_MYDDIR/log.* #start master if [ -z "$DO_BENCH" ] then Loading Loading @@ -630,6 +641,9 @@ start_slave() [ x$SKIP_SLAVE = x1 ] && return [ x$SLAVE_RUNNING = 1 ] && return # Remove stale binary logs $RM -f $MYSQL_TEST_DIR/var/log/slave-bin.* #run slave initialization shell script if one exists if [ -f "$slave_init_script" ] ; then Loading
mysql-test/r/rpl000018.result +0 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,6 @@ show master logs; Log_name master-bin.001 master-bin.002 master-bin.003 drop table if exists t1; create table t1(n int); insert into t1 values (3351); Loading
mysql-test/t/rpl000018-master.shdeleted 100755 → 0 +0 −3 Original line number Diff line number Diff line rm -f $MYSQL_TEST_DIR/var/master-data/master-bin.* cp $MYSQL_TEST_DIR/std_data/master-bin.001 $MYSQL_TEST_DIR/var/master-data/ echo ./master-bin.001 > $MYSQL_TEST_DIR/var/master-data/master-bin.index
mysql-test/t/rpl000018.test +2 −0 Original line number Diff line number Diff line connect (master,localhost,root,,test,0,mysql-master.sock); connect (slave,localhost,root,,test,0,mysql-slave.sock); server_stop master; server_start master; connection slave; reset slave; slave start; Loading