summaryrefslogtreecommitdiffstats
path: root/debian/perl-framework/t/htdocs/php/regression2.php
diff options
context:
space:
mode:
Diffstat (limited to 'debian/perl-framework/t/htdocs/php/regression2.php')
-rw-r--r--debian/perl-framework/t/htdocs/php/regression2.php369
1 files changed, 369 insertions, 0 deletions
diff --git a/debian/perl-framework/t/htdocs/php/regression2.php b/debian/perl-framework/t/htdocs/php/regression2.php
new file mode 100644
index 0000000..0cd56bd
--- /dev/null
+++ b/debian/perl-framework/t/htdocs/php/regression2.php
@@ -0,0 +1,369 @@
+<?php
+for ($jdk=0; $jdk<50; $jdk++) {
+?><html>
+<head>
+<?php /* the point of this file is to intensively test various aspects of the parser.
+ * right now, each test focuses in one aspect only (e.g. variable aliasing, arithemtic operator,
+ * various control structures), while trying to combine code from other parts of the parser as well.
+ */
+?>
+*** Testing assignments and variable aliasing: ***
+<?php
+ /* This test tests assignments to variables using other variables as variable-names */
+ $a = "b";
+ $$a = "test";
+ $$$a = "blah";
+ ${$$$a}["associative arrays work too"] = "this is nifty";
+?>
+This should read "blah": <?php echo "$test\n"; ?>
+This should read "this is nifty": <?php echo $blah[$test="associative arrays work too"]."\n"; ?>
+*************************************************
+
+*** Testing integer operators ***
+<?php
+ /* test just about any operator possible on $i and $j (ints) */
+ $i = 5;
+ $j = 3;
+?>
+Correct result - 8: <?php echo $i+$j; ?>
+
+Correct result - 8: <?php echo $i+$j; ?>
+
+Correct result - 2: <?php echo $i-$j; ?>
+
+Correct result - -2: <?php echo $j-$i; ?>
+
+Correct result - 15: <?php echo $i*$j; ?>
+
+Correct result - 15: <?php echo $j*$i; ?>
+
+Correct result - 2: <?php echo $i%$j; ?>
+
+Correct result - 3: <?php echo $j%$i; ?>
+
+*********************************
+
+*** Testing real operators ***
+<?php
+ /* test just about any operator possible on $i and $j (floats) */
+ $i = 5.0;
+ $j = 3.0;
+?>
+Correct result - 8: <?php echo $i+$j; ?>
+
+Correct result - 8: <?php echo $i+$j; ?>
+
+Correct result - 2: <?php echo $i-$j; ?>
+
+Correct result - -2: <?php echo $j-$i; ?>
+
+Correct result - 15: <?php echo $i*$j; ?>
+
+Correct result - 15: <?php echo $j*$i; ?>
+
+Correct result - 2: <?php echo $i%$j; ?>
+
+Correct result - 3: <?php echo $j%$i; ?>
+
+*********************************
+
+*** Testing if/elseif/else control ***
+
+<?php
+/* sick if/elseif/else test by Andi :) */
+$a = 5;
+if ($a == "4") {
+ echo "This "." does "." not "." work\n";
+} elseif ($a == "5") {
+ echo "This "." works\n";
+ $a = 6;
+ if ("andi" == ($test = "andi")) {
+ echo "this_still_works\n";
+ } elseif (1) {
+ echo "should_not_print\n";
+ } else {
+ echo "should_not_print\n";
+ }
+ if (44 == 43) {
+ echo "should_not_print\n";
+ } else {
+ echo "should_print\n";
+ }
+} elseif ($a == 6) {
+ echo "this "."broken\n";
+ if (0) {
+ echo "this_should_not_print\n";
+ } else {
+ echo "TestingDanglingElse_This_Should_not_print\n";
+ }
+} else {
+ echo "This "."does "." not"." work\n";
+}
+?>
+
+
+*** Seriously nested if's test ***
+** spelling correction by kluzz **
+<?php
+/* yet another sick if/elseif/else test by Zeev */
+$i=$j=0;
+echo "Only two lines of text should follow:\n";
+if (0) { /* this code is not supposed to be executed */
+ echo "hmm, this shouldn't be displayed #1\n";
+ $j++;
+ if (1) {
+ $i += $j;
+ if (0) {
+ $j = ++$i;
+ if (1) {
+ $j *= $i;
+ echo "damn, this shouldn't be displayed\n";
+ } else {
+ $j /= $i;
+ ++$j;
+ echo "this shouldn't be displayed either\n";
+ }
+ } elseif (1) {
+ $i++; $j++;
+ echo "this isn't supposed to be displayed\n";
+ }
+ } elseif (0) {
+ $i++;
+ echo "this definitely shouldn't be displayed\n";
+ } else {
+ --$j;
+ echo "and this too shouldn't be displayed\n";
+ while ($j>0) {
+ $j--;
+ }
+ }
+} elseif (2-2) { /* as long as 2-2==0, this isn't supposed to be executed either */
+ $i = ++$j;
+ echo "hmm, this shouldn't be displayed #2\n";
+ if (1) {
+ $j = ++$i;
+ if (0) {
+ $j = $i*2+$j*($i++);
+ if (1) {
+ $i++;
+ echo "damn, this shouldn't be displayed\n";
+ } else {
+ $j++;
+ echo "this shouldn't be displayed either\n";
+ }
+ } else if (1) {
+ ++$j;
+ echo "this isn't supposed to be displayed\n";
+ }
+ } elseif (0) {
+ $j++;
+ echo "this definitely shouldn't be displayed\n";
+ } else {
+ $i++;
+ echo "and this too shouldn't be displayed\n";
+ }
+} else {
+ $j=$i++; /* this should set $i to 1, but shouldn't change $j (it's assigned $i's previous values, zero) */
+ echo "this should be displayed. should be: \$i=1, \$j=0. is: \$i=$i, \$j=$j\n";
+ if (1) {
+ $j += ++$i; /* ++$i --> $i==2, $j += 2 --> $j==2 */
+ if (0) {
+ $j += 40;
+ if (1) {
+ $i += 50;
+ echo "damn, this shouldn't be displayed\n";
+ } else {
+ $j += 20;
+ echo "this shouldn't be displayed either\n";
+ }
+ } else if (1) {
+ $j *= $i; /* $j *= 2 --> $j == 4 */
+ echo "this is supposed to be displayed. should be: \$i=2, \$j=4. is: \$i=$i, \$j=$j\n";
+ echo "3 loop iterations should follow:\n";
+ while ($i<=$j) {
+ echo $i++." $j\n";
+ }
+ }
+ } elseif (0) {
+ echo "this definitely shouldn't be displayed\n";
+ } else {
+ echo "and this too shouldn't be displayed\n";
+ }
+ echo "**********************************\n";
+}
+?>
+
+*** C-style else-if's ***
+<?php
+ /* looks like without we even tried, C-style else-if structure works fine! */
+ if ($a=0) {
+ echo "This shouldn't be displayed\n";
+ } else if ($a++) {
+ echo "This shouldn't be displayed either\n";
+ } else if (--$a) {
+ echo "No, this neither\n";
+ } else if (++$a) {
+ echo "This should be displayed\n";
+ } else {
+ echo "This shouldn't be displayed at all\n";
+ }
+?>
+*************************
+
+*** WHILE tests ***
+<?php
+$i=0;
+$j=20;
+while ($i<(2*$j)) {
+ if ($i>$j) {
+ echo "$i is greater than $j\n";
+ } else if ($i==$j) {
+ echo "$i equals $j\n";
+ } else {
+ echo "$i is smaller than $j\n";
+ }
+ $i++;
+}
+?>
+*******************
+
+
+*** Nested WHILEs ***
+<?php
+$arr_len=3;
+
+$i=0;
+while ($i<$arr_len) {
+ $j=0;
+ while ($j<$arr_len) {
+ $k=0;
+ while ($k<$arr_len) {
+ ${"test$i$j"}[$k] = $i+$j+$k;
+ $k++;
+ }
+ $j++;
+ }
+ $i++;
+}
+
+echo "Each array variable should be equal to the sum of its indices:\n";
+
+$i=0;
+while ($i<$arr_len) {
+ $j=0;
+ while ($j<$arr_len) {
+ $k=0;
+ while ($k<$arr_len) {
+ echo "\${test$i$j}[$k] = ".${"test$i$j"}[$k]."\n";
+ $k++;
+ }
+ $j++;
+ }
+ $i++;
+}
+?>
+*********************
+
+*** hash test... ***
+<?php
+/*
+$i=0;
+
+while ($i<10000) {
+ $arr[$i]=$i;
+ $i++;
+}
+
+$i=0;
+while ($i<10000) {
+ echo $arr[$i++]."\n";
+}
+*/
+echo "commented out...";
+?>
+
+**************************
+
+*** Hash resizing test ***
+<?php
+$i = 10;
+$a = "b";
+while ($i > 0) {
+ $a = $a . "a";
+ echo "$a\n";
+ $resize[$a] = $i;
+ $i--;
+}
+$i = 10;
+$a = "b";
+while ($i > 0) {
+ $a = $a . "a";
+ echo "$a\n";
+ echo $resize[$a]."\n";
+ $i--;
+}
+?>
+**************************
+
+
+*** break/continue test ***
+<?php
+$i=0;
+
+echo "\$i should go from 0 to 2\n";
+while ($i<5) {
+ if ($i>2) {
+ break;
+ }
+ $j=0;
+ echo "\$j should go from 3 to 4, and \$q should go from 3 to 4\n";
+ while ($j<5) {
+ if ($j<=2) {
+ $j++;
+ continue;
+ }
+ echo " \$j=$j\n";
+ for ($q=0; $q<=10; $q++) {
+ if ($q<3) {
+ continue;
+ }
+ if ($q>4) {
+ break;
+ }
+ echo " \$q=$q\n";
+ }
+ $j++;
+ }
+ $j=0;
+ echo "\$j should go from 0 to 2\n";
+ while ($j<5) {
+ if ($j>2) {
+ $k=0;
+ echo "\$k should go from 0 to 2\n";
+ while ($k<5) {
+ if ($k>2) {
+ break 2;
+ }
+ echo " \$k=$k\n";
+ $k++;
+ }
+ }
+ echo " \$j=$j\n";
+ $j++;
+ }
+ echo "\$i=$i\n";
+ $i++;
+}
+?>
+***********************
+
+*** Nested file include test ***
+<?php include("regression2.inc"); ?>
+********************************
+
+<?php
+{
+ echo "Tests completed.\n"; # testing some PHP style comment...
+}
+
+} ?>