mysqltest: Fix reversed error check, causing truncated output when testcase fails.
Also fix missing zero termination in DBUG_PRINT, causing garbage output in --debug output.
This commit is contained in:
parent
4cb9a326cf
commit
c6b19ea001
@ -609,14 +609,14 @@ public:
|
|||||||
lines++;
|
lines++;
|
||||||
|
|
||||||
int show_offset= 0;
|
int show_offset= 0;
|
||||||
char buf[256];
|
char buf[256+1]; /* + zero termination for DBUG_PRINT */
|
||||||
size_t bytes;
|
size_t bytes;
|
||||||
bool found_bof= false;
|
bool found_bof= false;
|
||||||
|
|
||||||
/* Search backward in file until "lines" newline has been found */
|
/* Search backward in file until "lines" newline has been found */
|
||||||
while (lines && !found_bof)
|
while (lines && !found_bof)
|
||||||
{
|
{
|
||||||
show_offset-= sizeof(buf);
|
show_offset-= sizeof(buf)-1;
|
||||||
while(fseek(m_file, show_offset, SEEK_END) != 0 && show_offset < 0)
|
while(fseek(m_file, show_offset, SEEK_END) != 0 && show_offset < 0)
|
||||||
{
|
{
|
||||||
found_bof= true;
|
found_bof= true;
|
||||||
@ -624,7 +624,7 @@ public:
|
|||||||
show_offset++;
|
show_offset++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((bytes= fread(buf, 1, sizeof(buf), m_file)) <= 0)
|
if ((bytes= fread(buf, 1, sizeof(buf)-1, m_file)) <= 0)
|
||||||
{
|
{
|
||||||
// ferror=0 will happen here if no queries executed yet
|
// ferror=0 will happen here if no queries executed yet
|
||||||
if (ferror(m_file))
|
if (ferror(m_file))
|
||||||
@ -634,6 +634,7 @@ public:
|
|||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IF_DBUG(buf[bytes]= '\0';)
|
||||||
DBUG_PRINT("info", ("Read %lu bytes from file, buf: %s",
|
DBUG_PRINT("info", ("Read %lu bytes from file, buf: %s",
|
||||||
(unsigned long)bytes, buf));
|
(unsigned long)bytes, buf));
|
||||||
|
|
||||||
@ -678,8 +679,8 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((bytes= fread(buf, 1, sizeof(buf), m_file)) > 0)
|
while ((bytes= fread(buf, 1, sizeof(buf)-1, m_file)) > 0)
|
||||||
if (fwrite(buf, 1, bytes, stderr))
|
if (bytes != fwrite(buf, 1, bytes, stderr))
|
||||||
die("Failed to write to '%s', errno: %d",
|
die("Failed to write to '%s', errno: %d",
|
||||||
m_file_name, errno);
|
m_file_name, errno);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user