~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to client/drizzletest.cc

  • Committer: Olaf van der Spek
  • Date: 2011-08-06 22:31:11 UTC
  • mfrom: (2386 drizzle)
  • mto: This revision was merged to the branch mainline in revision 2396.
  • Revision ID: olafvdspek@gmail.com-20110806223111-irz1ie6xoy4q0prc
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
 
25
25
  Tool used for executing a .test file
26
26
 
27
 
  See the "DRIZZLE Test framework manual" for more information
28
 
  http://dev.mysql.com/doc/drizzletest/en/index.html
 
27
  See the "MySQL Test framework manual" for more information
 
28
  http://dev.mysql.com/doc/mysqltest/en/index.html
29
29
 
30
30
  Please keep the test framework tools identical in all versions!
31
31
 
81
81
 
82
82
#define PTR_BYTE_DIFF(A,B) (ptrdiff_t) (reinterpret_cast<const unsigned char*>(A) - reinterpret_cast<const unsigned char*>(B))
83
83
 
84
 
#ifndef DRIZZLE_RETURN_SERVER_GONE
85
 
#define DRIZZLE_RETURN_HANDSHAKE_FAILED DRIZZLE_RETURN_ERROR_CODE
86
 
#endif
87
84
namespace po= boost::program_options;
88
85
using namespace std;
89
86
using namespace drizzled;
4579
4576
      returned a valid reponse. Don't allow 2013 or 2006 to trigger an
4580
4577
      abort_not_supported_test
4581
4578
    */
4582
 
    if (err_errno == DRIZZLE_RETURN_SERVER_GONE)
 
4579
    if (err_errno == DRIZZLE_RETURN_LOST_CONNECTION)
4583
4580
      die("require query '%s' failed: %d: %s", command->query, err_errno, err_error);
4584
4581
 
4585
4582
    /* Abort the run of this test, pass the failed query as reason */
4991
4988
 
4992
4989
  if (user_config_dir.compare(0, 2, "~/") == 0)
4993
4990
  {
4994
 
    const char *homedir= getenv("HOME");
4995
 
    if (homedir != NULL)
 
4991
    if (const char *homedir= getenv("HOME"))
4996
4992
      user_config_dir.replace(0, 1, homedir);
4997
4993
  }
4998
4994
 
5498
5494
    Time to compare result or save it to record file.
5499
5495
    The entire output from test is now kept in ds_res.
5500
5496
  */
5501
 
  if (ds_res.length())
5502
 
  {
5503
 
    if (not result_file_name.empty())
5504
 
    {
5505
 
      /* A result file has been specified */
5506
 
 
5507
 
      if (record)
5508
 
      {
5509
 
        /* Recording - dump the output from test to result file */
5510
 
        str_to_file(result_file_name.c_str(), ds_res.c_str(), ds_res.length());
5511
 
      }
5512
 
      else
5513
 
      {
5514
 
        /* Check that the output from test is equal to result file
5515
 
           - detect missing result file
5516
 
           - detect zero size result file
5517
 
        */
5518
 
        check_result(ds_res);
5519
 
      }
5520
 
    }
5521
 
    else
5522
 
    {
5523
 
      /* No result_file_name specified to compare with, print to stdout */
5524
 
      printf("%s", ds_res.c_str());
5525
 
    }
5526
 
  }
5527
 
  else
5528
 
  {
 
5497
  if (ds_res.empty())
5529
5498
    die("The test didn't produce any output");
 
5499
  if (result_file_name.empty())
 
5500
  {
 
5501
    /* No result_file_name specified to compare with, print to stdout */
 
5502
    printf("%s", ds_res.c_str());
 
5503
  }
 
5504
  else if (record)
 
5505
  {
 
5506
    /* Recording - dump the output from test to result file */
 
5507
    str_to_file(result_file_name.c_str(), ds_res.c_str(), ds_res.length());
 
5508
  }
 
5509
  else
 
5510
  {
 
5511
    /* Check that the output from test is equal to result file
 
5512
    - detect missing result file
 
5513
    - detect zero size result file
 
5514
    */
 
5515
    check_result(ds_res);
5530
5516
  }
5531
5517
 
5532
5518
  struct stat res_info;
5533
 
  if (!command_executed && not result_file_name.empty() && not stat(result_file_name.c_str(), &res_info))
 
5519
  if (not command_executed && not result_file_name.empty() && not stat(result_file_name.c_str(), &res_info))
5534
5520
  {
5535
5521
    /*
5536
5522
      my_stat() successful on result file. Check if we have not run a
5546
5532
    dump_progress();
5547
5533
 
5548
5534
  /* Dump warning messages */
5549
 
  if (! result_file_name.empty() && ds_warning_messages.length())
 
5535
  if (not result_file_name.empty() && ds_warning_messages.length())
5550
5536
    dump_warning_messages();
5551
5537
 
5552
5538
  timer_output();
5559
5545
    cerr<<err.what()<<endl;
5560
5546
  }
5561
5547
 
5562
 
  return 0; /* Keep compiler happy too */
 
5548
  return 0;
5563
5549
}
5564
5550
 
5565
5551