tests: use getenv() to access environment variable
[m6w6/ext-http] / tests / skipif.inc
index 0f10264ce5bfe555a9b2d656468159ccda3563a1..76c3bd793576f73639a62860629055f7c79c6367 100644 (file)
@@ -1,3 +1,62 @@
 <?php
-function _ext($ext) { extension_loaded($ext) or die("skip $ext extension needed\n"); }
 _ext("http");
+
+function _ext($ext) {
+       if (!extension_loaded($ext)) {
+               die("skip $ext extension needed\n");
+       }
+}
+
+function utf8locale() {
+       $locale = setlocale(LC_CTYPE, null);
+       if (stristr($locale, "utf") && substr($locale, -1) === "8") {
+               return true;
+       }
+       if (stristr(setlocale(LC_CTYPE, "C.UTF-8"), "utf")) {
+               return true;
+       }
+       $locale = setlocale(LC_CTYPE, null);
+       if (stristr($locale, "utf") && substr($locale, -1) === "8") {
+               return true;
+       }
+       return false;
+}
+
+function skip_online_test($message = "skip test requiring internet connection\n") {
+       if (getenv("SKIP_ONLINE_TESTS")) {
+               die($message);
+       }
+}
+
+function skip_slow_test($message = "skip slow test\n") {
+       if (getenv("SKIP_SLOW_TESTS")) {
+               die($message);
+       }
+}
+
+function skip_client_test($message = "skip need a client driver\n") {
+       if (!http\Client::getAvailableDrivers()) {
+               die($message);
+       }
+}
+
+function skip_curl_test($version) {
+       if (!version_compare(http\Client\Curl\Versions\CURL, $version, ">=")) {
+               die("skip need at least libcurl version $version\n");
+       }
+}
+
+function skip_http2_test($message = "skip need http2 support") {
+       if (!defined("http\\Client\\Curl\\HTTP_VERSION_2_0")) {
+               die("$message (HTTP_VERSION_2_0)\n");
+       }
+       if (!(http\Client\Curl\FEATURES & http\Client\Curl\Features\HTTP2)) {
+               die("$message (FEATURES & HTTP2)\n");
+       }
+       foreach (explode(":", getenv("PATH")) as $path) {
+               if (is_executable($path . "/nghttpd")) {
+                       return;
+               }
+       }
+       die("$message (nghttpd in PATH)\n");
+}