|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #60280 stream_resolve_include_path does not resolved path when drive letter missing
Submitted: 2011-11-12 13:01 UTC Modified: -
From: pear at laurent-laville dot org Assigned:
Status: Open Package: Filesystem function related
PHP Version: 5.3.8 OS: Windows XP
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: pear at laurent-laville dot org
New email:
PHP Version: OS:


 [2011-11-12 13:01 UTC] pear at laurent-laville dot org
I've tested it under PHP 5.3.5 (I don't have the possibilty to test it under new PHP 5.3 version sorry).

While I run PHPUnit 3.5.15 with --bootstrap feature, I found a problem only with PHP 5.3, because PHPUnit implement if availale the stream_resolve_include_path function.

Here are my tests :

1. forgotten the drive letter (c:) on the path I given to PHPUnit --bootstrap 
With a Xdebug Trace I got a stream_resolve_include_path return FALSE

    1.1564     776408               -> PHPUnit_Util_Filesystem::fileExistsInIncludePath($file = '\\UwAmp\\www\\TODO\\PHP_Reflect_NS\\PHP\\Reflect\\Autoload.php') C:\UwAmp\bin\php\php-5.3.5\PEAR\PHPUnit\Util\Fileloader.php:75
    1.1565     776512                 -> function_exists('stream_resolve_include_path') C:\UwAmp\bin\php\php-5.3.5\PEAR\PHPUnit\Util\Filesystem.php:135
                                       >=> TRUE
    1.1566     776440                 -> stream_resolve_include_path('\\UwAmp\\www\\TODO\\PHP_Reflect_NS\\PHP\\Reflect\\Autoload.php') C:\UwAmp\bin\php\php-5.3.5\PEAR\PHPUnit\Util\Filesystem.php:136
                                       >=> FALSE
                                     >=> FALSE

2. do not forgot the drive letter (c:) on the path I given to PHPUnit --bootstrap

With a Xdebug Trace I got a stream_resolve_include_path return STRING

    1.1798     776416               -> PHPUnit_Util_Filesystem::fileExistsInIncludePath($file = 'c:\\UwAmp\\www\\TODO\\PHP_Reflect_NS\\PHP\\Reflect\\Autoload.php') C:\UwAmp\bin\php\php-5.3.5\PEAR\PHPUnit\Util\Fileloader.php:75
    1.1799     776520                 -> function_exists('stream_resolve_include_path') C:\UwAmp\bin\php\php-5.3.5\PEAR\PHPUnit\Util\Filesystem.php:135
                                       >=> TRUE
    1.1800     776448                 -> stream_resolve_include_path('c:\\UwAmp\\www\\TODO\\PHP_Reflect_NS\\PHP\\Reflect\\Autoload.php') C:\UwAmp\bin\php\php-5.3.5\PEAR\PHPUnit\Util\Filesystem.php:136
                                       >=> 'C:\\UwAmp\\www\\TODO\\PHP_Reflect_NS\\PHP\\Reflect\\Autoload.php'
                                     >=> 'C:\\UwAmp\\www\\TODO\\PHP_Reflect_NS\\PHP\\Reflect\\Autoload.php'

As drive letter is not required on all file system operation, I think there is a little problem on windows platform only !

Test script:

# case 1


# case 2

# RETURN C:\\UwAmp\\www\\TODO\\PHP_Reflect_NS\\PHP\\Reflect\\Autoload.php

Expected result:
Expect to return STRING on case 1

Actual result:
RETURN FALSE on case 1


Add a Patch

Pull Requests

Add a Pull Request

PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Wed Jul 15 08:01:25 2020 UTC