Commit a2fdebaa authored by unknown's avatar unknown
Browse files

Some bug fixes and a feature add to mysql-test-run


client/mysql.cc:
  Fixed Bug#981  ".mysql_history is lost if mysql clinent exit when out of space"
client/mysqlbinlog.cc:
  Fix for mysqlbinlog, mysql_close() needs to be called.
libmysql/Makefile.shared:
  Added use of my_rename()
mysql-test/mysql-test-run.sh:
  Added possibility to add file t/testname.disabled. This will disable a
  test with same base name. Additionally, if the .disabled file contains text,
  it will be appended as a comment after the test during run.
parent f0a6c7e2
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@
#include <locale.h>
#endif

const char *VER= "14.7";
const char *VER= "14.8";

/* Don't try to make a nice table if the data is too big */
#define MAX_COLUMN_LENGTH	     1024
@@ -144,6 +144,7 @@ static char *current_host,*current_db,*current_user=0,*opt_password=0,
            *current_prompt=0, *delimiter_str= 0,
            *default_charset= (char*) MYSQL_DEFAULT_CHARSET_NAME;
static char *histfile;
static char *histfile_tmp;
static String glob_buffer,old_buffer;
static String processed_prompt;
static char *full_username=0,*part_username=0,*default_prompt=0;
@@ -442,6 +443,13 @@ int main(int argc,char *argv[])
      if (verbose)
	tee_fprintf(stdout, "Reading history-file %s\n",histfile);
      read_history(histfile);
      if (!(histfile_tmp= (char*) my_malloc((uint) strlen(histfile) + 5,
					    MYF(MY_WME))))
      {
	fprintf(stderr, "Couldn't allocate memory for temp histfile!\n");
	exit(1);
      }
      sprintf(histfile_tmp, "%s.TMP", histfile);
    }
  }
#endif
@@ -470,7 +478,8 @@ sig_handler mysql_end(int sig)
    /* write-history */
    if (verbose)
      tee_fprintf(stdout, "Writing history-file %s\n",histfile);
    write_history(histfile);
    if (!write_history(histfile_tmp))
      my_rename(histfile_tmp, histfile, MYF(MY_WME));
  }
  batch_readline_end(status.line_buff);
  completion_hash_free(&ht);
@@ -485,6 +494,7 @@ sig_handler mysql_end(int sig)
  my_free(opt_password,MYF(MY_ALLOW_ZERO_PTR));
  my_free(opt_mysql_unix_port,MYF(MY_ALLOW_ZERO_PTR));
  my_free(histfile,MYF(MY_ALLOW_ZERO_PTR));
  my_free(histfile_tmp,MYF(MY_ALLOW_ZERO_PTR));
  my_free(current_db,MYF(MY_ALLOW_ZERO_PTR));
  my_free(current_host,MYF(MY_ALLOW_ZERO_PTR));
  my_free(current_user,MYF(MY_ALLOW_ZERO_PTR));
+7 −1
Original line number Diff line number Diff line
@@ -780,7 +780,13 @@ static int check_master_version(MYSQL* mysql,

  if (mysql_query(mysql, "SELECT VERSION()") ||
      !(res = mysql_store_result(mysql)))
    die("Error checking master version: %s", mysql_error(mysql));
  {
    char errmsg[FN_REFLEN];

    strmake(errmsg, mysql_error(mysql), sizeof(errmsg) - 1);
    mysql_close(mysql);
    die("Error checking master version: %s", errmsg);
  }
  if (!(row = mysql_fetch_row(res)))
  {
    mysql_free_result(res);
+3 −2
Original line number Diff line number Diff line
@@ -66,7 +66,8 @@ mysysobjects1 = my_init.lo my_static.lo my_malloc.lo my_realloc.lo \
                        charset.lo charset-def.lo hash.lo mf_iocache.lo \
                        mf_iocache2.lo my_seek.lo my_sleep.lo \
			my_pread.lo mf_cache.lo md5.lo sha1.lo \
			my_getopt.lo my_gethostbyname.lo my_port.lo
			my_getopt.lo my_gethostbyname.lo my_port.lo \
                        my_rename.lo
sqlobjects =		net.lo
sql_cmn_objects =	pack.lo client.lo my_time.lo

+17 −0
Original line number Diff line number Diff line
@@ -765,6 +765,17 @@ skip_test() {
   $ECHO "$RES$RES_SPACE [ skipped ]"
}


disable_test() {
   USERT="    ...."
   SYST="    ...."
   REALT="    ...."
   pname=`$ECHO "$1                        "|$CUT -c 1-24`
   RES="$pname"
   skip_inc
   $ECHO "$RES$RES_SPACE [ disabled ]  $2"
}

report_stats () {
    if [ $TOT_FAIL = 0 ]; then
	$ECHO "All $TOT_TEST tests were successful."
@@ -1411,6 +1422,12 @@ run_testcase ()
 if [ -n "$RESULT_EXT" -a \( x$RECORD = x1 -o -f "$result_file$RESULT_EXT" \) ] ; then
   result_file="$result_file$RESULT_EXT"
 fi
 if [ -e "$TESTDIR/$tname.disabled" ]
 then
   comment=`$CAT $TESTDIR/$tname.disabled`;
   disable_test $tname "$comment"
   return
 fi
 if [ "$USE_MANAGER" = 1 ] ; then
  many_slaves=`$EXPR \( \( $tname : rpl_failsafe \) != 0 \) \| \( \( $tname : rpl_chain_temp_table \) != 0 \)`
 fi
+1 −0
Original line number Diff line number Diff line
Patrick Galbraith should fix this