[PHP-CVS] cvs: php-src /ext/spl/tests heap_corruption.phpt heap_current_variation_001.phpt heap_isempty_variation_001.phpt heap_it_current_empty.phpt heap_top_variation_001.phpt heap_top_variation_002.phpt heap_top_variation_003.phpt iterator_count.phpt iterator_to_array.phpt limititerator_seek.phpt pqueue_compare_basic.phpt pqueue_compare_error.phpt pqueue_current_error.phpt recursive_tree_iterator_setprefixpart.phpt recursiveiteratoriterator_beginiteration_basic.phpt recursiveiteratoriterator_enditeration_basic.phpt recursiveiteratoriterator_getsubiterator_basic.phpt recursiveiteratoriterator_getsubiterator_error.phpt recursiveiteratoriterator_getsubiterator_variation.phpt recursiveiteratoriterator_getsubiterator_variation_002.phpt recursiveiteratoriterator_getsubiterator_variation_003.phpt recursiveiteratoriterator_nextelement_basic.phpt regexiterator_getpregflags.phpt regexiterator_setflags_exception.phpt regexiterator_setpregflags.phpt regexiterator_setpregflags_exceptio! n.phpt spl_caching_iterator_constructor_flags.phpt spl_cachingiterator___toString_basic.phpt spl_cachingiterator_setFlags_basic.phpt spl_fileinfo_getlinktarget_basic.phpt spl_heap_count_basic.phpt spl_heap_count_error.phpt spl_heap_extract_parameter_error.phpt spl_heap_insert_basic.phpt spl_heap_is_empty_basic.phpt spl_heap_isempty.phpt spl_heap_iteration_error.phpt spl_heap_recoverfromcorruption_arguments.phpt spl_iterator_apply_error.phpt spl_iterator_apply_error_001.phpt spl_iterator_caching_count_basic.phpt spl_iterator_caching_count_error.phpt spl_iterator_caching_getcache_error.phpt spl_iterator_getcallchildren.phpt spl_iterator_iterator_constructor.phpt spl_iterator_recursive_getiterator_error.phpt spl_iterator_to_array_basic.phpt spl_iterator_to_array_error.phpt spl_limit_iterator_check_limits.phpt spl_maxheap_compare_basic.phpt spl_minheap_compare_error.phpt spl_pq_top_basic.phpt spl_pq_top_error_args.phpt spl_pq_top_error_corrupt.phpt spl_pq_top_error_empty.phpt s! pl_priorityqeue_insert_two_params_error.phpt spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt spl_recursive_iterator_iterator_key_case.phpt splpriorityqueue_extract.phpt splpriorityqueue_setextractflags.phpt

Sun, 17 May 2009 08:22:22 -0700

felipe          Sun May 17 15:21:45 2009 UTC

  Added files:                 
    /php-src/ext/spl/tests      heap_corruption.phpt 
                                heap_current_variation_001.phpt 
                                heap_isempty_variation_001.phpt 
                                heap_it_current_empty.phpt 
                                heap_top_variation_001.phpt 
                                heap_top_variation_002.phpt 
                                heap_top_variation_003.phpt 
                                iterator_count.phpt iterator_to_array.phpt 
                                limititerator_seek.phpt 
                                pqueue_compare_basic.phpt 
                                pqueue_compare_error.phpt 
                                pqueue_current_error.phpt 
                                recursive_tree_iterator_setprefixpart.phpt 
                                
recursiveiteratoriterator_beginiteration_basic.phpt 
                                
recursiveiteratoriterator_enditeration_basic.phpt 
                                
recursiveiteratoriterator_getsubiterator_basic.phpt 
                                
recursiveiteratoriterator_getsubiterator_error.phpt 
                                
recursiveiteratoriterator_getsubiterator_variation.phpt 
                                
recursiveiteratoriterator_getsubiterator_variation_002.phpt 
                                
recursiveiteratoriterator_getsubiterator_variation_003.phpt 
                                
recursiveiteratoriterator_nextelement_basic.phpt 
                                regexiterator_getpregflags.phpt 
                                regexiterator_setflags_exception.phpt 
                                regexiterator_setpregflags.phpt 
                                regexiterator_setpregflags_exception.phpt 
                                spl_caching_iterator_constructor_flags.phpt 
                                spl_cachingiterator___toString_basic.phpt 
                                spl_cachingiterator_setFlags_basic.phpt 
                                spl_fileinfo_getlinktarget_basic.phpt 
                                spl_heap_count_basic.phpt 
                                spl_heap_count_error.phpt 
                                spl_heap_extract_parameter_error.phpt 
                                spl_heap_insert_basic.phpt 
                                spl_heap_is_empty_basic.phpt 
                                spl_heap_isempty.phpt 
                                spl_heap_iteration_error.phpt 
                                spl_heap_recoverfromcorruption_arguments.phpt 
                                spl_iterator_apply_error.phpt 
                                spl_iterator_apply_error_001.phpt 
                                spl_iterator_caching_count_basic.phpt 
                                spl_iterator_caching_count_error.phpt 
                                spl_iterator_caching_getcache_error.phpt 
                                spl_iterator_getcallchildren.phpt 
                                spl_iterator_iterator_constructor.phpt 
                                spl_iterator_recursive_getiterator_error.phpt 
                                spl_iterator_to_array_basic.phpt 
                                spl_iterator_to_array_error.phpt 
                                spl_limit_iterator_check_limits.phpt 
                                spl_maxheap_compare_basic.phpt 
                                spl_minheap_compare_error.phpt 
                                spl_pq_top_basic.phpt 
                                spl_pq_top_error_args.phpt 
                                spl_pq_top_error_corrupt.phpt 
                                spl_pq_top_error_empty.phpt 
                                spl_priorityqeue_insert_two_params_error.phpt 
                                
spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt 
                                spl_recursive_iterator_iterator_key_case.phpt 
                                splpriorityqueue_extract.phpt 
                                splpriorityqueue_setextractflags.phpt 
  Log:
  - New tests (testfest LondonUG)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/heap_corruption.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/heap_corruption.phpt
+++ php-src/ext/spl/tests/heap_corruption.phpt
--TEST--
SPL: SplHeap - heap corruption via compare exception (with top element deletion)
--CREDITS--
Mike Sullivan <mike...@php.net>
#TestFest 2009 (London)
--FILE--
<?php

class myHeap extends SplHeap
{
        public $allow_compare = true;
        
        public function compare($v1, $v2)
        {
                if ($this->allow_compare == true)
                {
                        if ($v1 > $v2)
                        {
                                return 1;
                        }
                        else if ($v1 < $v2)
                        {
                                return -1;
                        }
                        else
                        {
                                return 0;
                        }
                }
                else
                {
                        throw new Exception('Compare exception');
                }
        }
}

