]> granicus.if.org Git - php/commitdiff
- Add more tests
authorMarcus Boerger <helly@php.net>
Sun, 26 Sep 2004 18:28:07 +0000 (18:28 +0000)
committerMarcus Boerger <helly@php.net>
Sun, 26 Sep 2004 18:28:07 +0000 (18:28 +0000)
ext/standard/tests/serialize/002.phpt [new file with mode: 0644]
ext/standard/tests/serialize/autoload_implements.p5c [new file with mode: 0755]
ext/standard/tests/serialize/autoload_interface.p5c [new file with mode: 0755]
ext/standard/tests/serialize/bug30234.phpt [new file with mode: 0755]

diff --git a/ext/standard/tests/serialize/002.phpt b/ext/standard/tests/serialize/002.phpt
new file mode 100644 (file)
index 0000000..3085d1c
--- /dev/null
@@ -0,0 +1,44 @@
+--TEST--
+Bug #25378 (unserialize() crashes with invalid data)
+--FILE--
+<?php 
+var_dump(unserialize('b:0;'));
+var_dump(unserialize('b:1;'));
+var_dump(unserialize('i:823;'));
+var_dump(unserialize('s:0:"";'));
+var_dump(unserialize('s:3:"foo";'));
+var_dump(unserialize('a:1:{i:0;s:2:"12";}'));
+var_dump(unserialize('a:2:{i:0;a:0:{}i:1;a:0:{}}'));
+var_dump(unserialize('a:3:{i:0;s:3:"foo";i:1;s:3:"bar";i:2;s:3:"baz";}'));
+var_dump(unserialize('O:8:"stdClass":0:{}'));
+?>
+===DONE===
+--EXPECTF--
+bool(false)
+bool(true)
+int(823)
+string(0) ""
+string(3) "foo"
+array(1) {
+  [0]=>
+  string(2) "12"
+}
+array(2) {
+  [0]=>
+  array(0) {
+  }
+  [1]=>
+  array(0) {
+  }
+}
+array(3) {
+  [0]=>
+  string(3) "foo"
+  [1]=>
+  string(3) "bar"
+  [2]=>
+  string(3) "baz"
+}
+object(stdClass)#%d (0) {
+}
+===DONE===
diff --git a/ext/standard/tests/serialize/autoload_implements.p5c b/ext/standard/tests/serialize/autoload_implements.p5c
new file mode 100755 (executable)
index 0000000..2c3479c
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+
+class autoload_implements implements autoload_interface {
+       function testFunction()
+       {
+               return true;
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/ext/standard/tests/serialize/autoload_interface.p5c b/ext/standard/tests/serialize/autoload_interface.p5c
new file mode 100755 (executable)
index 0000000..6908155
--- /dev/null
@@ -0,0 +1,7 @@
+<?php
+
+interface autoload_interface {
+       function testFunction();
+}
+
+?>
\ No newline at end of file
diff --git a/ext/standard/tests/serialize/bug30234.phpt b/ext/standard/tests/serialize/bug30234.phpt
new file mode 100755 (executable)
index 0000000..37fc8cd
--- /dev/null
@@ -0,0 +1,40 @@
+--TEST--
+#30234 (__autoload() not invoked for interfaces)
+--SKIPIF--
+<?php 
+       if (class_exists('autoload_root', false)) die('skip Autoload test classes exist already');
+?>
+--FILE--
+<?php
+
+function __autoload($class_name)
+{
+       require_once(dirname(__FILE__) . '/' . strtolower($class_name) . '.p5c');
+       echo __FUNCTION__ . '(' . $class_name . ")\n";
+}
+
+var_dump(interface_exists('autoload_interface', false));
+var_dump(class_exists('autoload_implements', false));
+
+$o = unserialize('O:19:"Autoload_Implements":0:{}');
+
+var_dump($o);
+var_dump($o instanceof autoload_interface);
+unset($o);
+
+var_dump(interface_exists('autoload_interface', false));
+var_dump(class_exists('autoload_implements', false));
+
+?>
+===DONE===
+--EXPECTF--
+bool(false)
+bool(false)
+__autoload(autoload_interface)
+__autoload(Autoload_Implements)
+object(autoload_implements)#%d (0) {
+}
+bool(true)
+bool(true)
+bool(true)
+===DONE===