mirror of
https://github.com/php/php-src.git
synced 2026-04-22 15:38:49 +02:00
d679f02295
This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines in all *.phpt sections. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
74 lines
2.0 KiB
PHP
74 lines
2.0 KiB
PHP
--TEST--
|
|
Test popen() and pclose function: basic functionality
|
|
--SKIPIF--
|
|
<?php
|
|
if(substr(PHP_OS, 0, 3) != 'WIN' )
|
|
die("skip Not Valid for Linux");
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
/*
|
|
* Prototype: resource popen ( string command, string mode )
|
|
* Description: Opens process file pointer.
|
|
|
|
* Prototype: int pclose ( resource handle );
|
|
* Description: Closes process file pointer.
|
|
*/
|
|
|
|
echo "*** Testing popen(): reading from the pipe ***\n";
|
|
|
|
$file_path = dirname(__FILE__);
|
|
|
|
$string = "Sample String";
|
|
$file_handle = popen(" echo $string", "r");
|
|
fpassthru($file_handle);
|
|
pclose($file_handle);
|
|
|
|
echo "*** Testing popen(): writing to the pipe ***\n";
|
|
$arr = array("ggg", "ddd", "aaa", "sss");
|
|
// popen("sort", "w") fails if variables_order="GPCS"
|
|
// this is set in the default INI file
|
|
// it doesn't seem to be changeable in the --INI-- section
|
|
// also, doing: ini_set('variables_order', ''); doesn't work!
|
|
//
|
|
// the only solution is to either put the absolute path here, or
|
|
// remove variables_order= from PHP.ini (setting it in run-test's
|
|
// default INI will fail too)
|
|
//
|
|
// since we can't depend on PHP.ini being set a certain way,
|
|
// have to put the absolute path here.
|
|
|
|
$sysroot = exec('echo %SYSTEMROOT%');
|
|
|
|
$file_handle = popen("$sysroot/system32/sort", "w");
|
|
$newline = "\n";
|
|
foreach($arr as $str) {
|
|
fwrite($file_handle, (binary)$str);
|
|
fwrite($file_handle, (binary)(binary)(binary)(binary)(binary)(binary)(binary)(binary)(binary)$newline);
|
|
}
|
|
pclose($file_handle);
|
|
|
|
echo "*** Testing popen() and pclose(): return type ***\n";
|
|
$return_value_popen = popen("echo $string", "r");
|
|
fpassthru($return_value_popen);
|
|
var_dump( is_resource($return_value_popen) );
|
|
$return_value_pclose = pclose($return_value_popen);
|
|
var_dump( is_int($return_value_pclose) );
|
|
|
|
echo "\n--- Done ---";
|
|
?>
|
|
--EXPECT--
|
|
*** Testing popen(): reading from the pipe ***
|
|
Sample String
|
|
*** Testing popen(): writing to the pipe ***
|
|
aaa
|
|
ddd
|
|
ggg
|
|
sss
|
|
*** Testing popen() and pclose(): return type ***
|
|
Sample String
|
|
bool(true)
|
|
bool(true)
|
|
|
|
--- Done ---
|