Commit 32926414 authored by unknown's avatar unknown

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
......@@ -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
{
......
......@@ -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";
......
......@@ -1396,7 +1396,6 @@ sub ndbcluster_install () {
"--initial"],
"", "", "", "") )
{
mtr_error("Error ndbcluster_install");
return 1;
}
......@@ -1603,9 +1602,19 @@ sub mysql_install_db () {
if ( ndbcluster_install() )
{
# failed to install, disable usage but flag that its no ok
$opt_with_ndbcluster= 0;
$flag_ndb_status_ok= 0;
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
......
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