- fix tests
authorMichael Wallner <mike@php.net>
Tue, 21 Aug 2007 19:31:14 +0000 (19:31 +0000)
committerMichael Wallner <mike@php.net>
Tue, 21 Aug 2007 19:31:14 +0000 (19:31 +0000)
- add non-ZTS persistent handles test

tests/persistent_handles_001.phpt
tests/persistent_handles_002.phpt [new file with mode: 0644]

index a2711a890f5d388d959c5984cf650abae4f160f5..8bdba2504882fff416b858ee717f8bcb1aaef4b7 100644 (file)
@@ -4,6 +4,7 @@ persistent handles
 <?php
 include 'skip.inc';
 skipif(!http_support(HTTP_SUPPORT_REQUESTS), "need request support");
+skipif(!function_exists('zend_thread_id'), "need ZTS build");
 ?>
 --INI--
 http.persistent.handles.limit=-1
diff --git a/tests/persistent_handles_002.phpt b/tests/persistent_handles_002.phpt
new file mode 100644 (file)
index 0000000..6efa9cb
--- /dev/null
@@ -0,0 +1,81 @@
+--TEST--
+persistent handles
+--SKIPIF--
+<?php
+include 'skip.inc';
+skipif(!http_support(HTTP_SUPPORT_REQUESTS), "need request support");
+skipif(function_exists('zend_thread_id'), "need non-ZTS build");
+?>
+--INI--
+http.persistent.handles.limit=-1
+http.persistent.handles.ident=GLOBAL
+--FILE--
+<?php
+echo "-TEST\n";
+
+echo "No free handles!\n";
+foreach (http_persistent_handles_count() as $provider => $idents) {
+       foreach ((array)$idents as $ident => $counts) {
+               if (!empty($counts["free"])) {
+                       printf("%s, %s, %s\n", $provider, $ident, $counts["free"]);
+               }
+       }
+}
+
+http_get("http://www.google.com/", null, $info[]);
+
+echo "One free request handle within GLOBAL: ";
+var_dump(http_persistent_handles_count()->http_request["GLOBAL"]["free"]);
+
+echo "Reusing request handle: ";
+http_get("http://www.google.com/", null, $info[]);
+var_dump($info[0]["pretransfer_time"] > 10 * $info[1]["pretransfer_time"], $info[0]["pretransfer_time"], $info[1]["pretransfer_time"]);
+
+echo "Handles' been cleaned up:\n";
+http_persistent_handles_clean();
+print_r(http_persistent_handles_count());
+
+echo "Done\n";
+?>
+--EXPECTF--
+%sTEST
+No free handles!
+One free request handle within GLOBAL: int(1)
+Reusing request handle: bool(true)
+float(%f)
+float(%f)
+Handles' been cleaned up:
+stdClass Object
+(
+    [http_request] => Array
+        (
+            [GLOBAL] => Array
+                (
+                    [used] => 0
+                    [free] => 0
+                )
+
+        )
+
+    [http_request_datashare] => Array
+        (
+            [GLOBAL] => Array
+                (
+                    [used] => 0
+                    [free] => 0
+                )
+
+        )
+
+    [http_request_pool] => Array
+        (
+            [GLOBAL] => Array
+                (
+                    [used] => 0
+                    [free] => 0
+                )
+
+        )
+
+)
+Done