#!/usr/bin/env php $v) { if (preg_match('/^(CRM_|api_v3_|EnvTest|WebTest_|E2E_)/', $v)) { $argv[$k] = 'tests/phpunit/' . strtr($v, '_', '/') . '.php'; } elseif (preg_match('/^Civi\\\\/', $v)) { $argv[$k] = 'tests/phpunit/' . strtr($v, '\\', '/') . '.php'; } if (preg_match('/^(WebTest|E2E)/', $v)) { $CIVICRM_UF=''; } } putenv("CIVICRM_UF=$CIVICRM_UF"); // Transition: Make sure we use phpunit code from PATH, not // civicrm-packages. This will be unnecessary once civicrm-packages is // updated. if (is_dir('packages/PHPUnit/')) { if (!rename('packages/PHPUnit', 'packages/PHPUnit.bak')) { echo "Failed to move aside stale copy of PHPUnit.\n"; exit(1); } } $cmd = findPhp() // In case this system has multiple copies of PHP, use the active/preferred one. // . ' -ddisplay_errors=1' . ' ' . escapeshellarg($phpunit) . ' ' . implode(' ', array_map('escapeshellarg', $argv)); passthru($cmd); function findPhp() { if (defined('PHP_BINARY')) { return PHP_BINARY; // php 5.4+ } elseif (defined('PHP_BINDIR') && file_exists(PHP_BINDIR . '/php')) { return PHP_BINDIR . '/php'; // php 5.3 } else { die("Failed to determine active PHP version."); } } function findCommand($name) { $paths = explode(PATH_SEPARATOR, getenv('PATH')); foreach ($paths as $path) { if (file_exists("$path/$name")) { return "$path/$name"; } } return NULL; }