Annotation of embedaddon/php/tests/func/010.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: function with many parameters
                      3: --SKIPIF--
                      4: <?php
                      5: if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
                      6: ?>
                      7: --FILE--
                      8: <?php
                      9: 
                     10: // the stack size + some random constant
                     11: $boundary = 64*1024;
                     12: $limit    = $boundary+42;
                     13: 
                     14: 
                     15: function test($a,$b)
                     16: {
                     17:        var_dump($a === $b);
                     18:        test2($a,$b);
                     19: }
                     20: 
                     21: function test2($a, $b)
                     22: {
                     23:        if ($a !== $b) {
                     24:                var_dump("something went wrong: $a !== $b");
                     25:        }
                     26: }
                     27: 
                     28: 
                     29: // generate the function
                     30: $str = "<?php\nfunction x(";
                     31: 
                     32: for($i=0; $i < $limit; ++$i) {
                     33:        $str .= '$v'.dechex($i).($i===($limit-1) ? '' : ',');
                     34: }
                     35: 
                     36: $str .= ') {
                     37:        test($v42, \'42\');
                     38:        test(\'4000\', $v4000);
                     39:        test2($v300, \'300\');
                     40:        test($v0, \'0\'); // first
                     41:        test($v'.dechex($limit-1).", '".dechex($limit-1).'\'); // last
                     42:        test($v'.dechex($boundary).", '".dechex($boundary).'\'); //boundary
                     43:        test($v'.dechex($boundary+1).", '".dechex($boundary+1).'\'); //boundary+1
                     44:        test($v'.dechex($boundary-1).", '".dechex($boundary-1).'\'); //boundary-1
                     45: }';
                     46: 
                     47: // generate the function call
                     48: $str .= "\n\nx(";
                     49: 
                     50: for($i=0; $i< $limit; ++$i) {
                     51:        $str .= "'".dechex($i)."'".($i===($limit-1) ? '' : ',');
                     52: }
                     53: 
                     54: $str .= ");\n";
                     55: 
                     56: $filename = dirname(__FILE__).'/010-file.php';
                     57: file_put_contents(dirname(__FILE__).'/010-file.php', $str);
                     58: unset($str);
                     59: 
                     60: include($filename);
                     61: 
                     62: echo "Done\n";
                     63: 
                     64: ?>
                     65: --CLEAN--
                     66: <?php
                     67: @unlink(dirname(__FILE__).'/010-file.php');
                     68: ?>
                     69: --EXPECT--
                     70: bool(true)
                     71: bool(true)
                     72: bool(true)
                     73: bool(true)
                     74: bool(true)
                     75: bool(true)
                     76: bool(true)
                     77: Done

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