$heap = new myHeap();
$heap->insert(1);
$heap->insert(2);
$heap->insert(3);
$heap->insert(4);

$heap->allow_compare = false;

try {
        $heap->extract();
}
catch (Exception $e) {
        echo "Compare Exception: " . $e->getMessage() . PHP_EOL;
}

try {
        $heap->top();
}
catch (Exception $e) {
        echo "Corruption Exception: " . $e->getMessage() . PHP_EOL;
}

?>
--EXPECT--
Compare Exception: Compare exception
Corruption Exception: Heap is corrupted, heap properties are no longer ensured.
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/heap_current_variation_001.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/heap_current_variation_001.phpt
+++ php-src/ext/spl/tests/heap_current_variation_001.phpt
--TEST--
SPL: SplHeap::current - get current value from empty heap
--CREDITS--
Mike Sullivan <mike...@php.net>
#TestFest 2009 (London)
--FILE--
<?php

class myHeap extends SplHeap
{
        public function compare($v1, $v2)
        {
                throw new Exception('');
        }
}

$heap = new myHeap();
var_dump($heap->current());

?>
--EXPECT--
NULL
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/heap_isempty_variation_001.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/heap_isempty_variation_001.phpt
+++ php-src/ext/spl/tests/heap_isempty_variation_001.phpt
--TEST--
SPL: SplHeap: isEmpty argument variation.
--FILE--
<?php
class SplHeap2 extends SplHeap{

  public function compare() {
           return -parent::compare();
       }
}

$h = new SplHeap2;
$h->isEmpty(1);
?>
--EXPECTF--
Warning: SplHeap::isEmpty() expects exactly 0 parameters, 1 given in %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/heap_it_current_empty.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/heap_it_current_empty.phpt
+++ php-src/ext/spl/tests/heap_it_current_empty.phpt
--TEST--
SPL: SplHeap current, check looping through an empty heap gives you no values
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
$h = new SplMinHeap();

foreach ($h as $val) { echo 'FAIL'; }
?>
--EXPECT--

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/heap_top_variation_001.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/heap_top_variation_001.phpt
+++ php-src/ext/spl/tests/heap_top_variation_001.phpt
--TEST--
SPL: SplHeap top, illegal number of args
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
$h = new SplMinHeap();
$h->insert(5);
// top doesn't take any args, lets see what happens if we give it one
$h->top('bogus');
?>
--EXPECTF--
Warning: SplHeap::top() expects exactly 0 parameters, 1 given in %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/heap_top_variation_002.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/heap_top_variation_002.phpt
+++ php-src/ext/spl/tests/heap_top_variation_002.phpt
--TEST--
SPL: SplHeap top, corrupted heap
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
// override heap to force corruption by throwing exception in compare
class SplMinHeap2 extends SplMinHeap {
        public function compare($a, $b) {
                throw new Exception('Corrupt heap');
        }
}

$h = new SplMinHeap2();

// insert 2 elements to hit our overridden compare
$h->insert(4);
try {
        $h->insert(5);
} catch (Exception $e) {}

// call top, should fail with corrupted heap
try {
        $h->top();
} catch (Exception $e) {
        echo $e->getMessage();
}
?>
--EXPECTF--
Heap is corrupted, heap properties are no longer ensured.

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/heap_top_variation_003.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/heap_top_variation_003.phpt
+++ php-src/ext/spl/tests/heap_top_variation_003.phpt
--TEST--
SPL: SplHeap top of empty heap
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
$h = new SplMinHeap();
try {
        $h->top();
} catch (Exception $e) {
        echo $e->getMessage();
}
?>
--EXPECTF--
Can't peek at an empty heap

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/iterator_count.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/iterator_count.phpt
+++ php-src/ext/spl/tests/iterator_count.phpt
--TEST--
SPL: iterator_count() exceptions test
--CREDITS--
Lance Kesson jac_kes...@hotmail.com
#testfest London 2009-05-09
--FILE--
<?php
$array=array('a','b');

$iterator = new ArrayIterator($array);

iterator_count();


iterator_count($iterator,'1');

iterator_count('1');


?>
--EXPECTF--
Warning: iterator_count() expects exactly 1 parameter, 0 given in %s

Warning: iterator_count() expects exactly 1 parameter, 2 given in %s

Catchable fatal error: Argument 1 passed to iterator_count() must implement 
interface Traversable, %unicode_string_optional% given %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/iterator_to_array.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/iterator_to_array.phpt
+++ php-src/ext/spl/tests/iterator_to_array.phpt
--TEST--
SPL: iterator_to_array() exceptions test
--CREDITS--
Lance Kesson jac_kes...@hotmail.com
#testfest London 2009-05-09
--FILE--
<?php
$array=array('a','b');

$iterator = new ArrayIterator($array);

iterator_to_array();


iterator_to_array($iterator,'test','test');

iterator_to_array('test','test');

?>
--EXPECTF--
Warning: iterator_to_array() expects at least 1 parameter, 0 given in %s

Warning: iterator_to_array() expects at most 2 parameters, 3 given in %s

Catchable fatal error: Argument 1 passed to iterator_to_array() must implement 
interface Traversable, %unicode_string_optional% given %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/limititerator_seek.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/limititerator_seek.phpt
+++ php-src/ext/spl/tests/limititerator_seek.phpt
--TEST--
SPL: LimitIterator seek() arguments
--CREDITS--
Roshan Abraham (roshanabrah...@gmail.com)
TestFest London May 2009
--FILE--
<?php

$a = array(1,2,3);
$lt = new LimitIterator(new ArrayIterator($a));

$lt->seek(1,1); // Should throw a warning as seek expects only 1 argument

?>
--EXPECTF--

Warning: LimitIterator::seek() expects exactly 1 parameter, 2 given in %s on 
line %d


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/pqueue_compare_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/pqueue_compare_basic.phpt
+++ php-src/ext/spl/tests/pqueue_compare_basic.phpt
--TEST--
SPL: SplPriorityQueue: test compare
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
$h = new SplPriorityQueue();
var_dump($h->compare(4, 5) < 0);
var_dump($h->compare(5, 5) == 0);
var_dump($h->compare(5, 4) > 0);
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
bool(true)
bool(true)
bool(true)
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/pqueue_compare_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/pqueue_compare_error.phpt
+++ php-src/ext/spl/tests/pqueue_compare_error.phpt
--TEST--
SPL: Priority queue compare, illegal number of args
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
$h = new SplPriorityQueue();
$h->compare();
$h->compare(1);
$h->compare(1, 2, 3);
?>
--EXPECTF--
Warning: SplPriorityQueue::compare() expects exactly 2 parameters, 0 given in %s

Warning: SplPriorityQueue::compare() expects exactly 2 parameters, 1 given in %s

