PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Testing » PHPUnit » Bug #5341

GUI SetupDecorator fails under symlinked directory

Details

Submitted2005-09-08 16:52 UTC
Fromjbyers at jbyers dot com
StatusClosed
PackagePHPUnit
PHP Version4.3.10
OSLinux
Roadmaps(Not assigned)

Comments

[2005-09-08 16:52 UTC] jbyers at jbyers dot com

Description:
------------
In PHPUnit 1.3.0, PHPUnit_GUI_SetupDecorator::getSuitesFromDir fails to load tests contained in a path under a symlink. The call to _getFiles on SetupDecorator.php line 99 calls realpath on $rootDir but not on $dir. _getFiles is then unable to strip rootDir from the file paths to construct class names.

For example:

/1/2
/1/symlink -> 2
/1/2/3
/1/2/3/TestOne.php
/1/2/3/TestTwo.php

If getSuitesFromDir is called with $dir as /1/symlink/3, _getFiles will attempt to strip /1/2 from the path.

Patch below adding realpath() call to make both paths match.

Test script:
---------------
Index: SetupDecorator.php
===================================================================
--- SetupDecorator.php (revision 2046)
+++ SetupDecorator.php (working copy)
@@ -96,7 +96,7 @@
$dir = substr($dir, 0, -1);
}

- $files = $this->_getFiles($dir, $filenamePattern, $exclude, realpath($dir . '/..'));
+ $files = $this->_getFiles(realpath($dir), $filenamePattern, $exclude, realpath($dir . '/..'));
asort($files);

foreach ($files as $className => $aFile) {