MDL-50611 testing: Extra http status code checking
This commit is contained in:
@@ -46,7 +46,7 @@ $output = null;
|
||||
exec("php util.php --diag", $output, $code);
|
||||
|
||||
// Ensure we have composer installed, before we install or re-install test site.
|
||||
if ($code == BEHAT_EXITCODE_COMPOSER || $code == BEHAT_EXITCODE_INSTALL || $code == BEHAT_EXITCODE_REINSTALL) {
|
||||
if ($code == TESTING_EXITCODE_COMPOSER || $code == BEHAT_EXITCODE_INSTALL || $code == BEHAT_EXITCODE_REINSTALL) {
|
||||
testing_update_composer_dependencies();
|
||||
chdir(__DIR__);
|
||||
exec("php util.php --diag", $output, $code);
|
||||
|
||||
+2
-1
@@ -38,6 +38,7 @@ define('BEHAT_EXITCODE_REQUIREMENT', 251);
|
||||
define('BEHAT_EXITCODE_PERMISSIONS', 252);
|
||||
define('BEHAT_EXITCODE_REINSTALL', 253);
|
||||
define('BEHAT_EXITCODE_INSTALL', 254);
|
||||
define('BEHAT_EXITCODE_COMPOSER', 255);
|
||||
define('BEHAT_EXITCODE_INSTALLED', 256);
|
||||
|
||||
/**
|
||||
@@ -304,4 +305,4 @@ function behat_is_requested_url($url) {
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+12
-3
@@ -28,7 +28,7 @@
|
||||
/**
|
||||
* Composer error exit status.
|
||||
*
|
||||
* @var integer
|
||||
* @var int
|
||||
*/
|
||||
define('TESTING_EXITCODE_COMPOSER', 255);
|
||||
|
||||
@@ -188,10 +188,10 @@ function testing_update_composer_dependencies() {
|
||||
// Download or update composer.phar. Unfortunately we can't use the curl
|
||||
// class in filelib.php as we're running within one of the test platforms.
|
||||
if (!file_exists($composerpath)) {
|
||||
$file = @fopen($composerpath, 'w+');
|
||||
$file = @fopen($composerpath, 'w');
|
||||
if ($file === false) {
|
||||
$errordetails = error_get_last();
|
||||
$error = sprintf("Unable to open composer.phar\nPHP error: %s",
|
||||
$error = sprintf("Unable to create composer.phar\nPHP error: %s",
|
||||
$errordetails['message']);
|
||||
testing_error(TESTING_EXITCODE_COMPOSER, $error);
|
||||
}
|
||||
@@ -203,6 +203,7 @@ function testing_update_composer_dependencies() {
|
||||
|
||||
$curlerrno = curl_errno($curl);
|
||||
$curlerror = curl_error($curl);
|
||||
$curlinfo = curl_getinfo($curl);
|
||||
|
||||
curl_close($curl);
|
||||
fclose($file);
|
||||
@@ -211,6 +212,14 @@ function testing_update_composer_dependencies() {
|
||||
$error = sprintf("Unable to download composer.phar\ncURL error (%d): %s",
|
||||
$curlerrno, $curlerror);
|
||||
testing_error(TESTING_EXITCODE_COMPOSER, $error);
|
||||
} else if ($curlinfo['http_code'] === 404) {
|
||||
if (file_exists($composerpath)) {
|
||||
// Deleting the resource as it would contain HTML.
|
||||
unlink($composerpath);
|
||||
}
|
||||
$error = sprintf("Unable to download composer.phar\n" .
|
||||
"404 http status code fetching $composerurl");
|
||||
testing_error(TESTING_EXITCODE_COMPOSER, $error);
|
||||
}
|
||||
} else {
|
||||
passthru("php composer.phar self-update", $code);
|
||||
|
||||
Reference in New Issue
Block a user