Commit d8f7fb14 authored by unknown's avatar unknown

WL#2930 mysqltest++

 - Updated after valgrinding


client/mysqltest.c:
  Move initialisation of dynamic strings to top of function so that variables are always inited before free
  The workaround for 15518 moved to last in function
  Add check for "--" comments without any comment,. to avoid read of uninit memory
mysql-test/mysql-test-run.sh:
  Add printout of valgrind errors from mysqltest when test with valgrind  has completed
parent 1b50a968
...@@ -2676,6 +2676,7 @@ int read_query(struct st_query** q_ptr) ...@@ -2676,6 +2676,7 @@ int read_query(struct st_query** q_ptr)
end: end:
while (*p && my_isspace(charset_info, *p)) while (*p && my_isspace(charset_info, *p))
p++; p++;
if (!(q->query_buf= q->query= my_strdup(p, MYF(MY_WME)))) if (!(q->query_buf= q->query= my_strdup(p, MYF(MY_WME))))
die(NullS); die(NullS);
...@@ -3573,6 +3574,13 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command, ...@@ -3573,6 +3574,13 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
cur_con->stmt= stmt; cur_con->stmt= stmt;
} }
/* Init dynamic strings for warnings */
if (!disable_warnings)
{
init_dynamic_string(&ds_prepare_warnings, NULL, 0, 256);
init_dynamic_string(&ds_execute_warnings, NULL, 0, 256);
}
/* /*
Prepare the query Prepare the query
*/ */
...@@ -3580,10 +3588,6 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command, ...@@ -3580,10 +3588,6 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
{ {
handle_error(query, command, mysql_stmt_errno(stmt), handle_error(query, command, mysql_stmt_errno(stmt),
mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds); mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
#ifndef BUG15518_FIXED
mysql_stmt_close(stmt);
cur_con->stmt= NULL;
#endif
goto end; goto end;
} }
...@@ -3592,12 +3596,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command, ...@@ -3592,12 +3596,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
separate string separate string
*/ */
if (!disable_warnings) if (!disable_warnings)
{
init_dynamic_string(&ds_prepare_warnings, NULL, 0, 256);
init_dynamic_string(&ds_execute_warnings, NULL, 0, 256);
append_warnings(&ds_prepare_warnings, mysql); append_warnings(&ds_prepare_warnings, mysql);
}
/* /*
No need to call mysql_stmt_bind_param() because we have no No need to call mysql_stmt_bind_param() because we have no
...@@ -3724,6 +3723,10 @@ end: ...@@ -3724,6 +3723,10 @@ end:
variable then can be used from the test case itself. variable then can be used from the test case itself.
*/ */
var_set_errno(mysql_stmt_errno(stmt)); var_set_errno(mysql_stmt_errno(stmt));
#ifndef BUG15518_FIXED
mysql_stmt_close(stmt);
cur_con->stmt= NULL;
#endif
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
...@@ -4050,6 +4053,7 @@ void get_query_type(struct st_query* q) ...@@ -4050,6 +4053,7 @@ void get_query_type(struct st_query* q)
q->type= Q_COMMENT; q->type= Q_COMMENT;
} }
else if (q->type == Q_COMMENT_WITH_COMMAND && else if (q->type == Q_COMMENT_WITH_COMMAND &&
q->first_word_len &&
q->query[q->first_word_len-1] == ';') q->query[q->first_word_len-1] == ';')
{ {
/* /*
......
...@@ -1002,6 +1002,18 @@ report_stats () { ...@@ -1002,6 +1002,18 @@ report_stats () {
echo "WARNING: Got errors/warnings while running tests. Please examine" echo "WARNING: Got errors/warnings while running tests. Please examine"
echo "$MY_LOG_DIR/warnings for details." echo "$MY_LOG_DIR/warnings for details."
fi fi
fi # USE_RUNNING_SERVER
# Check valgrind errors from mysqltest
if [ ! -z "$VALGRIND_MYSQLTEST" ]
then
if $GREP "ERROR SUMMARY" $MYSQLTEST_LOG | $GREP -v "0 errors" > /dev/null
then
$ECHO "Valgrind detected errors!"
$GREP "ERROR SUMMARY" $MYSQLTEST_LOG | $GREP -v "0 errors"
$ECHO "See $MYSQLTEST_LOG"
fi
fi fi
} }
......
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