Commit 32926414 authored by unknown's avatar unknown
Browse files

Bug#17574 Detect cluster start failure and "fail" ndb_* tests


mysql-test/lib/mtr_cases.pl:
  Always set "ndb_test" if tets name contains ndb. 
  Set to skipped if "--skip-ndbcluster"
mysql-test/lib/mtr_report.pl:
  Print special error message for ndb_test that are failed due to failure to start or install ndbcluster
mysql-test/mysql-test-run.pl:
  Remove mtr_error call from ndbcluster_install, instead check after ndbcluster_install if test run should continue or if it should be aborted
  Faile ndb test and print special error message if it's a ndb test and flag_ndb_status_ok is not ok
parent 89378fe8
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -253,19 +253,14 @@ sub collect_one_test_case($$$$$$$) {
  }

  # Cluster is needed by test case if testname contains ndb
  if ( ( $::opt_with_ndbcluster or $::glob_use_running_ndbcluster ) and
       defined mtr_match_substring($tname,"ndb") )
  if ( defined mtr_match_substring($tname,"ndb") )
  {
    $tinfo->{'ndb_test'}= 1;
    if ( $::opt_skip_ndbcluster )
    {
      $tinfo->{'ndb_test'}= 0;
      $tinfo->{'skip'}= 1;
      return;
    }
    else
    {
      $tinfo->{'ndb_test'}= 1;
    }
  }
  else
  {
+5 −0
Original line number Diff line number Diff line
@@ -114,6 +114,11 @@ sub mtr_report_test_failed ($) {
  {
    print "[ fail ]  timeout\n";
  }
  elsif ( $tinfo->{'ndb_test'} and  !$::flag_ndb_status_ok)
  {
    print "[ fail ]  ndbcluster start failure\n";
    return;
  }
  else
  {
    print "[ fail ]\n";
+20 −4
Original line number Diff line number Diff line
@@ -1396,7 +1396,6 @@ sub ndbcluster_install () {
		 "--initial"],
		"", "", "", "") )
  {
    mtr_error("Error ndbcluster_install");
    return 1;
  }

@@ -1603,10 +1602,20 @@ sub mysql_install_db () {

  if ( ndbcluster_install() )
  {
    # failed to install, disable usage but flag that its no ok
    if ( $opt_force)
    {
      # failed to install, disable usage and flag that its no ok
      mtr_report("ndbcluster_install failed, continuing without cluster");
      $opt_with_ndbcluster= 0;
      $flag_ndb_status_ok= 0;
    }
    else
    {
      print "Aborting: Failed to install ndb cluster\n";
      print "To continue, re-run with '--force'.\n";
      mtr_exit(1);
    }
  }

  return 0;
}
@@ -1805,6 +1814,13 @@ sub run_testcase ($) {
    return;
  }

  if ( $tinfo->{'ndb_test'}  and ! $flag_ndb_status_ok )
  {
    mtr_report_test_name($tinfo);
    mtr_report_test_failed($tinfo);
    return;
  }

  # ----------------------------------------------------------------------
  # If not using a running servers we may need to stop and restart.
  # We restart in the case we have initiation scripts, server options