diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl index 568b44d2e59..fc32c56536f 100644 --- a/mysql-test/lib/mtr_cases.pl +++ b/mysql-test/lib/mtr_cases.pl @@ -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 { diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl index 88ddbf63d0f..92ce7437365 100644 --- a/mysql-test/lib/mtr_report.pl +++ b/mysql-test/lib/mtr_report.pl @@ -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"; diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 905a2b2af37..f56d66365c9 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -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