Fix cURL tests by implementing server script

Many cURL extension tests require an HTTP server to be running
with a specific PHP file available.

Travis will now run this script using the built-in HHVM web server.

I've add skip files so if the user doesn't have the required environment
variable set it will skip the tests, just like PHP does.

Closes #1487

Reviewed By: @ptarjan

Differential Revision: D1117179

Pulled By: @scannell
Esse commit está contido em:
Brandon Wamboldt
2014-01-23 13:12:25 -08:00
commit de Sara Golemon
commit b1090c3e04
83 arquivos alterados com 182 adições e 61 exclusões
+2 -1
Ver Arquivo
@@ -8,6 +8,7 @@ before_script:
# for some tests
- time sudo locale-gen de_DE && sudo locale-gen zh_CN.utf8 && sudo locale-gen fr_FR
- time HPHP_HOME=`pwd` make -j 6
- cd hphp/test/zend/good/ext/curl/tests/responder && ../../../../../../../hhvm/hhvm -m server -p 8444 &
# mysql configuration for unit-tests
- mysql -e 'CREATE DATABASE IF NOT EXISTS hhvm;'
- export PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=hhvm"
@@ -40,7 +41,7 @@ env:
- TEST_RUN_MODE="-m interp -r zend -I /^hphp\/test\/zend\/good\/(ext\/[a-ru-zA-Z0-9]|[Z]).*/"
- TEST_RUN_MODE="-m interp -r zend -E /^hphp\/test\/zend\/good\/(ext\/[a-ru-zA-Z0-9]|[Z]).*/"
script: time hphp/hhvm/hhvm hphp/test/run $TEST_RUN_MODE
script: time PHP_CURL_HTTP_REMOTE_SERVER="http://localhost:8444" hphp/hhvm/hhvm hphp/test/run $TEST_RUN_MODE
notifications:
email: false
+5 -1
Ver Arquivo
@@ -27,7 +27,11 @@ namespace HPHP {
Variant f_simplexml_import_dom(CObjRef node,
const String& class_name = "SimpleXMLElement");
Variant f_simplexml_load_string(const String& data, const String& class_name = "SimpleXMLElement", int64_t options = 0, const String& ns = "", bool is_prefix = false);
Variant f_simplexml_load_string(const String& data,
const String& class_name = "SimpleXMLElement",
int64_t options = 0,
const String& ns = "",
bool is_prefix = false);
Variant f_simplexml_load_file(const String& filename, const String& class_name = "SimpleXMLElement", int64_t options = 0, const String& ns = "", bool is_prefix = false);
Variant f_libxml_get_errors();
Variant f_libxml_get_last_error();
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -1 +1,2 @@
<?php if (!extension_loaded("curl")) print "skip"; ?>
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
@@ -1 +1,2 @@
<?php if (!extension_loaded("curl")) print "skip"; ?>
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -1 +1,2 @@
<?php if (!extension_loaded("curl")) exit("skip curl extension not loaded"); ?>
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -2,7 +2,7 @@
//CURL_MULTI_GETCONTENT TEST
//CREATE RESOURCES
$ch1=curl_init();
$ch1=curl_init();
$ch2=curl_init();
//SET URL AND OTHER OPTIONS
@@ -29,7 +29,7 @@
$results2=curl_multi_getcontent($ch2);
//CLOSE
curl_multi_remove_handle($mh,$ch1);
curl_multi_remove_handle($mh,$ch1);
curl_multi_remove_handle($mh,$ch2);
curl_multi_close($mh);
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,3 @@
<?php
if (!extension_loaded("curl")) exit("skip curl extension not loaded");
if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
@@ -0,0 +1,39 @@
<?php
$test = isset($_GET['test']) ? $_GET['test'] : null;
switch($test) {
case 'post':
var_dump($_POST);
break;
case 'getpost':
var_dump($_GET);
var_dump($_POST);
break;
case 'referer':
echo $_SERVER['HTTP_REFERER'];
break;
case 'useragent':
echo $_SERVER['HTTP_USER_AGENT'];
break;
case 'httpversion':
echo $_SERVER['SERVER_PROTOCOL'];
break;
case 'cookie':
echo $_COOKIE['foo'];
break;
case 'encoding':
echo $_SERVER['HTTP_ACCEPT_ENCODING'];
break;
case 'contenttype':
header('Content-Type: text/plain;charset=utf-8');
break;
case 'file':
if (isset($_FILES['file'])) {
echo $_FILES['file']['name'] . '|' . $_FILES['file']['type'];
}
break;
default:
echo "Hello World!\n";
echo "Hello World!";
break;
}
?>
@@ -0,0 +1 @@
always skip - not a test
+1
Ver Arquivo
@@ -423,6 +423,7 @@ other_files = (
'/ext/bz2/tests/004_1.txt.bz2',
'/ext/bz2/tests/004_2.txt.bz2',
'/ext/calendar/tests/skipif.inc',
'/ext/curl/tests/responder/get.php',
'/ext/curl/tests/curl_testdata1.txt',
'/ext/curl/tests/curl_testdata2.txt',
'/ext/date/tests/DateTime_data-absolute.inc',