Commit 77ec64a3 authored by unknown's avatar unknown
Browse files

Write some debug info to result log file before dying in 'do_exec'

parent 089ce4e3
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -415,6 +415,8 @@ void verbose_msg(const char *fmt, ...)
  ATTRIBUTE_FORMAT(printf, 1, 2);
void warning_msg(const char *fmt, ...)
  ATTRIBUTE_FORMAT(printf, 1, 2);
void log_msg(const char *fmt, ...)
  ATTRIBUTE_FORMAT(printf, 1, 2);

VAR* var_from_env(const char *, const char *);
VAR* var_init(VAR* v, const char *name, int name_len, const char *val,
@@ -925,6 +927,25 @@ void warning_msg(const char *fmt, ...)
}


void log_msg(const char *fmt, ...)
{
  va_list args;
  char buff[512];
  size_t len;
  DBUG_ENTER("log_msg");

  memset(buff, 0, sizeof(buff));
  va_start(args, fmt);
  len= vsnprintf(buff, sizeof(buff)-1, fmt, args);
  va_end(args);

  dynstr_append_mem(&ds_res, buff, len);
  dynstr_append(&ds_res, "\n");

  DBUG_VOID_RETURN;
}


/*
  Compare content of the string ds to content of file fname
*/
@@ -1597,7 +1618,11 @@ void do_exec(struct st_command *command)
    my_bool ok= 0;

    if (command->abort_on_error)
    {
      log_msg("exec of '%s failed, error: %d, status: %d, errno: %d",
              ds_cmd.str, error, status, errno);
      die("command \"%s\" failed", command->first_argument);
    }

    DBUG_PRINT("info",
               ("error: %d, status: %d", error, status));
@@ -1621,6 +1646,8 @@ void do_exec(struct st_command *command)
           command->expected_errors.err[0].code.errnum != 0)
  {
    /* Error code we wanted was != 0, i.e. not an expected success */
    log_msg("exec of '%s failed, error: %d, errno: %d",
            ds_cmd.str, error, errno);
    die("command \"%s\" succeeded - should have failed with errno %d...",
        command->first_argument, command->expected_errors.err[0].code.errnum);
  }