Warning: SplPriorityQueue::compare() expects exactly 2 parameters, 3 given in %s


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/pqueue_current_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/pqueue_current_error.phpt
+++ php-src/ext/spl/tests/pqueue_current_error.phpt
--TEST--
SPL: SplPriorityQueue current on empty queue should give null
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
$h = new SplPriorityQueue();
var_dump($h->current());
?>
--EXPECT--
NULL

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursive_tree_iterator_setprefixpart.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/recursive_tree_iterator_setprefixpart.phpt
+++ php-src/ext/spl/tests/recursive_tree_iterator_setprefixpart.phpt
--TEST--
SPL: RecursiveTreeIterator::setPrefixPart() Test arguments
--CREDITS--
Roshan Abraham (roshanabrah...@gmail.com)
TestFest London May 2009
--FILE--
<?php

$arr = array(
 "a" => array("b")
);

$it = new RecursiveArrayIterator($arr);
$it = new RecursiveTreeIterator($it);

$it->setPrefixPart(1); // Should throw a warning as setPrefixPart expects 2 
arguments

$a = new stdClass();
$it->setPrefixPart($a, 1); // Should throw a warning as setPrefixPart expects 
argument 1 to be long integer

$it->setPrefixPart(1, $a); // Should throw a warning as setPrefixPart expects 
argument 2 to be a string


?>
===DONE===
--EXPECTF--
Warning: RecursiveTreeIterator::setPrefixPart() expects exactly 2 parameters, 1 
given in %s on line %d

Warning: RecursiveTreeIterator::setPrefixPart() expects parameter 1 to be long, 
object given in %s on line %d

Warning: RecursiveTreeIterator::setPrefixPart() expects parameter 2 to be 
%binary_string_optional%, object given in %s on line %d
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursiveiteratoriterator_beginiteration_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/recursiveiteratoriterator_beginiteration_basic.phpt
+++ php-src/ext/spl/tests/recursiveiteratoriterator_beginiteration_basic.phpt
--TEST--
SPL: RecursiveIteratorIterator::beginIteration() is called by 
RecursiveIteratorIterator::rewind()
--CREDITS--
Matt Raines m...@raines.me.uk
#testfest London 2009-05-09
--FILE--
<?php
$sample_array = array(1, 2);
$sub_iterator = new RecursiveArrayIterator($sample_array);

$iterator = new RecursiveIteratorIterator($sub_iterator);
foreach ($iterator as $element) {
  var_dump($element);
}

class SkipsFirstElementRecursiveIteratorIterator extends 
RecursiveIteratorIterator {
  public function beginIteration() {
    echo "::beginIteration() was invoked\n";
    $this->next();
  }
}
$iterator = new SkipsFirstElementRecursiveIteratorIterator($sub_iterator);
foreach ($iterator as $element) {
  var_dump($element);
}
?>
--EXPECT--
int(1)
int(2)
::beginIteration() was invoked
int(2)


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursiveiteratoriterator_enditeration_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/recursiveiteratoriterator_enditeration_basic.phpt
+++ php-src/ext/spl/tests/recursiveiteratoriterator_enditeration_basic.phpt
--TEST--
SPL: RecursiveIteratorIterator::endIteration() is called when ::valid() first 
returns false
--CREDITS--
Matt Raines m...@raines.me.uk
#testfest London 2009-05-09
--FILE--
<?php
$sample_array = array(1, 2);
$sub_iterator = new RecursiveArrayIterator($sample_array);

$iterator = new RecursiveIteratorIterator($sub_iterator);
foreach ($iterator as $element) {
  var_dump($element);
}

class EndIterationRecursiveIteratorIterator extends RecursiveIteratorIterator {
  public function endIteration() {
    echo "::endIteration() was invoked\n";
  }
}
$iterator = new EndIterationRecursiveIteratorIterator($sub_iterator);
foreach ($iterator as $element) {
  var_dump($element);
}
?>
--EXPECT--
int(1)
int(2)
int(1)
int(2)
::endIteration() was invoked


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_basic.phpt
+++ php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_basic.phpt
--TEST--
SPL: RecursiveIteratorIterator::getSubIterator() returns iterator passed in 
constructor
--CREDITS--
Matt Raines m...@raines.me.uk
#testfest London 2009-05-09
--FILE--
<?php
$sample_array = array(1, 2, array(3, 4));

$sub_iterator = new RecursiveArrayIterator($sample_array);
$not_sub_iterator = new RecursiveArrayIterator($sample_array);
$iterator = new RecursiveIteratorIterator($sub_iterator);

var_dump($iterator->getSubIterator() === $sub_iterator);
var_dump($iterator->getSubIterator() === $not_sub_iterator);
?>
--EXPECT--
bool(true)
bool(false)


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_error.phpt
+++ php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_error.phpt
--TEST--
SPL: RecursiveIteratorIterator::getSubIterator() expects at most 1 parameter
--CREDITS--
Matt Raines m...@raines.me.uk
#testfest London 2009-05-09
--FILE--
<?php
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator(array()));
$iterator->getSubIterator();
$iterator->getSubIterator(0);
$iterator->getSubIterator(0, 0);
?>
--EXPECTF--
Warning: RecursiveIteratorIterator::getSubIterator() expects at most 1 
parameter, 2 given in %s on line 5


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation.phpt?view=markup&rev=1.1
Index: 
php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation.phpt
+++ 
php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation.phpt
--TEST--
SPL: RecursiveIteratorIterator::getSubIterator() returns different iterators 
depending on the current element
--CREDITS--
Matt Raines m...@raines.me.uk
#testfest London 2009-05-09
--FILE--
<?php
$sample_array = array(1, 2, array(3, 4));

$iterator = new RecursiveIteratorIterator(new 
RecursiveArrayIterator($sample_array));

$iterator->next();
$iterator->next();
var_dump(get_class($iterator->getSubIterator()));
var_dump($iterator->getSubIterator()->getArrayCopy());
$iterator->next();
var_dump(get_class($iterator->getSubIterator()));
var_dump($iterator->getSubIterator()->getArrayCopy());
?>
--EXPECTF--
%unicode|string%(22) "RecursiveArrayIterator"
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(2) {
    [0]=>
    int(3)
    [1]=>
    int(4)
  }
}
%unicode|string%(22) "RecursiveArrayIterator"
array(2) {
  [0]=>
  int(3)
  [1]=>
  int(4)
}


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_002.phpt?view=markup&rev=1.1
Index: 
php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_002.phpt
+++ 
php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_002.phpt
--TEST--
SPL: RecursiveIteratorIterator::getSubIterator() returns NULL if there's no 
current element
--CREDITS--
Matt Raines m...@raines.me.uk
#testfest London 2009-05-09
--FILE--
<?php
$sample_array = array(1);

