Viewing File: /opt/alt/tests/alt-php80-pecl-xhprof-tideways_5.0.4-2.el8/tests/xhprof_002.phpt

--TEST--
Tideways: Test (direct and indirect) recursive function calls.
--FILE--
<?php

include_once dirname(__FILE__).'/common.php';

// dummy wrapper to test indirect recursion
function bar($depth, $use_direct_recursion) {
  foo($depth, $use_direct_recursion);
}

function foo($depth, $use_direct_recursion = false) {
  if ($depth > 0) {
    if ($use_direct_recursion)
      foo($depth - 1, $use_direct_recursion);
    else
      bar($depth - 1, $use_direct_recursion);
  }
}


tideways_xhprof_enable();
foo(4, true);
$output = tideways_xhprof_disable();

echo "Direct Recursion\n";
print_canonical($output);
echo "\n";


tideways_xhprof_enable();
foo(4, false);
$output = tideways_xhprof_disable();

echo "Indirect Recursion\n";
print_canonical($output);
echo "\n";

?>
--EXPECT--
Direct Recursion
foo==>foo@1                             : ct=       1; wt=*;
foo@1==>foo@2                           : ct=       1; wt=*;
foo@2==>foo@3                           : ct=       1; wt=*;
foo@3==>foo@4                           : ct=       1; wt=*;
main()                                  : ct=       1; wt=*;
main()==>foo                            : ct=       1; wt=*;
main()==>tideways_xhprof_disable        : ct=       1; wt=*;

Indirect Recursion
bar==>foo@1                             : ct=       1; wt=*;
bar@1==>foo@2                           : ct=       1; wt=*;
bar@2==>foo@3                           : ct=       1; wt=*;
bar@3==>foo@4                           : ct=       1; wt=*;
foo==>bar                               : ct=       1; wt=*;
foo@1==>bar@1                           : ct=       1; wt=*;
foo@2==>bar@2                           : ct=       1; wt=*;
foo@3==>bar@3                           : ct=       1; wt=*;
main()                                  : ct=       1; wt=*;
main()==>foo                            : ct=       1; wt=*;
main()==>tideways_xhprof_disable        : ct=       1; wt=*;
Back to Directory File Manager
<