Commit dec5334a authored by msvensson@pilot.blaudden's avatar msvensson@pilot.blaudden

Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint

into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint
parents 87dcce98 c3dc142d
...@@ -816,27 +816,65 @@ void free_used_memory() ...@@ -816,27 +816,65 @@ void free_used_memory()
} }
static void cleanup_and_exit(int exit_code)
{
free_used_memory();
my_end(MY_CHECK_ERROR);
if (!silent)
{
switch (exit_code)
{
case 1:
printf("not ok\n");
break;
case 0:
printf("ok\n");
break;
case 62:
printf("skipped\n");
break;
default:
printf("unknown exit code: %d\n", exit_code);
DBUG_ASSERT(0);
}
}
exit(exit_code);
}
void die(const char *fmt, ...) void die(const char *fmt, ...)
{ {
static int dying= 0;
va_list args; va_list args;
DBUG_ENTER("die"); DBUG_ENTER("die");
DBUG_PRINT("enter", ("start_lineno: %d", start_lineno)); DBUG_PRINT("enter", ("start_lineno: %d", start_lineno));
/*
Protect against dying twice
first time 'die' is called, try to write log files
second time, just exit
*/
if (dying)
cleanup_and_exit(1);
/* Print the error message */ /* Print the error message */
va_start(args, fmt);
if (fmt)
{
fprintf(stderr, "mysqltest: "); fprintf(stderr, "mysqltest: ");
if (cur_file && cur_file != file_stack) if (cur_file && cur_file != file_stack)
fprintf(stderr, "In included file \"%s\": ", fprintf(stderr, "In included file \"%s\": ",
cur_file->file_name); cur_file->file_name);
if (start_lineno > 0) if (start_lineno > 0)
fprintf(stderr, "At line %u: ", start_lineno); fprintf(stderr, "At line %u: ", start_lineno);
if (fmt)
{
va_start(args, fmt);
vfprintf(stderr, fmt, args); vfprintf(stderr, fmt, args);
va_end(args);
}
else
fprintf(stderr, "unknown error");
fprintf(stderr, "\n"); fprintf(stderr, "\n");
fflush(stderr); fflush(stderr);
}
va_end(args);
/* Dump the result that has been accumulated so far to .log file */ /* Dump the result that has been accumulated so far to .log file */
if (result_file_name && ds_res.length) if (result_file_name && ds_res.length)
...@@ -846,14 +884,7 @@ void die(const char *fmt, ...) ...@@ -846,14 +884,7 @@ void die(const char *fmt, ...)
if (result_file_name && ds_warning_messages.length) if (result_file_name && ds_warning_messages.length)
dump_warning_messages(); dump_warning_messages();
/* Clean up and exit */ cleanup_and_exit(1);
free_used_memory();
my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR);
if (!silent)
printf("not ok\n");
exit(1);
} }
...@@ -886,14 +917,7 @@ void abort_not_supported_test(const char *fmt, ...) ...@@ -886,14 +917,7 @@ void abort_not_supported_test(const char *fmt, ...)
} }
va_end(args); va_end(args);
/* Clean up and exit */ cleanup_and_exit(62);
free_used_memory();
my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR);
if (!silent)
printf("skipped\n");
exit(62);
} }
...@@ -6407,14 +6431,9 @@ int main(int argc, char **argv) ...@@ -6407,14 +6431,9 @@ int main(int argc, char **argv)
dump_warning_messages(); dump_warning_messages();
timer_output(); timer_output();
free_used_memory();
my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR);
/* Yes, if we got this far the test has suceeded! Sakila smiles */ /* Yes, if we got this far the test has suceeded! Sakila smiles */
if (!silent) cleanup_and_exit(0);
printf("ok\n"); return 0; /* Keep compiler happy too */
exit(0);
return 0; /* Keep compiler happy */
} }
......
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