summaryrefslogtreecommitdiff
path: root/ext/curl
diff options
context:
space:
mode:
authorMitch Hagstrand <mhagstrand@gmail.com>2016-12-23 12:07:47 -0800
committerNikita Popov <nikic@php.net>2016-12-27 21:52:05 +0100
commit2d51267c07123d96353bce9b7c84b26d920674f7 (patch)
treea5ef0add3f832f0ded6851f5d9692253aa02e088 /ext/curl
parent92678d1a83656acccee9be760ebdf90f97750dc2 (diff)
downloadphp-git-2d51267c07123d96353bce9b7c84b26d920674f7.tar.gz
Makes the sapi web server and curl tests more reliable
1. Increased the time for the sapi/cli/tests/php_cli_server.inc to accept connections. 2. sapi/cli/tests/php_cli_server.inc has errors messages and a `stop` function. 3. bug67429.phpt uses the `stop` function to shutdown the webserver before starting a new one. 4. Removed ext/curl/tests/bug48203_multi-win32.phpt test now that ext/curl/tests/bug48203_multi.phpt runs on Windows also.
Diffstat (limited to 'ext/curl')
-rw-r--r--ext/curl/tests/bug48203_multi-win32.phpt89
-rw-r--r--ext/curl/tests/bug48203_multi.phpt30
-rw-r--r--ext/curl/tests/server.inc4
3 files changed, 18 insertions, 105 deletions
diff --git a/ext/curl/tests/bug48203_multi-win32.phpt b/ext/curl/tests/bug48203_multi-win32.phpt
deleted file mode 100644
index 9016725080..0000000000
--- a/ext/curl/tests/bug48203_multi-win32.phpt
+++ /dev/null
@@ -1,89 +0,0 @@
---TEST--
-Variation of bug #48203 with curl_multi_exec (Crash when file pointers passed to curl are closed before calling curl_multi_exec)
---SKIPIF--
-<?php
-include 'skipif.inc';
-if(substr(PHP_OS, 0, 3) != 'WIN' ) {
- die('skip Windows only test');
-}
-?>
---FILE--
-<?php
-include 'server.inc';
-function checkForClosedFilePointer($curl_option, $description) {
- $fp = fopen(dirname(__FILE__) . '/bug48203.tmp', 'w');
-
- $ch1 = curl_init();
- $ch2 = curl_init();
-
- $options = array(
- CURLOPT_RETURNTRANSFER => 1,
- $curl_option => $fp,
- CURLOPT_URL => curl_cli_server_start()
- );
-
- // we also need to set CURLOPT_VERBOSE to test CURLOPT_STDERR properly
- if (CURLOPT_STDERR == $curl_option) {
- $options[CURLOPT_VERBOSE] = 1;
- }
-
- if (CURLOPT_INFILE == $curl_option) {
- $options[CURLOPT_UPLOAD] = 1;
- }
-
- curl_setopt_array($ch1, $options);
- curl_setopt_array($ch2, $options);
-
- fclose($fp); // <-- premature close of $fp caused a crash!
-
- $mh = curl_multi_init();
-
- curl_multi_add_handle($mh, $ch1);
- curl_multi_add_handle($mh, $ch2);
-
- $active = 0;
- do {
- curl_multi_exec($mh, $active);
- } while ($active > 0);
-
- curl_multi_remove_handle($mh, $ch1);
- curl_multi_remove_handle($mh, $ch2);
- curl_multi_close($mh);
-
- echo "Ok for $description\n";
-}
-
-$options_to_check = array(
- "CURLOPT_STDERR", "CURLOPT_WRITEHEADER", "CURLOPT_FILE", "CURLOPT_INFILE"
-);
-
-foreach($options_to_check as $option) {
- checkForClosedFilePointer(constant($option), $option);
-}
-
-?>
---CLEAN--
-<?php @unlink(dirname(__FILE__) . '/bug48203.tmp'); ?>
---EXPECTF--
-Warning: curl_multi_exec(): CURLOPT_STDERR resource has gone away, resetting to stderr in %s on line %d
-
-Warning: curl_multi_exec(): CURLOPT_STDERR resource has gone away, resetting to stderr in %s on line %d
-Ok for CURLOPT_STDERR
-%A
-
-Warning: curl_multi_exec(): CURLOPT_WRITEHEADER resource has gone away, resetting to default in %s on line %d
-
-Warning: curl_multi_exec(): CURLOPT_WRITEHEADER resource has gone away, resetting to default in %s on line %d
-Ok for CURLOPT_WRITEHEADER
-
-Warning: curl_multi_exec(): CURLOPT_FILE resource has gone away, resetting to default in %s on line %d
-
-Warning: curl_multi_exec(): CURLOPT_FILE resource has gone away, resetting to default in %s on line %d
-Hello World!
-Hello World!Hello World!
-Hello World!Ok for CURLOPT_FILE
-
-Warning: curl_multi_exec(): CURLOPT_INFILE resource has gone away, resetting to default in %s on line %d
-
-Warning: curl_multi_exec(): CURLOPT_INFILE resource has gone away, resetting to default in %s on line %d
-Ok for CURLOPT_INFILE
diff --git a/ext/curl/tests/bug48203_multi.phpt b/ext/curl/tests/bug48203_multi.phpt
index ed09ed02ce..5f9e2ba6b2 100644
--- a/ext/curl/tests/bug48203_multi.phpt
+++ b/ext/curl/tests/bug48203_multi.phpt
@@ -3,9 +3,6 @@ Variation of bug #48203 with curl_multi_exec (Crash when file pointers passed to
--SKIPIF--
<?php
include 'skipif.inc';
-if(substr(PHP_OS, 0, 3) == 'WIN' ) {
- die('skip not for Windows');
-}
?>
--FILE--
<?php
@@ -50,6 +47,10 @@ function checkForClosedFilePointer($target_url, $curl_option, $description) {
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
+ // Force curl to output results
+ fflush(STDERR);
+ fflush(STDOUT);
+
echo "Ok for $description\n";
}
@@ -66,24 +67,25 @@ foreach($options_to_check as $option) {
--CLEAN--
<?php @unlink(dirname(__FILE__) . '/bug48203.tmp'); ?>
--EXPECTF--
-Warning: curl_multi_exec(): CURLOPT_STDERR resource has gone away, resetting to stderr in %sbug48203_multi.php on line 36
+Warning: curl_multi_exec(): CURLOPT_STDERR resource has gone away, resetting to stderr in %s on line %d
-Warning: curl_multi_exec(): CURLOPT_STDERR resource has gone away, resetting to stderr in %sbug48203_multi.php on line 36
+Warning: curl_multi_exec(): CURLOPT_STDERR resource has gone away, resetting to stderr in %s on line %d
%A
Ok for CURLOPT_STDERR
-%A
-Warning: curl_multi_exec(): CURLOPT_WRITEHEADER resource has gone away, resetting to default in %sbug48203_multi.php on line 36
-Warning: curl_multi_exec(): CURLOPT_WRITEHEADER resource has gone away, resetting to default in %sbug48203_multi.php on line 36
+Warning: curl_multi_exec(): CURLOPT_WRITEHEADER resource has gone away, resetting to default in %s on line %d
+
+Warning: curl_multi_exec(): CURLOPT_WRITEHEADER resource has gone away, resetting to default in %s on line %d
Ok for CURLOPT_WRITEHEADER
-Warning: curl_multi_exec(): CURLOPT_FILE resource has gone away, resetting to default in %sbug48203_multi.php on line 36
+Warning: curl_multi_exec(): CURLOPT_FILE resource has gone away, resetting to default in %s on line %d
-Warning: curl_multi_exec(): CURLOPT_FILE resource has gone away, resetting to default in %sbug48203_multi.php on line 36
-%AOk for CURLOPT_FILE
+Warning: curl_multi_exec(): CURLOPT_FILE resource has gone away, resetting to default in %s on line %d
+Hello World!
+Hello World!Hello World!
+Hello World!Ok for CURLOPT_FILE
-Warning: curl_multi_exec(): CURLOPT_INFILE resource has gone away, resetting to default in %sbug48203_multi.php on line 36
+Warning: curl_multi_exec(): CURLOPT_INFILE resource has gone away, resetting to default in %s on line %d
-Warning: curl_multi_exec(): CURLOPT_INFILE resource has gone away, resetting to default in %sbug48203_multi.php on line 36
+Warning: curl_multi_exec(): CURLOPT_INFILE resource has gone away, resetting to default in %s on line %d
Ok for CURLOPT_INFILE
-
diff --git a/ext/curl/tests/server.inc b/ext/curl/tests/server.inc
index 62f9a2d30c..315fd68cc4 100644
--- a/ext/curl/tests/server.inc
+++ b/ext/curl/tests/server.inc
@@ -56,7 +56,7 @@ function curl_cli_server_start() {
if ($error) {
echo $error;
- proc_close($handle);
+ proc_terminate($handle);
exit(1);
}
@@ -65,7 +65,7 @@ function curl_cli_server_start() {
proc_terminate($handle);
},
$handle
- );
+ );
return PHP_CURL_SERVER_ADDRESS;
}