Merge remote-tracking branch 'bantu/task/fix-test-autoloader'

* bantu/task/fix-test-autoloader:
  [task/fix-test-autoloader] Fix autoloader to support failing/erroring tests.
This commit is contained in:
Andreas Fischer 2013-01-04 13:58:25 +01:00
commit d029b96148

View File

@ -9,14 +9,34 @@
// class files of phpseclib require() other dependencies. // class files of phpseclib require() other dependencies.
set_include_path(implode(PATH_SEPARATOR, array( set_include_path(implode(PATH_SEPARATOR, array(
dirname(__FILE__) . '/../phpseclib/', dirname(__FILE__) . '/../phpseclib/',
dirname(__FILE__) . '/',
get_include_path(), get_include_path(),
))); )));
function phpseclib_is_includable($suffix)
{
foreach (explode(PATH_SEPARATOR, get_include_path()) as $prefix)
{
$ds = substr($prefix, -1) == DIRECTORY_SEPARATOR ? '' : DIRECTORY_SEPARATOR;
$file = $prefix . $ds . $suffix;
if (file_exists($file))
{
return true;
}
}
return false;
}
function phpseclib_autoload($class) function phpseclib_autoload($class)
{ {
$file = str_replace('_', '/', $class) . '.php'; $file = str_replace('_', '/', $class) . '.php';
if (phpseclib_is_includable($file))
{
require $file; require $file;
}
} }
spl_autoload_register('phpseclib_autoload'); spl_autoload_register('phpseclib_autoload');