$iterator = new RecursiveIteratorIterator(new 
RecursiveArrayIterator($sample_array));

$iterator->next();
var_dump(is_null($iterator->getSubIterator()));
$iterator->next();
var_dump(is_null($iterator->getSubIterator()));
?>
--EXPECT--
bool(false)
bool(false)


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_003.phpt?view=markup&rev=1.1
Index: 
php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_003.phpt
+++ 
php-src/ext/spl/tests/recursiveiteratoriterator_getsubiterator_variation_003.phpt
--TEST--
SPL: RecursiveIteratorIterator::getSubIterator() with explicit level parameter
--CREDITS--
Matt Raines m...@raines.me.uk
#testfest London 2009-05-09
--FILE--
<?php
$sample_array = array(1, 2, array(3, 4));

$iterator = new RecursiveIteratorIterator(new 
RecursiveArrayIterator($sample_array));

$iterator->next();
$iterator->next();
$iterator->next();
var_dump($iterator->getSubIterator(-1));
var_dump($iterator->getSubIterator(0)->getArrayCopy());
var_dump($iterator->getSubIterator(1)->getArrayCopy());
var_dump($iterator->getSubIterator(2));
?>
--EXPECT--
NULL
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(2) {
    [0]=>
    int(3)
    [1]=>
    int(4)
  }
}
array(2) {
  [0]=>
  int(3)
  [1]=>
  int(4)
}
NULL


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/recursiveiteratoriterator_nextelement_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/recursiveiteratoriterator_nextelement_basic.phpt
+++ php-src/ext/spl/tests/recursiveiteratoriterator_nextelement_basic.phpt
--TEST--
SPL: RecursiveIteratorIterator::nextElement() is called when the next element 
is ready
--CREDITS--
Matt Raines m...@raines.me.uk
#testfest London 2009-05-09
--FILE--
<?php
$sample_array = array(1, 2, array(3, 4));
$sub_iterator = new RecursiveArrayIterator($sample_array);

$iterator = new RecursiveIteratorIterator($sub_iterator);
foreach ($iterator as $element) {
  var_dump($element);
}

class NextElementRecursiveIteratorIterator extends RecursiveIteratorIterator {
  public function nextElement() {
    echo "::nextElement() was invoked\n";
  }
}
$iterator = new NextElementRecursiveIteratorIterator($sub_iterator);
foreach ($iterator as $element) {
  var_dump($element);
}
?>
--EXPECT--
int(1)
int(2)
int(3)
int(4)
::nextElement() was invoked
int(1)
::nextElement() was invoked
int(2)
::nextElement() was invoked
int(3)
::nextElement() was invoked
int(4)


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/regexiterator_getpregflags.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/regexiterator_getpregflags.phpt
+++ php-src/ext/spl/tests/regexiterator_getpregflags.phpt
--TEST--
SPL: RegexIterator::getPregFlags()
--CREDITS--
Lance Kesson jac_kes...@hotmail.com
#testfest London 2009-05-09
--FILE--
<?php

class myIterator implements Iterator {

function current (){}
function key ( ){}
function next ( ){}
function rewind ( ){}
function valid ( ){}


}

class TestRegexIterator extends RegexIterator{}

$rege = '/^a/';


$r = new TestRegexIterator(new myIterator, $rege);

$r->setPregFlags(PREG_OFFSET_CAPTURE);

echo is_long($r->getPregFlags());

?>
--EXPECTF--
1
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/regexiterator_setflags_exception.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/regexiterator_setflags_exception.phpt
+++ php-src/ext/spl/tests/regexiterator_setflags_exception.phpt
--TEST--
SPL: RegexIterator::setFlags() exceptions test
--CREDITS--
Lance Kesson jac_kes...@hotmail.com
#testfest London 2009-05-09
--FILE--
<?php

class myIterator implements Iterator {

function current (){}
function key ( ){}
function next ( ){}
function rewind ( ){}
function valid ( ){}


}

class TestRegexIterator extends RegexIterator{}

$rege = '/^a/';


$r = new TestRegexIterator(new myIterator, $rege);

try{    
        $r->setFlags();
}catch (Exception $e) {
        echo $e->getMessage();
}

?>
--EXPECTF--
Warning: RegexIterator::setFlags() expects exactly 1 parameter, 0 given in %s
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/regexiterator_setpregflags.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/regexiterator_setpregflags.phpt
+++ php-src/ext/spl/tests/regexiterator_setpregflags.phpt
--TEST--
SPL: RegexIterator::setPregFlags()
--CREDITS--
Lance Kesson jac_kes...@hotmail.com
#testfest London 2009-05-09
--FILE--
<?php

class myIterator implements Iterator {

function current (){}
function key ( ){}
function next ( ){}
function rewind ( ){}
function valid ( ){}


}

class TestRegexIterator extends RegexIterator{}

$rege = '/^a/';


$r = new TestRegexIterator(new myIterator, $rege);

$r->setPregFlags(PREG_OFFSET_CAPTURE);

echo $r->getPregFlags();


?>
--EXPECTF--
256
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/regexiterator_setpregflags_exception.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/regexiterator_setpregflags_exception.phpt
+++ php-src/ext/spl/tests/regexiterator_setpregflags_exception.phpt
--TEST--
SPL: RegexIterator::getPregFlags() exception test
--CREDITS--
Lance Kesson jac_kes...@hotmail.com
#testfest London 2009-05-09
--FILE--
<?php

class myIterator implements Iterator {

function current (){}
function key ( ){}
function next ( ){}
function rewind ( ){}
function valid ( ){}


}

class TestRegexIterator extends RegexIterator{}

$rege = '/^a/';


$r = new TestRegexIterator(new myIterator, $rege);


try{    
        $r->setPregFlags();
}catch (Exception $e) {
        echo $e->getMessage();
}

?>
--EXPECTF--
Warning: RegexIterator::setPregFlags() expects exactly 1 parameter, 0 given in 
%s
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_caching_iterator_constructor_flags.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_caching_iterator_constructor_flags.phpt
+++ php-src/ext/spl/tests/spl_caching_iterator_constructor_flags.phpt
--TEST--
SPL: CachingInterator constructor flag checks 
--CREDITS--
Sean Burlington www.practicalweb.co.uk
TestFest London May 2009
--FILE--
<?php
  //line 681 ...
  $array = array(array(7,8,9),1,2,3,array(4,5,6));
$arrayIterator = new ArrayIterator($array);
try {
$test = new CachingIterator($arrayIterator, 0);
$test = new CachingIterator($arrayIterator, 1);
$test = new CachingIterator($arrayIterator, 2);
$test = new CachingIterator($arrayIterator, 3); // this throws an exception
} catch (InvalidArgumentException $e){
  print  $e->getMessage() . "\n";
}


