File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
tests /
lang /
023-1.inc
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 6 months ago) by
misho
Branches:
php,
MAIN
CVS tags:
v5_4_3elwix,
v5_4_29p0,
v5_4_29,
v5_4_20p0,
v5_4_20,
v5_4_17p0,
v5_4_17,
v5_3_10,
HEAD
php
1: <html>
2: <head>
3: <?php
4: /* the point of this file is to intensively test various aspects of
5: * the parser. right now, each test focuses in one aspect only
6: * (e.g. variable aliasing, arithemtic operator, various control
7: * structures), while trying to combine code from other parts of the
8: * parser as well.
9: */
10: ?>
11:
12: *** Testing assignments and variable aliasing: ***<br>
13: <?php
14: /* This test tests assignments to variables using other variables as variable-names */
15: $a = "b";
16: $$a = "test";
17: $$$a = "blah";
18: ${$$$a}["associative arrays work too"] = "this is nifty";
19: ?>
20: This should read "blah": <?php echo "$test<br>\n"; ?>
21: This should read "this is nifty": <?php echo $blah[$test="associative arrays work too"]."<br>\n"; ?>
22: *************************************************<br>
23:
24: *** Testing integer operators ***<br>
25: <?php
26: /* test just about any operator possible on $i and $j (ints) */
27: $i = 5;
28: $j = 3;
29: ?>
30: Correct result - 8: <?php echo $i+$j; ?><br>
31: Correct result - 8: <?php echo $i+$j; ?><br>
32: Correct result - 2: <?php echo $i-$j; ?><br>
33: Correct result - -2: <?php echo $j-$i; ?><br>
34: Correct result - 15: <?php echo $i*$j; ?><br>
35: Correct result - 15: <?php echo $j*$i; ?><br>
36: Correct result - 2: <?php echo $i%$j; ?><br>
37: Correct result - 3: <?php echo $j%$i; ?><br>
38: *********************************<br>
39:
40: *** Testing real operators ***<br>
41: <?php
42: /* test just about any operator possible on $i and $j (floats) */
43: $i = 5.0;
44: $j = 3.0;
45: ?>
46: Correct result - 8: <?php echo $i+$j; ?><br>
47: Correct result - 8: <?php echo $i+$j; ?><br>
48: Correct result - 2: <?php echo $i-$j; ?><br>
49: Correct result - -2: <?php echo $j-$i; ?><br>
50: Correct result - 15: <?php echo $i*$j; ?><br>
51: Correct result - 15: <?php echo $j*$i; ?><br>
52: Correct result - 2: <?php echo $i%$j; ?><br>
53: Correct result - 3: <?php echo $j%$i; ?><br>
54: *********************************<br>
55:
56: *** Testing if/elseif/else control ***<br>
57:
58: <?php
59: /* sick if/elseif/else test by Andi :) */
60: $a = 5;
61: if ($a == "4") {
62: echo "This "." does "." not "." work<br>\n";
63: } elseif ($a == "5") {
64: echo "This "." works<br>\n";
65: $a = 6;
66: if ("andi" == ($test = "andi")) {
67: echo "this_still_works<br>\n";
68: } elseif (1) {
69: echo "should_not_print<br>\n";
70: } else {
71: echo "should_not_print<br>\n";
72: }
73: if (44 == 43) {
74: echo "should_not_print<br>\n";
75: } else {
76: echo "should_print<br>\n";
77: }
78: } elseif ($a == 6) {
79: echo "this "."broken<br>\n";
80: if (0) {
81: echo "this_should_not_print<br>\n";
82: } else {
83: echo "TestingDanglingElse_This_Should_not_print<br>\n";
84: }
85: } else {
86: echo "This "."does "." not"." work<br>\n";
87: }
88: ?>
89:
90:
91: *** Seriously nested if's test ***<br>
92: ** spelling correction by kluzz **
93: <?php
94: /* yet another sick if/elseif/else test by Zeev */
95: $i=$j=0;
96: echo "Only two lines of text should follow:<br>\n";
97: if (0) { /* this code is not supposed to be executed */
98: echo "hmm, this shouldn't be displayed #1<br>\n";
99: $j++;
100: if (1) {
101: $i
102: +=
103: $j;
104: if (0) {
105: $j = ++$i;
106: if (1) {
107: $j *= $i;
108: echo "damn, this shouldn't be displayed<br>\n";
109: } else {
110: $j /= $i;
111: ++$j;
112: echo "this shouldn't be displayed either<br>\n";
113: }
114: } elseif (1) {
115: $i++; $j++;
116: echo "this isn't supposed to be displayed<br>\n";
117: }
118: } elseif (0) {
119: $i++;
120: echo "this definitely shouldn't be displayed<br>\n";
121: } else {
122: --$j;
123: echo "and this too shouldn't be displayed<br>\n";
124: while ($j>0) {
125: $j--;
126: }
127: }
128: } elseif (2-2) { /* as long as 2-2==0, this isn't supposed to be executed either */
129: $i = ++$j;
130: echo "hmm, this shouldn't be displayed #2<br>\n";
131: if (1) {
132: $j = ++$i;
133: if (0) {
134: $j = $i*2+$j*($i++);
135: if (1) {
136: $i++;
137: echo "damn, this shouldn't be displayed<br>\n";
138: } else {
139: $j++;
140: echo "this shouldn't be displayed either<br>\n";
141: }
142: } else if (1) {
143: ++$j;
144: echo "this isn't supposed to be displayed<br>\n";
145: }
146: } elseif (0) {
147: $j++;
148: echo "this definitely shouldn't be displayed<br>\n";
149: } else {
150: $i++;
151: echo "and this too shouldn't be displayed<br>\n";
152: }
153: } else {
154: $j=$i++; /* this should set $i to 1, but shouldn't change $j (it's assigned $i's previous values, zero) */
155: echo "this should be displayed. should be: \$i=1, \$j=0. is: \$i=$i, \$j=$j<br>\n";
156: if (1) {
157: $j += ++$i; /* ++$i --> $i==2, $j += 2 --> $j==2 */
158: if (0) {
159: $j += 40;
160: if (1) {
161: $i += 50;
162: echo "damn, this shouldn't be displayed<br>\n";
163: } else {
164: $j += 20;
165: echo "this shouldn't be displayed either<br>\n";
166: }
167: } else if (1) {
168: $j *= $i; /* $j *= 2 --> $j == 4 */
169: echo "this is supposed to be displayed. should be: \$i=2, \$j=4. is: \$i=$i, \$j=$j<br>\n";
170: echo "3 loop iterations should follow:<br>\n";
171: while ($i<=$j) {
172: echo $i++." $j<br>\n";
173: }
174: }
175: } elseif (0) {
176: echo "this definitely shouldn't be displayed<br>\n";
177: } else {
178: echo "and this too shouldn't be displayed<br>\n";
179: }
180: echo "**********************************<br>\n";
181: }
182: ?>
183:
184: *** C-style else-if's ***<br>
185: <?php
186: /* looks like without we even tried, C-style else-if structure works fine! */
187: if ($a=0) {
188: echo "This shouldn't be displayed<br>\n";
189: } else if ($a++) {
190: echo "This shouldn't be displayed either<br>\n";
191: } else if (--$a) {
192: echo "No, this neither<br>\n";
193: } else if (++$a) {
194: echo "This should be displayed<br>\n";
195: } else {
196: echo "This shouldn't be displayed at all<br>\n";
197: }
198: ?>
199: *************************<br>
200:
201: *** WHILE tests ***<br>
202: <?php
203: $i=0;
204: $j=20;
205: while ($i<(2*$j)) {
206: if ($i>$j) {
207: echo "$i is greater than $j<br>\n";
208: } else if ($i==$j) {
209: echo "$i equals $j<br>\n";
210: } else {
211: echo "$i is smaller than $j<br>\n";
212: }
213: $i++;
214: }
215: ?>
216: *******************<br>
217:
218:
219: *** Nested WHILEs ***<br>
220: <?php
221: $arr_len=3;
222:
223: $i=0;
224: while ($i<$arr_len) {
225: $j=0;
226: while ($j<$arr_len) {
227: $k=0;
228: while ($k<$arr_len) {
229: ${"test$i$j"}[$k] = $i+$j+$k;
230: $k++;
231: }
232: $j++;
233: }
234: $i++;
235: }
236:
237: echo "Each array variable should be equal to the sum of its indices:<br>\n";
238:
239: $i=0;
240: while ($i<$arr_len) {
241: $j=0;
242: while ($j<$arr_len) {
243: $k=0;
244: while ($k<$arr_len) {
245: echo "\${test$i$j}[$k] = ".${"test$i$j"}[$k]."<br>\n";
246: $k++;
247: }
248: $j++;
249: }
250: $i++;
251: }
252: ?>
253: *********************<br>
254:
255: *** hash test... ***<br>
256: <?php
257: /*
258: $i=0;
259:
260: while ($i<10000) {
261: $arr[$i]=$i;
262: $i++;
263: }
264:
265: $i=0;
266: while ($i<10000) {
267: echo $arr[$i++]."<br>\n";
268: }
269: */
270: echo "commented out...";
271: ?>
272:
273: **************************<br>
274:
275: *** Hash resizing test ***<br>
276: <?php
277: $i = 10;
278: $a = 'b';
279: while ($i > 0) {
280: $a = $a . 'a';
281: echo "$a<br>\n";
282: $resize[$a] = $i;
283: $i--;
284: }
285: $i = 10;
286: $a = 'b';
287: while ($i > 0) {
288: $a = $a . 'a';
289: echo "$a<br>\n";
290: echo $resize[$a]."<br>\n";
291: $i--;
292: }
293: ?>
294: **************************<br>
295:
296:
297: *** break/continue test ***<br>
298: <?php
299: $i=0;
300:
301: echo "\$i should go from 0 to 2<br>\n";
302: while ($i<5) {
303: if ($i>2) {
304: break;
305: }
306: $j=0;
307: echo "\$j should go from 3 to 4, and \$q should go from 3 to 4<br>\n";
308: while ($j<5) {
309: if ($j<=2) {
310: $j++;
311: continue;
312: }
313: echo " \$j=$j<br>\n";
314: for ($q=0; $q<=10; $q++) {
315: if ($q<3) {
316: continue;
317: }
318: if ($q>4) {
319: break;
320: }
321: echo " \$q=$q<br>\n";
322: }
323: $j++;
324: }
325: $j=0;
326: echo "\$j should go from 0 to 2<br>\n";
327: while ($j<5) {
328: if ($j>2) {
329: $k=0;
330: echo "\$k should go from 0 to 2<br>\n";
331: while ($k<5) {
332: if ($k>2) {
333: break 2;
334: }
335: echo " \$k=$k<br>\n";
336: $k++;
337: }
338: }
339: echo " \$j=$j<br>\n";
340: $j++;
341: }
342: echo "\$i=$i<br>\n";
343: $i++;
344: }
345: ?>
346: ***********************<br>
347:
348: *** Nested file include test ***<br>
349: <?php include("023-2.inc"); ?>
350: ********************************<br>
351:
352: <?php
353: {
354: echo "Tests completed.<br>\n"; # testing some PHP style comment...
355: }
356: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>