Commit d8f7fb14 authored by unknown's avatar unknown
Browse files

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
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -2676,6 +2676,7 @@ int read_query(struct st_query** q_ptr)
end:
  while (*p && my_isspace(charset_info, *p))
    p++;

  if (!(q->query_buf= q->query= my_strdup(p, MYF(MY_WME))))
    die(NullS);

@@ -3573,6 +3574,13 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
    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
  */
@@ -3580,10 +3588,6 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
  {
    handle_error(query, command,  mysql_stmt_errno(stmt),
		 mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
#ifndef BUG15518_FIXED
    mysql_stmt_close(stmt);
    cur_con->stmt= NULL;
#endif
    goto end;
  }

@@ -3592,12 +3596,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
    separate string
  */
  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);
  }


  /*
    No need to call mysql_stmt_bind_param() because we have no
@@ -3724,6 +3723,10 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
    variable then can be used from the test case itself.
  */
  var_set_errno(mysql_stmt_errno(stmt));
#ifndef BUG15518_FIXED
  mysql_stmt_close(stmt);
  cur_con->stmt= NULL;
#endif
  DBUG_VOID_RETURN;
}

@@ -4050,6 +4053,7 @@ void get_query_type(struct st_query* q)
      q->type= Q_COMMENT;
  }
  else if (q->type == Q_COMMENT_WITH_COMMAND &&
	   q->first_word_len &&
           q->query[q->first_word_len-1] == ';')
  {
    /*
+12 −0
Original line number Diff line number Diff line
@@ -1002,6 +1002,18 @@ report_stats () {
      echo "WARNING: Got errors/warnings while running tests. Please examine"
      echo "$MY_LOG_DIR/warnings for details."
    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
}