?>
===DONE===
--EXPECTF--
Flags must contain only one of CALL_TOSTRING, TOSTRING_USE_KEY, 
TOSTRING_USE_CURRENT, TOSTRING_USE_CURRENT
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_cachingiterator___toString_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_cachingiterator___toString_basic.phpt
+++ php-src/ext/spl/tests/spl_cachingiterator___toString_basic.phpt
--TEST--
SPL: SplCachingIterator, Test method to convert current element to string
--CREDITS--
Chris Scott chris.sc...@nstein.com
#testfest London 2009-05-09
--FILE--
<?php

$ai = new ArrayIterator(array(new stdClass(), new stdClass()));
$ci = new CachingIterator($ai);
var_dump(
$ci->__toString() // if conversion to string is done by echo, for example, an 
exeption is thrown. Invoking __toString explicitly covers different code.
);
?>
--EXPECTF--
NULL

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_cachingiterator_setFlags_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_cachingiterator_setFlags_basic.phpt
+++ php-src/ext/spl/tests/spl_cachingiterator_setFlags_basic.phpt
--TEST--
SPL: SplCachingIterator, Test method to set flags for caching iterator
--CREDITS--
Chris Scott chris.sc...@nstein.com
#testfest London 2009-05-09
--FILE--
<?php

$ai = new ArrayIterator(array('foo', 'bar'));

$ci = new CachingIterator($ai);
$ci->setFlags(); //expects arg

?>
--EXPECTF--
Warning: CachingIterator::setFlags() expects exactly 1 parameter, %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_fileinfo_getlinktarget_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_fileinfo_getlinktarget_basic.phpt
+++ php-src/ext/spl/tests/spl_fileinfo_getlinktarget_basic.phpt
--TEST--
SPL: Spl File Info test getLinkTarget
--CREDITS--
Nataniel McHugh n...@fishtrap.co.uk
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') die("skip this test not for Windows 
platforms");
?>
--FILE--
<?php
$link = 'test_link';
symlink(__FILE__, $link );
$fileInfo = new SplFileInfo($link);

if ($fileInfo->isLink()) {
        echo $fileInfo->getLinkTarget() == __FILE__ ? 'same' : 
'different',PHP_EOL;
}
var_dump(unlink($link));
?>
--EXPECT--
same
bool(true)

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_heap_count_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_heap_count_basic.phpt
+++ php-src/ext/spl/tests/spl_heap_count_basic.phpt
--TEST--
SPL: SplHeap, Test spl_heap_object_count_elements (spl_heap.c:490) for 
returning count() failure for Heaps
--CREDITS--
Chris Scott chris.sc...@nstein.com
#testfest London 2009-05-09
--FILE--
<?php

class MyHeap extends SplHeap
{
    public function compare($a,$b)
    {
        return ($a < $b);
    }

    public function count() // override count to force failure
    {
        throw new Exception('Cause count to fail');
        return parent::count();
    }
}


$heap = new MyHeap();
$heap->insert(1);
count($heap);// refers to MyHeap->count() method

?>
--EXPECTF--
Fatal error: Uncaught exception 'Exception' with message 'Cause count to fail' 
in %s
Stack trace:
#0 [internal function]: MyHeap->count()
#1 %s count(Object(MyHeap))
#2 {main}
  thrown in %s on line %d

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_heap_count_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_heap_count_error.phpt
+++ php-src/ext/spl/tests/spl_heap_count_error.phpt
--TEST--
SPL: Priority queue count, illegal number of args
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
$h = new SplPriorityQueue();
$h->count(1);
?>
--EXPECTF--
Warning: SplPriorityQueue::count() expects exactly 0 parameters, 1 given in %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_heap_extract_parameter_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_heap_extract_parameter_error.phpt
+++ php-src/ext/spl/tests/spl_heap_extract_parameter_error.phpt
--TEST--
SPL: Heap and extract with parameter
--CREDITS--
Sean Burlington www.practicalweb.co.uk
TestFest London May 2009
--FILE--
<?php

class TestHeap extends SplHeap {

  function compare() {
    print "This shouldn't be printed";
  }
}

$testHeap = new TestHeap();



var_dump($testHeap->extract('test'));

?>
===DONE===
--EXPECTF--
Warning: SplHeap::extract() expects exactly 0 parameters, 1 given in %s on line 
14
NULL
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_heap_insert_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_heap_insert_basic.phpt
+++ php-src/ext/spl/tests/spl_heap_insert_basic.phpt
--TEST--
SPL: SplHeap, Test method to insert into heap
--CREDITS--
Chris Scott chris.sc...@nstein.com
#testfest London 2009-05-09
--FILE--
<?php
class MyHeap extends SplHeap
{
    public function compare($a, $b)
    {
        return $a < $b;
    }
}

$heap = new MyHeap();
$heap->insert(1,2);
?>
--EXPECTF--
Warning: SplHeap::insert() expects exactly 1 parameter, %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_heap_is_empty_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_heap_is_empty_basic.phpt
+++ php-src/ext/spl/tests/spl_heap_is_empty_basic.phpt
--TEST--
SPL: SplHeap, test trivial method to find if a heap is empty
--CREDITS--
Nathaniel McHugh n...@fishtrap.co.uk
#testfest London 2009-05-09
--FILE--
<?php

class MyHeap extends SplHeap{

public function compare($a, $b){
return $a < $b;
}

}


$heap = new MyHeap();
var_dump($heap->isEmpty());
$heap->insert(1);
var_dump($heap->isEmpty());
$heap->extract();
var_dump($heap->isEmpty());
$heap->isEmpty('var');
?>
--EXPECTF--
bool(true)
bool(false)
bool(true)

Warning: SplHeap::isEmpty() expects exactly 0 parameters, 1 given in %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_heap_isempty.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_heap_isempty.phpt
+++ php-src/ext/spl/tests/spl_heap_isempty.phpt
--TEST--
SPL: Test of isEmpty for SPL Max Heap
--CREDITS--
Rohan Abraham (rohanabrah...@gmail.com)
TestFest London May 2009
--FILE--
<?php
  $h = new SplMaxHeap();
  echo "Checking a new heap is empty: ";
  var_dump($h->isEmpty())."\n";
  $h->insert(2);
  echo "Checking after insert: ";
  var_dump($h->isEmpty())."\n";
  $h->extract();
  echo "Checking after extract: ";
  var_dump($h->isEmpty())."\n";
