Skip to content

Commit

Permalink
- Patch #311160 by moshe weitzman and Damien Tournoud: enhance run-te…
Browse files Browse the repository at this point in the history
…sts.sh by automatically picking up the PHP interpreter.
  • Loading branch information
dries committed Sep 23, 2008
1 parent 0c61466 commit ba21040
Showing 1 changed file with 22 additions and 3 deletions.
25 changes: 22 additions & 3 deletions scripts/run-tests.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php
// $Id: run-tests.sh,v 1.9 2008-09-20 20:22:25 webchick Exp $
// $Id: run-tests.sh,v 1.10 2008-09-23 10:55:27 dries Exp $
/**
* @file
* This script runs Drupal tests from command line.
Expand Down Expand Up @@ -111,6 +111,8 @@ All arguments are long options.
--url Immediately preceeds a URL to set the host and path. You will
need this parameter if Drupal is in a subdirectory on your
localhost and you have not set \$base_url in settings.php.

--php The absolute path to the PHP executable. Usually not needed.

--concurrency [num]

Expand Down Expand Up @@ -160,6 +162,7 @@ function simpletest_script_parse_args() {
'list' => FALSE,
'clean' => FALSE,
'url' => '',
'php' => NULL,
'concurrency' => 1,
'all' => FALSE,
'class' => FALSE,
Expand Down Expand Up @@ -225,7 +228,23 @@ function simpletest_script_init() {

$host = 'localhost';
$path = '';
$php = "/usr/bin/php"; // TODO Get dynamically if possible.
// Determine location of php command automatically, unless a comamnd line argument is supplied.
if (isset($args['php'])) {
$php = $args['php'];
}
elseif (isset($_ENV['_'])) {
// '_' is an environment variable set by the shell. It contains the command that was executed.
$php = $_ENV['_'];
}
elseif (isset($_ENV['SUDO_COMMAND'])) {
// 'SUDO_COMMAND' is an environment variable set by the sudo program.
// Extract only the PHP interpreter, not the rest of the command.
list($php, ) = explode(' ', $_ENV['SUDO_COMMAND'], 2);
}
else {
simpletest_script_print_error('Unable to automatically determine the path to the PHP interpreter. Please supply the --php command line argument.');
exit();
}

// Get url from arguments.
if (!empty($args['url'])) {
Expand Down Expand Up @@ -338,7 +357,7 @@ function simpletest_script_command($concurrency, $test_id, $tests) {
if ($args['color']) {
$command .= ' --color';
}
$command .= " --concurrency $concurrency --test-id $test_id --execute-batch $tests";
$command .= " --php " . escapeshellarg($php) . " --concurrency $concurrency --test-id $test_id --execute-batch $tests";
passthru($command);
}

Expand Down

0 comments on commit ba21040

Please sign in to comment.