Annotation of embedaddon/php/ext/spl/tests/bug54384.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #54384: Several SPL classes crash when the parent constructor is not called
                      3: --FILE--
                      4: <?php
                      5: 
                      6: function test($f) {
                      7:        try {
                      8:                $f();
                      9:                echo "ran normally (unexpected)\n\n";
                     10:        } catch (LogicException $e) {
                     11:                echo "exception (expected)\n";
                     12:        }
                     13: }
                     14: 
                     15: echo "IteratorIterator... ";
                     16: class IteratorIteratorTest extends IteratorIterator {
                     17:     function __construct(){}
                     18: }
                     19: test( function() {
                     20:        $o = new IteratorIteratorTest;
                     21:        $o->rewind();
                     22: } );
                     23: 
                     24: echo "FilterIterator... ";
                     25: class FilterIteratorTest extends FilterIterator {
                     26:     function __construct(){}
                     27:     function accept(){}
                     28: }
                     29: test( function() {
                     30:        $o = new FilterIteratorTest;
                     31:        $o->rewind();
                     32: } );
                     33: 
                     34: echo "RecursiveFilterIterator... ";
                     35: class RecursiveFilterIteratorTest extends RecursiveFilterIterator {
                     36:     function __construct(){}
                     37:     function accept(){}
                     38: }
                     39: test( function() {
                     40: $o = new RecursiveFilterIteratorTest;
                     41: $o->hasChildren();
                     42: } );
                     43: 
                     44: echo "ParentIterator... ";
                     45: class ParentIteratorTest extends ParentIterator {
                     46:     function __construct(){}
                     47: }
                     48: test ( function() {
                     49: $o = new ParentIteratorTest;
                     50: $o->accept();
                     51: } );
                     52: 
                     53: echo "LimitIterator... ";
                     54: class LimitIteratorTest extends LimitIterator {
                     55:     function __construct(){}
                     56: }
                     57: test ( function() {
                     58: $o = new LimitIteratorTest;
                     59: $o->rewind();
                     60: } );
                     61: 
                     62: echo "CachingIterator... ";
                     63: class CachingIteratorTest extends CachingIterator {
                     64:     function __construct(){}
                     65: }
                     66: test ( function() {
                     67: $o = new CachingIteratorTest;
                     68: $o->rewind();
                     69: } );
                     70: 
                     71: echo "RecursiveCachingIterator... ";
                     72: class RecursiveCachingIteratorTest extends RecursiveCachingIterator {
                     73:     function __construct(){}
                     74: }
                     75: test ( function() {
                     76: $o = new RecursiveCachingIteratorTest;
                     77: $o->rewind();
                     78: } );
                     79: 
                     80: echo "NoRewindIterator... ";
                     81: class NoRewindIteratorTest extends NoRewindIterator {
                     82:     function __construct(){}
                     83: }
                     84: test ( function() {
                     85: $o = new NoRewindIteratorTest;
                     86: $o->valid();
                     87: } );
                     88: 
                     89: echo "RegexIterator... ";
                     90: class RegexIteratorTest extends RegexIterator {
                     91:     function __construct(){}
                     92: }
                     93: test ( function() {
                     94: $o = new RegexIteratorTest;
                     95: $o->rewind();
                     96: } );
                     97: 
                     98: echo "RecursiveRegexIterator... ";
                     99: class RecursiveRegexIteratorTest extends RecursiveRegexIterator {
                    100:     function __construct(){}
                    101: }
                    102: test ( function() {
                    103: $o = new RecursiveRegexIteratorTest;
                    104: $o->hasChildren();
                    105: } );
                    106: 
                    107: echo "GlobIterator... ";
                    108: class GlobIteratorTest extends GlobIterator {
                    109:     function __construct(){}
                    110: }
                    111: test ( function() {
                    112: $o = new GlobIteratorTest;
                    113: $o->count();
                    114: } );
                    115: 
                    116: echo "SplFileObject... ";
                    117: class SplFileObjectTest extends SplFileObject {
                    118:     function __construct(){}
                    119: }
                    120: test ( function() {
                    121: $o = new SplFileObjectTest;
                    122: $o->rewind();
                    123: } );
                    124: 
                    125: echo "SplTempFileObject... ";
                    126: class SplTempFileObjectTest extends SplTempFileObject {
                    127:     function __construct(){}
                    128: }
                    129: test ( function() {
                    130: $o = new SplTempFileObjectTest;
                    131: $o->rewind();
                    132: } );
                    133: 
                    134: echo "AppendIterator... ";
                    135: class AppendIteratorTest extends AppendIterator {
                    136:     function __construct(){}
                    137: }
                    138: test ( function() {
                    139: $o = new AppendIteratorTest;
                    140: foreach ($o as $a) {
                    141: echo $a,"\n";
                    142: }
                    143: } );
                    144: 
                    145: echo "InfiniteIterator... ";
                    146: class InfiniteIteratorTest extends InfiniteIterator {
                    147:     function __construct(){}
                    148: }
                    149: test ( function() {
                    150: $o = new InfiniteIteratorTest;
                    151: foreach ($o as $a) {
                    152: echo $a,"\n";
                    153: }
                    154: } );
                    155: 
                    156: --EXPECT--
                    157: IteratorIterator... exception (expected)
                    158: FilterIterator... exception (expected)
                    159: RecursiveFilterIterator... exception (expected)
                    160: ParentIterator... exception (expected)
                    161: LimitIterator... exception (expected)
                    162: CachingIterator... exception (expected)
                    163: RecursiveCachingIterator... exception (expected)
                    164: NoRewindIterator... exception (expected)
                    165: RegexIterator... exception (expected)
                    166: RecursiveRegexIterator... exception (expected)
                    167: GlobIterator... exception (expected)
                    168: SplFileObject... exception (expected)
                    169: SplTempFileObject... exception (expected)
                    170: AppendIterator... exception (expected)
                    171: InfiniteIterator... exception (expected)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>