com php-src: add tests for proc_open() and pipes: ext/standard/tests/general_functions/proc_open_pipes .inc
ext/standard/tests/general_functions/proc_open_p ipes1.phpt ext/standard/tests/general_functions/proc_ open_pipes2.phpt
ext/standard/tests/general_functions /proc_open_pipes3.phpt
| From: | Antony Dovgal | Date: | Fri, 29 May 2015 14:35:12 +0000 |
| Subject: | com php-src: add tests for proc_open() and pipes: ext/standard/tests/general_functions/proc_open_pipes .inc ext/standard/tests/general_functions/proc_open_p ipes1.phpt ext/standard/tests/general_functions/proc_ open_pipes2.phpt ext/standard/tests/general_functions /proc_open_pipes3.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-86995@lists.php.net to get a copy of this message | ||
Commit: 110a146b88e966616fb88c7d0f5c50d667e1b135
Author: Antony Dovgal <tony2001@php.net> Thu, 18 Dec 2014 16:02:49 +0300
Parents: ad60549958bf1dafdff79431d52af28385a39c9c
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=110a146b88e966616fb88c7d0f5c50d667e1b135
Log:
add tests for proc_open() and pipes
Changed paths:
A ext/standard/tests/general_functions/proc_open_pipes.inc
A ext/standard/tests/general_functions/proc_open_pipes1.phpt
A ext/standard/tests/general_functions/proc_open_pipes2.phpt
A ext/standard/tests/general_functions/proc_open_pipes3.phpt
Diff:
diff --git a/ext/standard/tests/general_functions/proc_open_pipes.inc
b/ext/standard/tests/general_functions/proc_open_pipes.inc
new file mode 100644
index 0000000..0d98946
--- /dev/null
+++ b/ext/standard/tests/general_functions/proc_open_pipes.inc
@@ -0,0 +1,22 @@
+<?php
+
+function create_sleep_script()
+{
+ $fname = dirname(__FILE__) . DIRECTORY_SEPARATOR . "proc_open_pipes_sleep.php";
+
+ if (!file_exists($fname)) {
+ file_put_contents($fname, "<?php\nsleep(1);\n");
+ }
+
+ return $fname;
+}
+
+function unlink_sleep_script()
+{
+ $fname = dirname(__FILE__) . DIRECTORY_SEPARATOR . "proc_open_pipes_sleep.php";
+
+ if (file_exists($fname)) {
+ unlink($fname);
+ }
+}
+
diff --git a/ext/standard/tests/general_functions/proc_open_pipes1.phpt
b/ext/standard/tests/general_functions/proc_open_pipes1.phpt
new file mode 100644
index 0000000..f6472e2
--- /dev/null
+++ b/ext/standard/tests/general_functions/proc_open_pipes1.phpt
@@ -0,0 +1,86 @@
+--TEST--
+proc_open() with > 16 pipes
+--FILE--
+<?php
+
+include dirname(__FILE__) . "/proc_open_pipes.inc";
+
+for ($i = 3; $i<= 30; $i++) {
+ $spec[$i] = array('pipe', 'w');
+}
+
+$php = getenv("TEST_PHP_EXECUTABLE");
+$callee = create_sleep_script();
+proc_open("$php $callee", $spec, $pipes);
+
+var_dump(count($spec));
+var_dump($pipes);
+
+?>
+--CLEAN--
+<?php
+include dirname(__FILE__) . "/proc_open_pipes.inc";
+
+unlink_sleep_script();
+
+?>
+--EXPECTF--
+int(28)
+array(28) {
+ [3]=>
+ resource(%d) of type (Unknown)
+ [4]=>
+ resource(%d) of type (Unknown)
+ [5]=>
+ resource(%d) of type (Unknown)
+ [6]=>
+ resource(%d) of type (Unknown)
+ [7]=>
+ resource(%d) of type (Unknown)
+ [8]=>
+ resource(%d) of type (Unknown)
+ [9]=>
+ resource(%d) of type (Unknown)
+ [10]=>
+ resource(%d) of type (Unknown)
+ [11]=>
+ resource(%d) of type (Unknown)
+ [12]=>
+ resource(%d) of type (Unknown)
+ [13]=>
+ resource(%d) of type (Unknown)
+ [14]=>
+ resource(%d) of type (Unknown)
+ [15]=>
+ resource(%d) of type (Unknown)
+ [16]=>
+ resource(%d) of type (Unknown)
+ [17]=>
+ resource(%d) of type (Unknown)
+ [18]=>
+ resource(%d) of type (Unknown)
+ [19]=>
+ resource(%d) of type (Unknown)
+ [20]=>
+ resource(%d) of type (Unknown)
+ [21]=>
+ resource(%d) of type (Unknown)
+ [22]=>
+ resource(%d) of type (Unknown)
+ [23]=>
+ resource(%d) of type (Unknown)
+ [24]=>
+ resource(%d) of type (Unknown)
+ [25]=>
+ resource(%d) of type (Unknown)
+ [26]=>
+ resource(%d) of type (Unknown)
+ [27]=>
+ resource(%d) of type (Unknown)
+ [28]=>
+ resource(%d) of type (Unknown)
+ [29]=>
+ resource(%d) of type (Unknown)
+ [30]=>
+ resource(%d) of type (Unknown)
+}
diff --git a/ext/standard/tests/general_functions/proc_open_pipes2.phpt
b/ext/standard/tests/general_functions/proc_open_pipes2.phpt
new file mode 100644
index 0000000..b07a19e
--- /dev/null
+++ b/ext/standard/tests/general_functions/proc_open_pipes2.phpt
@@ -0,0 +1,28 @@
+--TEST--
+proc_open() with no pipes
+--FILE--
+<?php
+
+include dirname(__FILE__) . "/proc_open_pipes.inc";
+
+$spec = array();
+
+$php = getenv("TEST_PHP_EXECUTABLE");
+$callee = create_sleep_script();
+proc_open("$php $callee", $spec, $pipes);
+
+var_dump(count($spec));
+var_dump($pipes);
+
+?>
+--CLEAN--
+<?php
+include dirname(__FILE__) . "/proc_open_pipes.inc";
+
+unlink_sleep_script();
+
+?>
+--EXPECTF--
+int(0)
+array(0) {
+}
diff --git a/ext/standard/tests/general_functions/proc_open_pipes3.phpt
b/ext/standard/tests/general_functions/proc_open_pipes3.phpt
new file mode 100644
index 0000000..2ddcd27
--- /dev/null
+++ b/ext/standard/tests/general_functions/proc_open_pipes3.phpt
@@ -0,0 +1,64 @@
+--TEST--
+proc_open() with invalid pipes
+--FILE--
+<?php
+
+include dirname(__FILE__) . "/proc_open_pipes..inc";
+
+for ($i = 3; $i<= 5; $i++) {
+ $spec[$i] = array('pipe', 'w');
+}
+
+$php = getenv("TEST_PHP_EXECUTABLE");
+$callee = create_sleep_script();
+
+$spec[$i] = array('pi');
+proc_open("$php $callee", $spec, $pipes);
+
+$spec[$i] = 1;
+proc_open("$php $callee", $spec, $pipes);
+
+$spec[$i] = array('pipe', "test");
+proc_open("$php $callee", $spec, $pipes);
+var_dump($pipes);
+
+$spec[$i] = array('file', "test", "z");
+proc_open("$php $callee", $spec, $pipes);
+var_dump($pipes);
+
+echo "END\n";
+?>
+--CLEAN--
+<?php
+include dirname(__FILE__) . "/proc_open_pipes.inc";
+
+unlink_sleep_script();
+
+?>
+--EXPECTF--
+Warning: proc_open(): pi is not a valid descriptor spec/mode in %s on line %d
+
+Warning: proc_open(): Descriptor item must be either an array or a File-Handle in %s on line %d
+array(4) {
+ [3]=>
+ resource(%d) of type (Unknown)
+ [4]=>
+ resource(%d) of type (Unknown)
+ [5]=>
+ resource(%d) of type (Unknown)
+ [6]=>
+ resource(%d) of type (Unknown)
+}
+
+Warning: proc_open(test): failed to open stream: %s in %s on line %d
+array(4) {
+ [3]=>
+ resource(%d) of type (Unknown)
+ [4]=>
+ resource(%d) of type (Unknown)
+ [5]=>
+ resource(%d) of type (Unknown)
+ [6]=>
+ resource(%d) of type (Unknown)
+}
+END