helly Thu Oct 18 05:09:49 2007 UTC Modified files: /php-src/ext/spl/tests bug42654.phpt bug42703.phpt Log: - Commit new tests to correct brnach (funny broken checkout) http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/bug42654.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/spl/tests/bug42654.phpt diff -u /dev/null php-src/ext/spl/tests/bug42654.phpt:1.2 --- /dev/null Thu Oct 18 05:09:49 2007 +++ php-src/ext/spl/tests/bug42654.phpt Thu Oct 18 05:09:49 2007 @@ -0,0 +1,158 @@ +--TEST-- +Bug #42654 (RecursiveIteratorIterator modifies only part of leaves) +--FILE-- +<?php +$data = array(1 => 'val1', + array(2 => 'val2', + array(3 => 'val3'), + ), + 4 => 'val4' + ); + +$iterator = new RecursiveIteratorIterator(new +RecursiveArrayIterator($data)); +foreach($iterator as $foo) { + $key = $iterator->key(); + echo "update $key\n"; + var_dump($iterator->getInnerIterator()); + $iterator->offsetSet($key, 'alter'); + var_dump($iterator->getInnerIterator()); +} +$copy = $iterator->getArrayCopy(); +var_dump($copy); +?> +--EXPECTF-- +update 1 +object(RecursiveArrayIterator)#%d (1) { + ["storage":"ArrayIterator":private]=> + array(3) { + [1]=> + string(4) "val1" + [2]=> + array(2) { + [2]=> + string(4) "val2" + [3]=> + array(1) { + [3]=> + string(4) "val3" + } + } + [4]=> + string(4) "val4" + } +} +object(RecursiveArrayIterator)#%d (1) { + ["storage":"ArrayIterator":private]=> + array(3) { + [1]=> + string(5) "alter" + [2]=> + array(2) { + [2]=> + string(4) "val2" + [3]=> + array(1) { + [3]=> + string(4) "val3" + } + } + [4]=> + string(4) "val4" + } +} +update 2 +object(RecursiveArrayIterator)#%d (1) { + ["storage":"ArrayIterator":private]=> + array(2) { + [2]=> + string(4) "val2" + [3]=> + array(1) { + [3]=> + string(4) "val3" + } + } +} +object(RecursiveArrayIterator)#%d (1) { + ["storage":"ArrayIterator":private]=> + array(2) { + [2]=> + string(5) "alter" + [3]=> + array(1) { + [3]=> + string(4) "val3" + } + } +} +update 3 +object(RecursiveArrayIterator)#%d (1) { + ["storage":"ArrayIterator":private]=> + array(1) { + [3]=> + string(4) "val3" + } +} +object(RecursiveArrayIterator)#%d (1) { + ["storage":"ArrayIterator":private]=> + array(1) { + [3]=> + string(5) "alter" + } +} +update 4 +object(RecursiveArrayIterator)#%d (1) { + ["storage":"ArrayIterator":private]=> + array(3) { + [1]=> + string(5) "alter" + [2]=> + array(2) { + [2]=> + string(4) "val2" + [3]=> + array(1) { + [3]=> + string(4) "val3" + } + } + [4]=> + string(4) "val4" + } +} +object(RecursiveArrayIterator)#%d (1) { + ["storage":"ArrayIterator":private]=> + array(3) { + [1]=> + string(5) "alter" + [2]=> + array(2) { + [2]=> + string(4) "val2" + [3]=> + array(1) { + [3]=> + string(4) "val3" + } + } + [4]=> + string(5) "alter" + } +} +array(3) { + [1]=> + string(5) "alter" + [2]=> + array(2) { + [2]=> + string(4) "val2" + [3]=> + array(1) { + [3]=> + string(4) "val3" + } + } + [4]=> + string(5) "alter" +} http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/bug42703.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/spl/tests/bug42703.phpt diff -u /dev/null php-src/ext/spl/tests/bug42703.phpt:1.2 --- /dev/null Thu Oct 18 05:09:49 2007 +++ php-src/ext/spl/tests/bug42703.phpt Thu Oct 18 05:09:49 2007 @@ -0,0 +1,41 @@ +--TEST-- +Bug #42703 (Exception raised in an iterator::current() causes segfault in FilterIterator) +--FILE-- +<?php +class BlaIterator implements Iterator +{ + public function rewind() { } + + public function next() { } + + public function valid() { + return true; + } + + public function current() + { + throw new Exception('boo'); + } + + public function key() { } +} + +$it = new BlaIterator(); +$itit = new IteratorIterator($it); + +try { + foreach($itit as $key => $value) { + echo $key, $value; + } +} +catch (Exception $e) { + var_dump($e->getMessage()); +} + +var_dump($itit->current()); +var_dump($itit->key()); +?> +--EXPECTF-- +string(3) "boo" +NULL +NULL
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php