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>