List:Commits« Previous MessageNext Message »
From:Bjorn Munch Date:September 30 2010 10:33am
Subject:bzr commit into mysql-5.1-mtr branch (bjorn.munch:2937) Bug#52828
View as plain text  
#At file:///home/bm136801/my/perlpath-51/ based on revid:bjorn.munch@stripped

 2937 Bjorn Munch	2010-09-30
      Bug #52828 Tests that use perl fail when perl is not in path
      Trying to run perl fails, just like it does when perl is started but fails
      Trap the case that perl was not found/could not be started, and skip test
      Also force a restart of servers since test may already have done something
      mtr now also appends path of current perl to PATH to aid mysqltest

    modified:
      client/mysqltest.cc
      mysql-test/mysql-test-run.pl
=== modified file 'client/mysqltest.cc'
--- a/client/mysqltest.cc	2010-09-29 10:56:10 +0000
+++ b/client/mysqltest.cc	2010-09-30 10:32:56 +0000
@@ -3853,7 +3853,18 @@ void do_perl(struct st_command *command)
     if (!error)
       my_delete(temp_file_path, MYF(0));
 
-    handle_command_error(command, WEXITSTATUS(error));
+    /* Check for error code that indicates perl could not be started */
+    int exstat= WEXITSTATUS(error);
+#ifdef __WIN__
+    if (exstat == 1)
+      /* Text must begin 'perl not found' as mtr looks for it */
+      abort_not_supported_test("perl not found in path or did not start");
+#else
+    if (exstat == 127)
+      abort_not_supported_test("perl not found in path");
+#endif
+    else
+      handle_command_error(command, exstat);
   }
   dynstr_free(&ds_delimiter);
   DBUG_VOID_RETURN;

=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl	2010-09-28 13:58:01 +0000
+++ b/mysql-test/mysql-test-run.pl	2010-09-30 10:32:56 +0000
@@ -2107,6 +2107,11 @@ sub environment_setup {
   # to detect that valgrind is being used from test cases
   $ENV{'VALGRIND_TEST'}= $opt_valgrind;
 
+  # Add dir of this perl to aid mysqltest in finding perl
+  my $perldir= dirname($^X);
+  my $pathsep= ":";
+  $pathsep= ";" if IS_WINDOWS && ! IS_CYGWIN;
+  $ENV{'PATH'}= "$ENV{'PATH'}".$pathsep.$perldir;
 }
 
 
@@ -3583,6 +3588,9 @@ sub run_testcase ($) {
 	# Try to get reason from test log file
 	find_testcase_skipped_reason($tinfo);
 	mtr_report_test_skipped($tinfo);
+	# Restart if skipped due to missing perl, it may have had side effects
+	stop_all_servers($opt_shutdown_timeout)
+	  if ($tinfo->{'comment'} =~ /^perl not found/);
       }
       elsif ( $res == 65 )
       {


Attachment: [text/bzr-bundle] bzr/bjorn.munch@oracle.com-20100930103256-vnpxyhmbyyfl37t5.bundle
Thread
bzr commit into mysql-5.1-mtr branch (bjorn.munch:2937) Bug#52828Bjorn Munch30 Sep