cataphract Sat, 11 Dec 2010 02:08:02 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=306216
Log: - Tests and small parsing correction for php://fd wrapper Changed paths: U php/php-src/branches/PHP_5_3/ext/standard/php_fopen_wrapper.c A php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_01.phpt A php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_02.phpt A php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_03.phpt A php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_04.phpt U php/php-src/trunk/ext/standard/php_fopen_wrapper.c A php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_01.phpt A php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_02.phpt A php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_03.phpt A php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_04.phpt Modified: php/php-src/branches/PHP_5_3/ext/standard/php_fopen_wrapper.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/php_fopen_wrapper.c 2010-12-11 01:52:13 UTC (rev 306215) +++ php/php-src/branches/PHP_5_3/ext/standard/php_fopen_wrapper.c 2010-12-11 02:08:02 UTC (rev 306216) @@ -265,7 +265,7 @@ start = &path[3]; fildes_ori = strtol(start, &end, 10); - if (end == start || (*end != '\0' && *end != '/')) { + if (end == start || *end != '\0') { php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "php://fd/ stream must be specified in the form php://fd/<orig fd>"); return NULL; Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_01.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_01.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_01.phpt 2010-12-11 02:08:02 UTC (rev 306216) @@ -0,0 +1,11 @@ +--TEST-- +php://fd wrapper: basic test +--FILE-- +<?php +$f = fopen("php://fd/1", "wb"); +fwrite($f, "hi!"); + +echo "\nDone.\n"; +--EXPECT-- +hi! +Done. Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_02.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_02.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_02.phpt 2010-12-11 02:08:02 UTC (rev 306216) @@ -0,0 +1,11 @@ +--TEST-- +php://fd wrapper: mode is ignored +--FILE-- +<?php +$f = fopen("php://fd/1", "rkkk"); +fwrite($f, "hi!"); + +echo "\nDone.\n"; +--EXPECT-- +hi! +Done. Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_03.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_03.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_03.phpt 2010-12-11 02:08:02 UTC (rev 306216) @@ -0,0 +1,22 @@ +--TEST-- +php://fd wrapper: bad syntax +--FILE-- +<?php +fopen("php://fd", "w"); +fopen("php://fd/", "w"); +fopen("php://fd/-2", "w"); +fopen("php://fd/1/", "w"); + +echo "\nDone.\n"; +--EXPECTF-- +Warning: fopen(): Invalid php:// URL specified in %s on line %d + +Warning: fopen(php://fd): failed to open stream: operation failed in %s on line 2 + +Warning: fopen(php://fd/): failed to open stream: php://fd/ stream must be specified in the form php://fd/<orig fd> in %s on line %d + +Warning: fopen(php://fd/-2): failed to open stream: The file descriptors must be non-negative numbers smaller than %d in %s on line %d + +Warning: fopen(php://fd/1/): failed to open stream: php://fd/ stream must be specified in the form php://fd/<orig fd> in %s on line %d + +Done. Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_04.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_04.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/php_fd_wrapper_04.phpt 2010-12-11 02:08:02 UTC (rev 306216) @@ -0,0 +1,20 @@ +--TEST-- +php://fd wrapper: invalid file descriptor +--SKIPIF-- +<?php include('skipif.inc'); +if(substr(PHP_OS, 0, 3) == "WIN") + die("skip Not for Windows"); + +//we'd need a release and a test variation for windows, because in debug builds we get this message: +//Warning: Invalid parameter detected in CRT function '_dup' (f:\dd\vctools\crt_bld\self_x86\crt\src\dup.c:52) +//I greped the CRT sources and found no function capable of validating a file descriptor + +--FILE-- +<?php +fopen("php://fd/12", "w"); + +echo "\nDone.\n"; +--EXPECTF-- +Warning: fopen(php://fd/12): failed to open stream: Error duping file descriptor 12; possibly it doesn't exist: [9]: %s in %s on line %d + +Done. Modified: php/php-src/trunk/ext/standard/php_fopen_wrapper.c =================================================================== --- php/php-src/trunk/ext/standard/php_fopen_wrapper.c 2010-12-11 01:52:13 UTC (rev 306215) +++ php/php-src/trunk/ext/standard/php_fopen_wrapper.c 2010-12-11 02:08:02 UTC (rev 306216) @@ -265,7 +265,7 @@ start = &path[3]; fildes_ori = strtol(start, &end, 10); - if (end == start || (*end != '\0' && *end != '/')) { + if (end == start || *end != '\0') { php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "php://fd/ stream must be specified in the form php://fd/<orig fd>"); return NULL; Added: php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_01.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_01.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_01.phpt 2010-12-11 02:08:02 UTC (rev 306216) @@ -0,0 +1,11 @@ +--TEST-- +php://fd wrapper: basic test +--FILE-- +<?php +$f = fopen("php://fd/1", "wb"); +fwrite($f, "hi!"); + +echo "\nDone.\n"; +--EXPECT-- +hi! +Done. Added: php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_02.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_02.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_02.phpt 2010-12-11 02:08:02 UTC (rev 306216) @@ -0,0 +1,11 @@ +--TEST-- +php://fd wrapper: mode is ignored +--FILE-- +<?php +$f = fopen("php://fd/1", "rkkk"); +fwrite($f, "hi!"); + +echo "\nDone.\n"; +--EXPECT-- +hi! +Done. Added: php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_03.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_03.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_03.phpt 2010-12-11 02:08:02 UTC (rev 306216) @@ -0,0 +1,22 @@ +--TEST-- +php://fd wrapper: bad syntax +--FILE-- +<?php +fopen("php://fd", "w"); +fopen("php://fd/", "w"); +fopen("php://fd/-2", "w"); +fopen("php://fd/1/", "w"); + +echo "\nDone.\n"; +--EXPECTF-- +Warning: fopen(): Invalid php:// URL specified in %s on line %d + +Warning: fopen(php://fd): failed to open stream: operation failed in %s on line 2 + +Warning: fopen(php://fd/): failed to open stream: php://fd/ stream must be specified in the form php://fd/<orig fd> in %s on line %d + +Warning: fopen(php://fd/-2): failed to open stream: The file descriptors must be non-negative numbers smaller than %d in %s on line %d + +Warning: fopen(php://fd/1/): failed to open stream: php://fd/ stream must be specified in the form php://fd/<orig fd> in %s on line %d + +Done. Added: php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_04.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_04.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/file/php_fd_wrapper_04.phpt 2010-12-11 02:08:02 UTC (rev 306216) @@ -0,0 +1,20 @@ +--TEST-- +php://fd wrapper: invalid file descriptor +--SKIPIF-- +<?php include('skipif.inc'); +if(substr(PHP_OS, 0, 3) == "WIN") + die("skip Not for Windows"); + +//we'd need a release and a test variation for windows, because in debug builds we get this message: +//Warning: Invalid parameter detected in CRT function '_dup' (f:\dd\vctools\crt_bld\self_x86\crt\src\dup.c:52) +//I greped the CRT sources and found no function capable of validating a file descriptor + +--FILE-- +<?php +fopen("php://fd/12", "w"); + +echo "\nDone.\n"; +--EXPECTF-- +Warning: fopen(php://fd/12): failed to open stream: Error duping file descriptor 12; possibly it doesn't exist: [9]: %s in %s on line %d + +Done.
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php