- Add more tests

This commit is contained in:
Marcus Boerger 2004-09-26 18:28:07 +00:00
parent 617de19912
commit 3cdd2bcb01
4 changed files with 101 additions and 0 deletions

View file

@ -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===

View file

@ -0,0 +1,10 @@
<?php
class autoload_implements implements autoload_interface {
function testFunction()
{
return true;
}
}
?>

View file

@ -0,0 +1,7 @@
<?php
interface autoload_interface {
function testFunction();
}
?>

View file

@ -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===