Bug : system_mysql fail in pushbuild windows

On Windows the debug log was doing freopen () instead of
fflush() and that was slowing the logging down that much 
that some tests timed out.
Fixed by replacing the freopen() with an syncing-to-disk
flag to fopen() and fflush().
Also increased the timeout of the tests running with --debug
on windows : seems to slow down as much as valgrind on linux.


dbug/dbug.c:
  Bug : remove the freopen() for the 
  windows log : too slow. Replace it with the "c" option
  for fopen().
mysql-test/mysql-test-run.pl:
  Bug : on windows debug log seems to slow the tests
  down about as much as valgrind does on linux.
This commit is contained in:
unknown 2007-10-15 19:56:24 +03:00
parent 3e7e78d7fc
commit b872877aba
2 changed files with 12 additions and 18 deletions

View file

@ -1826,7 +1826,13 @@ static void DBUGOpenFile(CODE_STATE *cs,
else
{
newfile= !EXISTS(name);
if (!(fp= fopen(name, append ? "a+" : "w")))
if (!(fp= fopen(name,
#if defined(MSDOS) || defined(__WIN__)
append ? "a+c" : "wc"
#else
append ? "a+" : "w"
#endif
)))
{
(void) fprintf(stderr, ERR_OPEN, cs->process, name);
perror("");
@ -2231,23 +2237,9 @@ static void dbug_flush(CODE_STATE *cs)
if (cs->stack->flags & FLUSH_ON_WRITE)
#endif
{
#if defined(MSDOS) || defined(__WIN__)
if (cs->stack->out_file != stdout && cs->stack->out_file != stderr)
{
if (!(freopen(cs->stack->name,"a",cs->stack->out_file)))
{
(void) fprintf(stderr, ERR_OPEN, cs->process, cs->stack->name);
fflush(stderr);
cs->stack->out_file= stderr;
}
}
else
#endif
{
(void) fflush(cs->stack->out_file);
if (cs->stack->delay)
(void) Delay(cs->stack->delay);
}
(void) fflush(cs->stack->out_file);
if (cs->stack->delay)
(void) Delay(cs->stack->delay);
}
if (!cs->locked)
pthread_mutex_unlock(&THR_LOCK_dbug);

View file

@ -1019,12 +1019,14 @@ sub command_line_setup () {
{
$opt_testcase_timeout= $default_testcase_timeout;
$opt_testcase_timeout*= 10 if $opt_valgrind;
$opt_testcase_timeout*= 10 if ($opt_debug and $glob_win32);
}
if ( ! $opt_suite_timeout )
{
$opt_suite_timeout= $default_suite_timeout;
$opt_suite_timeout*= 6 if $opt_valgrind;
$opt_suite_timeout*= 6 if ($opt_debug and $glob_win32);
}
if ( ! $opt_user )