?>
--EXPECT--
Checking a new heap is empty: bool(true)
Checking after insert: bool(false)
Checking after extract: bool(true)
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_heap_iteration_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_heap_iteration_error.phpt
+++ php-src/ext/spl/tests/spl_heap_iteration_error.phpt
--TEST--
SPL: Attempt to corrupt the heap while iterating
--CREDITS--
Lukasz Andrzejak mel...@meltir.com
#testfest London 2009-05-09
--FILE--
<?php
class ext_heap extends SplMaxHeap {
  public $fail = false;
  public function compare($val1,$val2) {
    if ($this->fail)
      throw new Exception('Corrupting heap',99);
    return 0;
  }
}

$h = new ext_heap();
$h->insert(array('foobar'));
$h->insert(array('foobar1'));
$h->insert(array('foobar2'));

try {
  $h->fail=true;
  foreach ($h as $value) {};
  echo "I should have raised an exception here";
} catch (Exception $e) {
  if ($e->getCode()!=99) echo "Unexpected exception";
}

var_dump($h);
?>
--EXPECTF--
object(ext_heap)#%d (4) {
  [%u|b%"fail"]=>
  bool(true)
  [%u|b%"flags":%u|b%"SplHeap":private]=>
  int(0)
  [%u|b%"isCorrupted":%u|b%"SplHeap":private]=>
  bool(true)
  [%u|b%"heap":%u|b%"SplHeap":private]=>
  array(2) {
    [0]=>
    array(1) {
      [0]=>
      %unicode|string%(7) "foobar2"
    }
    [1]=>
    array(1) {
      [0]=>
      %unicode|string%(7) "foobar1"
    }
  }
}

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_heap_recoverfromcorruption_arguments.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_heap_recoverfromcorruption_arguments.phpt
+++ php-src/ext/spl/tests/spl_heap_recoverfromcorruption_arguments.phpt
--TEST--
SPL: SplHeap check no arguments to be accepted on recoverFromCorruption 
--CREDITS--
Rohan Abraham (rohanabrah...@gmail.com)
TestFest London May 2009
--FILE--
<?php
  $h = new SplMaxHeap();
  //Line below should throw a warning as no args are expected
  $h->recoverFromCorruption("no args");
?>
--EXPECTF--

Warning: SplHeap::recoverFromCorruption() expects exactly 0 parameters, 1 given 
in %s on line %d


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_apply_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_apply_error.phpt
+++ php-src/ext/spl/tests/spl_iterator_apply_error.phpt
--TEST--
SPL: Error: iterator_apply when an iterator method (eg rewind) throws exception
--FILE--
<?php

class MyArrayIterator extends ArrayIterator {
        public function rewind() {
                throw new Exception('Make the iterator break');
        }
}

function test() {}

$it = new MyArrayIterator(array(1, 21, 22));

try {
        $res = iterator_apply($it, 'test');
} catch (Exception $e) {
        echo $e->getMessage();
}

?>

<?php exit(0); ?>
--EXPECT--
Make the iterator break

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_apply_error_001.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_apply_error_001.phpt
+++ php-src/ext/spl/tests/spl_iterator_apply_error_001.phpt
--TEST--
SPL: Error: iterator_apply when the callback throws an exception
--FILE--
<?php

function test() {
        throw new Exception('Broken callback');
}

$it = new RecursiveArrayIterator(array(1, 21, 22));

try {
        iterator_apply($it, 'test');
} catch (Exception $e) {
        echo $e->getMessage();
}

?>
--EXPECT--
Broken callback

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_caching_count_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_caching_count_basic.phpt
+++ php-src/ext/spl/tests/spl_iterator_caching_count_basic.phpt
--TEST--
SPL: Caching iterator count() cache contents
--CREDITS--
Lukasz Andrzejak mel...@meltir.com
#testfest London 2009-05-09
--FILE--
<?php
$i = new ArrayIterator(array(1,1,1,1,1));
$i = new CachingIterator($i,CachingIterator::FULL_CACHE);
foreach ($i as $value) {
  echo $i->count()."\n";
}
?>
===DONE===
--EXPECT--
1
2
3
4
5
===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_caching_count_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_caching_count_error.phpt
+++ php-src/ext/spl/tests/spl_iterator_caching_count_error.phpt
--TEST--
SPL: Caching iterator count() cache failure
--CREDITS--
Lukasz Andrzejak mel...@meltir.com
#testfest London 2009-05-09
--FILE--
<?php
$i = new ArrayIterator(array(1,1,1,1,1));
$i = new CachingIterator($i);
try {
  $i->count();
  echo "Should have caused an exception";
} catch (BadMethodCallException $e) {
  echo "Exception raised\n";
}

?>
===DONE===
--EXPECT--
Exception raised
===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_caching_getcache_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_caching_getcache_error.phpt
+++ php-src/ext/spl/tests/spl_iterator_caching_getcache_error.phpt
--TEST--
SPL: Caching iterator getCache failure
--CREDITS--
Lukasz Andrzejak mel...@meltir.com
#testfest London 2009-05-09
--FILE--
<?php
$i = new ArrayIterator(array(1,1,1,1,1));
$i = new CachingIterator($i);
try {
  $i->getCache();
  echo "Should have caused an exception";
} catch (BadMethodCallException $e) {
  echo "Exception raised\n";
}

?>
===DONE===
--EXPECT--
Exception raised
===DONE===
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_getcallchildren.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_getcallchildren.phpt
+++ php-src/ext/spl/tests/spl_iterator_getcallchildren.phpt
--TEST--
SPL: RecursiveIteratorIterator, getCallChildren
--CREDITS--
Sean Burlington www.practicalweb.co.uk
TestFest London May 2009
--FILE--
<?php
  //line 681 ...
  $array = array(array(7,8,9),1,2,3,array(4,5,6));
$recursiveArrayIterator = new RecursiveArrayIterator($array);
$test = new RecursiveIteratorIterator($recursiveArrayIterator);

var_dump($test->current());
$test->next();
var_dump($test->current());
try {
  $output = $test->callGetChildren();
} catch (InvalidArgumentException $ilae){
  $output = null;  
  print "invalid argument exception\n";
}
var_dump($output);


?>
===DONE===
--EXPECTF--
  array(3) {
  [0]=>
  int(7)
  [1]=>
  int(8)
  [2]=>
  int(9)
}
int(7)
invalid argument exception
NULL
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_iterator_constructor.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_iterator_constructor.phpt
+++ php-src/ext/spl/tests/spl_iterator_iterator_constructor.phpt
--TEST--
SPL: IteratorInterator constructor checks 
--CREDITS--
Sean Burlington www.practicalweb.co.uk
TestFest London May 2009
--FILE--
<?php

  //I think this is testing line 1297 of spl_iterators.c

  $array = array(array(7,8,9),1,2,3,array(4,5,6));
