Return to bug60602.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / streams |
1.1 misho 1: --TEST-- 2: Bug #60602 proc_open() modifies environment if it contains arrays 3: --FILE-- 4: <?php 5: 6: $descs = array( 7: 0 => array('pipe', 'r'), // stdin 8: 1 => array('pipe', 'w'), // stdout 9: 2 => array('pipe', 'w'), // strerr 10: ); 11: 12: $environment = array('test' => array(1, 2, 3)); 13: 14: $cmd = (substr(PHP_OS, 0, 3) == 'WIN') ? 'dir' : 'ls'; 15: $p = proc_open($cmd, $descs, $pipes, '.', $environment); 16: 17: if (is_resource($p)) { 18: $data = ''; 19: 20: while (1) { 21: $w = $e = NULL; 22: $n = stream_select($pipes, $w, $e, 300); 23: 24: if ($n === false) { 25: echo "no streams \n"; 26: break; 27: } else if ($n === 0) { 28: echo "process timed out\n"; 29: proc_terminate($p, 9); 30: break; 31: } else if ($n > 0) { 32: $line = fread($pipes[1], 8192); 33: if (strlen($line) == 0) { 34: /* EOF */ 35: break; 36: } 37: $data .= $line; 38: } 39: } 40: var_dump(strlen($data)); 41: 42: $ret = proc_close($p); 43: var_dump($ret); 44: var_dump(is_array($environment['test'])); 45: } else { 46: echo "no process\n"; 47: } 48: ?> 49: ==DONE== 50: --EXPECTF-- 51: Notice: Array to string conversion in %s on line %d 52: 53: Notice: Array to string conversion in %s on line %d 54: int(%d) 55: int(0) 56: bool(true) 57: ==DONE==