Commit c6b19ea0 authored by unknown's avatar unknown

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.
parent 4cb9a326
...@@ -609,14 +609,14 @@ public: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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);
......
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