$arrayIterator = new ArrayIterator($array);
try {
$test = new IteratorIterator($arrayIterator);

$test = new IteratorIterator($arrayIterator, 1);
$test = new IteratorIterator($arrayIterator, 1, 1);
$test = new IteratorIterator($arrayIterator, 1, 1, 1);
$test = new IteratorIterator($arrayIterator, 1, 1, 1, 1);

} catch (InvalidArgumentException $e){
  print  $e->getMessage() . "\n";
}


?>
===DONE===
--EXPECTF--
IteratorIterator::__construct() expects at most 2 parameters, 3 given
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_recursive_getiterator_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_recursive_getiterator_error.phpt
+++ php-src/ext/spl/tests/spl_iterator_recursive_getiterator_error.phpt
--TEST--
SPL: IteratorIterator foreach by reference failure
--CREDITS--
Lukasz Andrzejak mel...@meltir.com
#testfest London 2009-05-09
--FILE--
<?php
$i = new ArrayIterator(array(1,1,1,1,1));
$iii = new IteratorIterator($i);
p($iii);
function p ($i) {
  foreach ($i as &$value) {}
}
?>
--EXPECTF--
Fatal error: An iterator cannot be used with foreach by reference in %s
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_to_array_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_to_array_basic.phpt
+++ php-src/ext/spl/tests/spl_iterator_to_array_basic.phpt
--TEST--
SPL: iterator_to_array, Test function to convert iterator to array
--CREDITS--
Chris Scott chris.sc...@nstein.com
#testfest London 2009-05-09
--FILE--
<?php

iterator_to_array();//requires iterator as arg

?>
--EXPECTF--
Warning: iterator_to_array() expects at least 1 parameter, %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_iterator_to_array_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_iterator_to_array_error.phpt
+++ php-src/ext/spl/tests/spl_iterator_to_array_error.phpt
--TEST--
SPL: Error: iterator_to_array when the current operation throws an exception
--FILE--
<?php

class MyArrayIterator extends ArrayIterator {
        public function current() {
                throw new Exception('Make the iterator break');
        }
}

$it = new MyArrayIterator(array(4, 6, 2));

try {
        // get keys
        $ar = iterator_to_array($it);
} catch (Exception $e) {
        echo $e->getMessage() . PHP_EOL;
}

try {
        // get values
        $ar = iterator_to_array($it, false);
} catch (Exception $e) {
        echo $e->getMessage() . PHP_EOL;
}

?>

<?php exit(0); ?>
--EXPECT--
Make the iterator break
Make the iterator break

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_limit_iterator_check_limits.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_limit_iterator_check_limits.phpt
+++ php-src/ext/spl/tests/spl_limit_iterator_check_limits.phpt
--TEST--
SPL: LimitIterator check limits are valid
--CREDITS--
Sean Burlington www.practicalweb.co.uk
TestFest London May 2009
--FILE--
<?php
  $array = array(array(7,8,9),1,2,3,array(4,5,6));
$arrayIterator = new ArrayIterator($array);

try {
  $limitIterator = new LimitIterator($arrayIterator, -1);
} catch (OutOfRangeException $e){
  print $e->getMessage(). "\n";
}


try {
  $limitIterator = new LimitIterator($arrayIterator, 0, -2);
} catch (OutOfRangeException $e){
  print $e->getMessage() . "\n";
}

try {
  $limitIterator = new LimitIterator($arrayIterator, 0, -1);
} catch (OutOfRangeException $e){
  print $e->getMessage() . "\n";
}



?>
===DONE===
--EXPECTF--
Parameter offset must be > 0
Parameter count must either be -1 or a value greater than or equal 0
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_maxheap_compare_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_maxheap_compare_basic.phpt
+++ php-src/ext/spl/tests/spl_maxheap_compare_basic.phpt
--TEST--
SPL: SplMaxHeap, Test method to comare elements
--CREDITS--
Chris Scott chris.sc...@nstein.com
#testfest London 2009-05-09
--FILE--
<?php

class MyHeap extends SplMaxHeap
{
    public function testCompare()
    {
        return parent::compare(1);
    }
}

$heap = new MyHeap();
$heap->testCompare();

?>
--EXPECTF--
Warning: SplMaxHeap::compare() expects exactly 2 parameters, %s

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_minheap_compare_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_minheap_compare_error.phpt
+++ php-src/ext/spl/tests/spl_minheap_compare_error.phpt
--TEST--
SPL: SplMinHeap compare, illegal number of args
--CREDITS--
Mark Schaschke (m...@fractalturtle.com)
TestFest London May 2009
--FILE--
<?php
class SplMinHeap2 extends SplMinHeap {
        public function testCompare1() {
                return parent::compare();
        }
        public function testCompare2() {
                return parent::compare(1);
        }
        public function testCompare3() {
                return parent::compare(1, 2, 3);
        }
}

$h = new SplMinHeap2();
$h->testCompare1();
$h->testCompare2();
$h->testCompare3();
?>
--EXPECTF--
Warning: SplMinHeap::compare() expects exactly 2 parameters, 0 given in %s

Warning: SplMinHeap::compare() expects exactly 2 parameters, 1 given in %s

Warning: SplMinHeap::compare() expects exactly 2 parameters, 3 given in %s


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_pq_top_basic.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_pq_top_basic.phpt
+++ php-src/ext/spl/tests/spl_pq_top_basic.phpt
--TEST--
SPL: SplPriorityQueue: top and extract flags
--CREDITS--
Nathaniel McHugh n...@fishtrap.co.uk
#testfest London 2009-05-09
--FILE--
<?php

$priorityQueue = new SplPriorityQueue();

$priorityQueue->insert("a", 1);
$priorityQueue->insert("b", 2);
$priorityQueue->insert("c", 0);

echo "EXTR DEFAULT",PHP_EOL;
echo "value: ",$priorityQueue->top(),PHP_EOL;

$priorityQueue->setExtractFlags(SplPriorityQueue::EXTR_PRIORITY);
echo "EXTR_PRIORITY",PHP_EOL;
echo "priority: ",$priorityQueue->top(),PHP_EOL;

$priorityQueue->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
echo "EXTR_BOTH",PHP_EOL;
print_r($priorityQueue->top());

echo "EXTR_DATA",PHP_EOL;
$priorityQueue->setExtractFlags(SplPriorityQueue::EXTR_DATA);
echo "value: ",$priorityQueue->top(),PHP_EOL;
?>
--EXPECT--
EXTR DEFAULT
value: b
EXTR_PRIORITY
priority: 2
EXTR_BOTH
Array
(
    [data] => b
    [priority] => 2
)
EXTR_DATA
value: b
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_pq_top_error_args.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_pq_top_error_args.phpt
+++ php-src/ext/spl/tests/spl_pq_top_error_args.phpt
--TEST--
SPL: SplPriorityQueue: top too many arguments exception
--CREDITS--
Nathaniel McHugh n...@fishtrap.co.uk
#testfest London 2009-05-09
--FILE--
<?php
$priorityQueue = new SplPriorityQueue();
$priorityQueue->top('var');
?>
--EXPECTF--
Warning: SplPriorityQueue::top() expects exactly 0 parameters, 1 given in %s
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_pq_top_error_corrupt.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_pq_top_error_corrupt.phpt
+++ php-src/ext/spl/tests/spl_pq_top_error_corrupt.phpt
--TEST--
SPL: SplPriorityQueue: top and extract flags
--CREDITS--
Nathaniel McHugh n...@fishtrap.co.uk
#testfest 2009-05-09
--FILE--
<?php

