MDL-34147 use cygwin style paths in phpunit hints
authorPetr Škoda <commits@skodak.org>
Tue, 3 Jul 2012 15:57:27 +0000 (17:57 +0200)
committerPetr Škoda <commits@skodak.org>
Fri, 6 Jul 2012 05:59:04 +0000 (07:59 +0200)
admin/tool/phpunit/cli/util.php
lib/phpunit/bootstraplib.php
lib/phpunit/classes/hint_resultprinter.php

index 1a8cea7..2986d64 100644 (file)
@@ -123,7 +123,7 @@ Options:
 -h, --help     Print out this help
 
 Example:
 -h, --help     Print out this help
 
 Example:
-\$/usr/bin/php lib/phpunit/tool.php --install
+\$ php ".phpunit_bootstrap_cli_argument_path('/admin/tool/phpunit/cli/util.php')." --install
 ";
     echo $help;
     exit(0);
 ";
     echo $help;
     exit(0);
index d28de8d..bc74dc9 100644 (file)
@@ -101,7 +101,11 @@ function phpunit_bootstrap_cli_argument_path($moodlepath) {
     $path = realpath($CFG->dirroot.$moodlepath);
 
     if (strpos($path, $cwd) === 0) {
     $path = realpath($CFG->dirroot.$moodlepath);
 
     if (strpos($path, $cwd) === 0) {
-        return substr($path, strlen($cwd));
+        $path = substr($path, strlen($cwd));
+    }
+
+    if (phpunit_bootstrap_is_cygwin()) {
+        $path = str_replace('\\', '/', $path);
     }
 
     return $path;
     }
 
     return $path;
@@ -140,3 +144,14 @@ function phpunit_boostrap_fix_file_permissions($file) {
 
     return true;
 }
 
     return true;
 }
+
+/**
+ * Find out if running under Cygwin on Windows.
+ * @return bool
+ */
+function phpunit_bootstrap_is_cygwin() {
+    if (empty($_SERVER['SHELL']) or empty($_SERVER['OS'])) {
+        return false;
+    }
+    return ($_SERVER['OS'] === 'Windows_NT' and $_SERVER['SHELL'] === '/bin/bash');
+}
index 638b4d0..9e46811 100644 (file)
@@ -74,6 +74,12 @@ class Hint_ResultPrinter extends PHPUnit_TextUI_ResultPrinter {
             $file = substr($file, strlen($cwd)+1);
         }
 
             $file = substr($file, strlen($cwd)+1);
         }
 
-        $this->write("\nTo re-run:\n phpunit $testName $file\n");
+        $executable = 'phpunit';
+        if (phpunit_bootstrap_is_cygwin()) {
+            $file = str_replace('\\', '/', $file);
+            $executable = 'phpunit.bat';
+        }
+
+        $this->write("\nTo re-run:\n $executable $testName $file\n");
     }
 }
     }
 }