From: Marcus Boerger Date: Sat, 20 May 2006 20:38:28 +0000 (+0000) Subject: - Split up the test in different problem categories X-Git-Tag: BEFORE_NEW_OUTPUT_API~140 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0a0d7b046d1ec1527dd9256660fe0f8515ce8b16;p=php - Split up the test in different problem categories --- diff --git a/ext/spl/tests/iterator_041.phpt b/ext/spl/tests/iterator_041.phpt index fa43d8ab3d..af42b1cdec 100755 --- a/ext/spl/tests/iterator_041.phpt +++ b/ext/spl/tests/iterator_041.phpt @@ -8,6 +8,7 @@ SPL: iterator_to_array() and exceptions class MyArrayIterator extends ArrayIterator { static protected $fail = 0; + public $state; static function fail($state, $method) { @@ -19,6 +20,7 @@ class MyArrayIterator extends ArrayIterator function __construct() { + $this->state = MyArrayIterator::$fail; self::fail(0, __FUNCTION__); parent::__construct(array(1, 2)); self::fail(1, __FUNCTION__); @@ -56,10 +58,10 @@ class MyArrayIterator extends ArrayIterator function __destruct() { - self::fail(7, __FUNCTION__); +// self::fail(7, __FUNCTION__); } - static function test($func) + static function test($func, $skip = null) { echo "===$func===\n"; self::$fail = 0; @@ -72,29 +74,35 @@ class MyArrayIterator extends ArrayIterator } catch (Exception $e) { - var_dump($e->getMessage()); + echo $e->getMessage() . "\n"; + } + if (isset($skip[self::$fail])) + { + self::$fail = $skip[self::$fail]; + } + else + { + self::$fail++; } - self::$fail++; } } } MyArrayIterator::test('iterator_to_array'); -MyArrayIterator::test('iterator_count'); +MyArrayIterator::test('iterator_count', array(3 => 6)); ?> ===DONE=== --EXPECT-- ===iterator_to_array=== -string(22) "State 0: __construct()" -string(22) "State 1: __construct()" -string(17) "State 2: rewind()" -string(16) "State 3: valid()" -string(18) "State 4: current()" -string(14) "State 5: key()" -string(15) "State 6: next()" -string(21) "State 7: __destruct()" +State 0: __construct() +State 1: __construct() +State 2: rewind() +State 3: valid() +State 4: current() +State 5: key() +State 6: next() array(2) { [0]=> int(1) @@ -102,11 +110,10 @@ array(2) { int(2) } ===iterator_count=== -string(22) "State 0: __construct()" -string(22) "State 1: __construct()" -string(17) "State 2: rewind()" -string(16) "State 3: valid()" -string(15) "State 6: next()" -string(21) "State 7: __destruct()" +State 0: __construct() +State 1: __construct() +State 2: rewind() +State 3: valid() +State 6: next() int(2) ===DONE=== diff --git a/ext/spl/tests/iterator_041a.phpt b/ext/spl/tests/iterator_041a.phpt new file mode 100755 index 0000000000..d03cbba9dc --- /dev/null +++ b/ext/spl/tests/iterator_041a.phpt @@ -0,0 +1,109 @@ +--TEST-- +SPL: iterator_to_array() and exceptions from destruct +--SKIPIF-- + +--FILE-- +state = MyArrayIterator::$fail; + self::fail(0, __FUNCTION__); + parent::__construct(array(1, 2)); + self::fail(1, __FUNCTION__); + } + + function rewind() + { + self::fail(2, __FUNCTION__); + return parent::rewind(); + } + + function valid() + { + self::fail(3, __FUNCTION__); + return parent::valid(); + } + + function current() + { + self::fail(4, __FUNCTION__); + return parent::current(); + } + + function key() + { + self::fail(5, __FUNCTION__); + return parent::key(); + } + + function next() + { + self::fail(6, __FUNCTION__); + return parent::next(); + } + + function __destruct() + { + self::fail(7, __FUNCTION__); + } + + static function test($func, $skip = null) + { + echo "===$func===\n"; + self::$fail = 7; + while(self::$fail < 10) + { + try + { + var_dump($func(new MyArrayIterator())); + break; + } + catch (Exception $e) + { + echo $e->getMessage() . "\n"; + } + if (isset($skip[self::$fail])) + { + self::$fail = $skip[self::$fail]; + } + else + { + self::$fail++; + } + } + } +} + +MyArrayIterator::test('iterator_to_array'); +MyArrayIterator::test('iterator_count', array(3 => 6)); + +?> +===DONE=== + +--EXPECT-- +===iterator_to_array=== +State 7: __destruct() +array(2) { + [0]=> + int(1) + [1]=> + int(2) +} +===iterator_count=== +State 7: __destruct() +int(2) +===DONE=== diff --git a/ext/spl/tests/iterator_041b.phpt b/ext/spl/tests/iterator_041b.phpt new file mode 100755 index 0000000000..3c999e8325 --- /dev/null +++ b/ext/spl/tests/iterator_041b.phpt @@ -0,0 +1,107 @@ +--TEST-- +SPL: iterator_to_array() and exceptions from delayed destruct +--SKIPIF-- + +--FILE-- +state = MyArrayIterator::$fail; + self::fail(0, __FUNCTION__); + parent::__construct(array(1, 2)); + self::fail(1, __FUNCTION__); + } + + function rewind() + { + self::fail(2, __FUNCTION__); + return parent::rewind(); + } + + function valid() + { + self::fail(3, __FUNCTION__); + return parent::valid(); + } + + function current() + { + self::fail(4, __FUNCTION__); + return parent::current(); + } + + function key() + { + self::fail(5, __FUNCTION__); + return parent::key(); + } + + function next() + { + self::fail(6, __FUNCTION__); + return parent::next(); + } + + function __destruct() + { + self::fail(7, __FUNCTION__); + } + + static function test($func, $skip = null) + { + echo "===$func===\n"; + self::$fail = 0; + while(self::$fail < 10) + { + try + { + var_dump($func(new MyArrayIterator())); + break; + } + catch (Exception $e) + { + echo $e->getMessage() . "\n"; + } + if (isset($skip[self::$fail])) + { + self::$fail = $skip[self::$fail]; + } + else + { + self::$fail++; + } + } + } +} + +MyArrayIterator::test('iterator_to_array'); +MyArrayIterator::test('iterator_count', array(3 => 6)); + +?> +===DONE=== + +--EXPECT-- +===iterator_to_array=== +State 0: __construct() +State 1: __construct() +State 2: rewind() +State 3: valid() +State 4: current() +State 5: key() +State 6: next() + +Fatal error: Ignoring exception from MyArrayIterator::__destruct() while an exception is already active (Uncaught Exception in /usr/src/php-cvs/ext/spl/tests/iterator_041b.phpt on line 17) in %siterator_041b.php on line %d