]> granicus.if.org Git - php/commitdiff
Add this test to make sure that fopencookie is detected and working
authorWez Furlong <wez@php.net>
Thu, 14 Nov 2002 12:20:36 +0000 (12:20 +0000)
committerWez Furlong <wez@php.net>
Thu, 14 Nov 2002 12:20:36 +0000 (12:20 +0000)
correctly (or that the less efficient tmpfile casting is working).
More details in the test itself.

ext/standard/tests/file/fopencookie.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/file/fopencookie.phpt b/ext/standard/tests/file/fopencookie.phpt
new file mode 100644 (file)
index 0000000..7fc9dd7
--- /dev/null
@@ -0,0 +1,50 @@
+--TEST--
+fopencookie detected and working (or cast mechanism works)
+--FILE--
+<?php
+# vim600:syn=php:
+
+/* This test verifies that the casting mechanism is working correctly.
+ * On systems with fopencookie, a FILE* is created around the user
+ * stream and that is passed back to the ZE to include.
+ * On systems without fopencookie, the stream is fed into a temporary
+ * file, and that temporary file is passed back to the ZE.
+ * The important thing here is really fopencookie; the glibc people
+ * changed the binary interface, so if haven't detected it correctly,
+ * you can expect this test to segfault.
+ */
+
+class userstream {
+       var $position = 0;
+       var $data = "If you can read this, it worked";
+       
+       function stream_open($path, $mode, $options, &$opened_path)
+       {
+               return true;
+       }
+       
+       function stream_read($count)
+       {
+               $ret = substr($this->data, $this->position, $count);
+               $this->position += strlen($ret);
+               return $ret;
+       }
+
+       function stream_tell()
+       {
+               return $this->position;
+       }
+
+       function stream_eof()
+       {
+               return $this->position >= strlen($this->data);
+       }
+}
+
+stream_register_wrapper("cookietest", "userstream");
+
+include("cookietest://foo");
+
+?>
+--EXPECT--
+If you can read this, it worked