class myPriorityQueue extends SplPriorityQueue{

        public function compare($a, $b){
                 if ($b == 2) {
                throw new Exception('ignore me');
                }  else {
                return parent::compare($a, $b);
                }
        }
}

$priorityQueue = new myPriorityQueue();
$priorityQueue->insert("a", 1);
try {
    //corrupt heap
    $priorityQueue->insert("b", 2);
        // ignore exception tested elsewhere
} catch (Exception $e) {
}

try {
    $priorityQueue->top();
} catch (RuntimeException $e) {
  echo "Exception: ".$e->getMessage().PHP_EOL;
}

?>
--EXPECT--
Exception: Heap is corrupted, heap properties are no longer ensured.

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_pq_top_error_empty.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_pq_top_error_empty.phpt
+++ php-src/ext/spl/tests/spl_pq_top_error_empty.phpt
--TEST--
SPL: SplPriorityQueue: top exception on empty heap
--CREDITS--
Nathaniel McHugh n...@fishtrap.co.uk
#testfest 2009-05-09
--FILE--
<?php

$priorityQueue = new SplPriorityQueue();

try {
    $priorityQueue->top();
} catch (RuntimeException $e) {
    echo "Exception: ".$e->getMessage().PHP_EOL;
}

?>
--EXPECT--
Exception: Can't peek at an empty heap

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_priorityqeue_insert_two_params_error.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_priorityqeue_insert_two_params_error.phpt
+++ php-src/ext/spl/tests/spl_priorityqeue_insert_two_params_error.phpt
--TEST--
SPL: priorityQueue paramter test on insert method
--CREDITS--
Sean Burlington www.practicalweb.co.uk
TestFest London May 2009
--FILE--
<?php


$testHeap = new SplPriorityQueue();


var_dump($testHeap->insert());
var_dump($testHeap->insert('test'));
var_dump($testHeap->insert('test', 'test'));
var_dump($testHeap->insert('test', 'test', 'test'));


?>
===DONE===
--EXPECTF--
Warning: SplPriorityQueue::insert() expects exactly 2 parameters, 0 given in %s 
on line 7
NULL

Warning: SplPriorityQueue::insert() expects exactly 2 parameters, 1 given in %s 
on line 8
NULL
bool(true)

Warning: SplPriorityQueue::insert() expects exactly 2 parameters, 3 given in %s 
on line 10
NULL
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt?view=markup&rev=1.1
Index: 
php-src/ext/spl/tests/spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt
+++ 
php-src/ext/spl/tests/spl_recursiveIteratorIterator_setMaxDepth_parameter_count.phpt
--TEST--
SPL: RecursiveIteratorIterator, setMaxDepth check parameter count
--CREDITS--
Sean Burlington www.practicalweb.co.uk
TestFest London May 2009
--FILE--
<?php
  //line 681 ...
  $array = array(array(7,8,9),1,2,3,array(4,5,6));
$recursiveArrayIterator = new RecursiveArrayIterator($array);
$test = new RecursiveIteratorIterator($recursiveArrayIterator);

//var_dump($test->current());
$test->setMaxDepth();
$test->setMaxDepth(1);
$test->setMaxDepth(1,2);
$test->setMaxDepth(1,2,3);

//var_dump($test->current());


?>
===DONE===
--EXPECTF--
Warning: RecursiveIteratorIterator::setMaxDepth() expects at most 1 parameter, 
2 given in %s on line 10

Warning: RecursiveIteratorIterator::setMaxDepth() expects at most 1 parameter, 
3 given in %s on line 11
===DONE===

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/spl_recursive_iterator_iterator_key_case.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/spl_recursive_iterator_iterator_key_case.phpt
+++ php-src/ext/spl/tests/spl_recursive_iterator_iterator_key_case.phpt
--TEST--
SPL: Test on RecursiveIteratorIterator key function checking switch statements 
--CREDITS--
Rohan Abraham (rohanabrah...@gmail.com)
TestFest London May 2009
--FILE--
<?php
  $ar = array("one"=>1, "two"=>2, "three"=>array("four"=>4, "five"=>5, 
"six"=>array("seven"=>7)), "eight"=>8, -100 => 10, NULL => "null");
  $it = new RecursiveArrayIterator($ar);
  $it = new RecursiveIteratorIterator($it);
  foreach($it as $k=>$v)
  {
    echo "$k=>$v\n";
    var_dump($k);
  }
?>
--EXPECTF--
one=>1
%unicode|string%(3) "one"
two=>2
%unicode|string%(3) "two"
four=>4
%unicode|string%(4) "four"
five=>5
%unicode|string%(4) "five"
seven=>7
%unicode|string%(5) "seven"
eight=>8
%unicode|string%(5) "eight"
-100=>10
int(-100)
=>null
%unicode|string%(0) ""

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/splpriorityqueue_extract.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/splpriorityqueue_extract.phpt
+++ php-src/ext/spl/tests/splpriorityqueue_extract.phpt
--TEST--
SPL: splpriorityqueue extract() Test arguments
--CREDITS--
Roshan Abraham (roshanabrah...@gmail.com)
TestFest London May 2009
--FILE--
<?php

$sp = new SplPriorityQueue();

$sp->insert("1",1);

$sp->extract(1); // Should throw a warning as extract expects NO arguments

?>
--EXPECTF--

Warning: SplPriorityQueue::extract() expects exactly 0 parameters, 1 given in 
%s on line %d


http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/splpriorityqueue_setextractflags.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/splpriorityqueue_setextractflags.phpt
+++ php-src/ext/spl/tests/splpriorityqueue_setextractflags.phpt
--TEST--
SPL: splpriorityqueue setExtractFlags() Test arguments
--CREDITS--
Roshan Abraham (roshanabrah...@gmail.com)
TestFest London May 2009
--FILE--
<?php

$sp = new SplPriorityQueue();

$sp->setExtractFlags(1,1); // Should throw a warning as setExtractFlags expects 
only 1 argument

?>
--EXPECTF--

Warning: SplPriorityQueue::setExtractFlags() expects exactly 1 parameter, 2 
given in %s on line %d


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to