]> granicus.if.org Git - php/commitdiff
tests for pear error handling
authorGreg Beaver <cellog@php.net>
Wed, 13 Aug 2003 20:34:48 +0000 (20:34 +0000)
committerGreg Beaver <cellog@php.net>
Wed, 13 Aug 2003 20:34:48 +0000 (20:34 +0000)
pear/tests/pear2.phpt [new file with mode: 0644]

diff --git a/pear/tests/pear2.phpt b/pear/tests/pear2.phpt
new file mode 100644 (file)
index 0000000..103de0d
--- /dev/null
@@ -0,0 +1,848 @@
+--TEST--
+PEAR complete set/push/pop error-handling test
+--SKIPIF--
+skip
+--FILE--
+<?php
+
+require_once "PEAR.php";
+
+class testErrorHandlingStatic {
+    function doSetErrorHandlingFunction()
+    {
+        print "testing in class setErrorHandling\n";
+        PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
+        echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+                     '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+    }
+    
+    function doSetErrorHandlingStatic()
+    {
+        print "testing in class setErrorHandling array(obj, method)\n";
+        $obj = new testErrorHandlingPEAR;
+        PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
+        echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+                     '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+    }
+    
+    function doSetErrorHandlingObject()
+    {
+        print "testing in class setErrorHandling array(class, method)\n";
+        PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
+        echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+                     '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+    }
+
+    function doPushErrorHandlingFunction()
+    {
+        print "testing in class pushErrorHandling\n";
+        PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
+        echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+    }
+    
+    function doPushErrorHandlingObject()
+    {
+        print "testing in class pushErrorHandling array(obj, method)\n";
+        $obj = new testErrorHandlingPEAR;
+        PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
+        echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+    }
+    
+    function doPushErrorHandlingStatic()
+    {
+        print "testing in class pushErrorHandling array(class, method)\n";
+        PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
+        echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+    }
+    
+    function doPopErrorHandling()
+    {
+        print "testing in class popErrorHandling\n";
+        PEAR::popErrorHandling();
+        echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+    }
+    
+    function fakeHandleError($err)
+    {
+    }
+}
+
+class testErrorHandlingPEAR extends PEAR {
+    
+    function fakeHandleError($err)
+    {
+    }
+
+    function doSetErrorHandlingFunction()
+    {
+        print "testing in PEAR setErrorHandling\n";
+        PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
+        echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+                     '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+        echoPEARVars('$this->_default_error_mode', $this->_default_error_mode,
+                     '$this->_default_error_options', $this->_default_error_options);
+    }
+    
+    function doSetErrorHandlingStatic()
+    {
+        print "testing in PEAR setErrorHandling array(obj, method)\n";
+        $obj = new testErrorHandlingPEAR;
+        PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
+        echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+                     '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+        echoPEARVars('$this->_default_error_mode', $this->_default_error_mode,
+                     '$this->_default_error_options', $this->_default_error_options);
+    }
+    
+    function doSetErrorHandlingObject()
+    {
+        print "testing in PEAR setErrorHandling array(class, method)\n";
+        PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
+        echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+                     '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+        echoPEARVars('$this->_default_error_mode', $this->_default_error_mode,
+                     '$this->_default_error_options', $this->_default_error_options);
+    }
+
+    function doPushErrorHandlingFunction()
+    {
+        print "testing in PEAR pushErrorHandling\n";
+        PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
+        echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+    }
+    
+    function doPushErrorHandlingObject()
+    {
+        print "testing in PEAR pushErrorHandling array(obj, method)\n";
+        $obj = new testErrorHandlingPEAR;
+        PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
+        echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+    }
+    
+    function doPushErrorHandlingStatic()
+    {
+        print "testing in PEAR pushErrorHandling array(class, method)\n";
+        PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
+        echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+    }
+    
+    function doPopErrorHandling()
+    {
+        print "testing in PEAR popErrorHandling\n";
+        PEAR::popErrorHandling();
+        echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+    }
+}
+
+function echoPEARVars($name1, $mode, $name2, $options, $indent = '')
+{
+    $levelMap = 
+        array(
+            E_USER_NOTICE => 'E_USER_NOTICE',
+            E_USER_WARNING => 'E_USER_WARNING',
+            E_USER_ERROR => 'E_USER_ERROR',
+        );
+    $pearLevelMap =
+        array(
+            PEAR_ERROR_RETURN =>'PEAR_ERROR_RETURN',
+            PEAR_ERROR_PRINT =>'PEAR_ERROR_PRINT',
+            PEAR_ERROR_TRIGGER =>'PEAR_ERROR_TRIGGER',
+            PEAR_ERROR_DIE =>'PEAR_ERROR_DIE',
+            PEAR_ERROR_CALLBACK =>'PEAR_ERROR_CALLBACK',
+            PEAR_ERROR_EXCEPTION =>'PEAR_ERROR_EXCEPTION',
+        );
+    print $indent . "echoing PEAR error-handling Variables:\n";
+    print "$indent--------------------------------------\n";
+    print $indent . "$name1:\n";
+    $levels = get_error_mode($mode);
+    print $indent;
+    foreach($levels as $level) {
+        print $pearLevelMap[$level] . ',';
+    }
+    print "\n";
+    print $indent . "$name2:\n";
+    if (is_string($options)) {
+        print $indent . 'Callback: ' . $options. "()\n";
+    } elseif (is_array($options)) {
+        print $indent . 'Callback: ';
+        if (is_string($options[0])) {
+            print '(static) ' . $options[0] . '::';
+        } else {
+            print get_class($options[0]) . '->';
+        }
+        print $options[1] . "()\n";
+    } else {
+        print $indent . $levelMap[$options] . "\n";
+    }
+    print "$indent--------------------------------------\n";
+}
+
+function echoPEARStack($name, $stack)
+{
+    print "stack $name:\n";
+    foreach ($stack as $i =>  $item) {
+        print "Index $i:\n";
+        echoPEARVars('mode', $item[0], 'options', $item[1], '    ');
+    }
+}
+
+function get_error_mode($err)
+{
+    $ret = array();
+    $level = 0;
+    while($level < 7) {
+        $a = ($err >> $level++) & 1;
+        if ($a) {
+            $ret[] = 1 << ($level - 1);
+        }
+    }
+    return $ret;
+}
+print "testing static error-handling global code\n";
+echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+             '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+print "testing setErrorHandling\n";
+PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
+echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+             '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+print "testing setErrorHandling array(obj, method)\n";
+$obj = new testErrorHandlingPEAR;
+PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
+echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+             '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+print "testing setErrorHandling array(class, method)\n";
+PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
+echoPEARVars('_PEAR_default_error_mode', $GLOBALS['_PEAR_default_error_mode'],
+             '_PEAR_default_error_options', $GLOBALS['_PEAR_default_error_options']);
+
+
+print "testing pushErrorHandling\n";
+PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, 'get_error_mode');
+echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+print "testing pushErrorHandling array(obj, method)\n";
+$obj = new testErrorHandlingPEAR;
+PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array(&$obj, 'fakeHandleError'));
+echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+print "testing pushErrorHandling array(class, method)\n";
+PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array('testErrorHandlingStatic', 'fakeHandleError'));
+echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+
+
+print "testing popErrorHandling\n";
+PEAR::popErrorHandling();
+echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+print "testing popErrorHandling\n";
+$obj = new testErrorHandlingPEAR;
+PEAR::popErrorHandling();
+echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+print "testing popErrorHandling\n";
+PEAR::popErrorHandling();
+echoPEARStack('_PEAR_error_handler_stack', $GLOBALS['_PEAR_error_handler_stack']);
+print "*******************************************\n";
+print "testing static error-handling in-class code\n";
+print "*******************************************\n";
+PEAR::setErrorHandling(PEAR_ERROR_RETURN, E_USER_NOTICE);
+$obj = new testErrorHandlingStatic;
+$obj->doSetErrorHandlingFunction();
+$obj->doSetErrorHandlingStatic();
+$obj->doSetErrorHandlingObject();
+$obj->doPushErrorHandlingFunction();
+$obj->doPushErrorHandlingStatic();
+$obj->doPushErrorHandlingObject();
+$obj->doPopErrorHandling();
+$obj->doPopErrorHandling();
+$obj->doPopErrorHandling();
+print "*******************************************\n";
+print "testing non-static error-handling in-class code\n";
+print "*******************************************\n";
+PEAR::setErrorHandling(PEAR_ERROR_RETURN, E_USER_NOTICE);
+$obj = new testErrorHandlingPEAR;
+$obj->doSetErrorHandlingFunction();
+$obj->doSetErrorHandlingStatic();
+$obj->doSetErrorHandlingObject();
+$obj->doPushErrorHandlingFunction();
+$obj->doPushErrorHandlingStatic();
+$obj->doPushErrorHandlingObject();
+$obj->doPopErrorHandling();
+$obj->doPopErrorHandling();
+$obj->doPopErrorHandling();
+
+?>
+--GET--
+--POST--
+--EXPECT--
+testing static error-handling global code
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_RETURN,
+_PEAR_default_error_options:
+E_USER_NOTICE
+--------------------------------------
+testing setErrorHandling
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_CALLBACK,
+_PEAR_default_error_options:
+Callback: get_error_mode()
+--------------------------------------
+testing setErrorHandling array(obj, method)
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_CALLBACK,
+_PEAR_default_error_options:
+Callback: testerrorhandlingpear->fakeHandleError()
+--------------------------------------
+testing setErrorHandling array(class, method)
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_CALLBACK,
+_PEAR_default_error_options:
+Callback: (static) testErrorHandlingStatic::fakeHandleError()
+--------------------------------------
+testing pushErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+testing pushErrorHandling array(obj, method)
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: testerrorhandlingpear->fakeHandleError()
+    --------------------------------------
+testing pushErrorHandling array(class, method)
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: testerrorhandlingpear->fakeHandleError()
+    --------------------------------------
+Index 4:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: testerrorhandlingpear->fakeHandleError()
+    --------------------------------------
+Index 5:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+testing popErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: testerrorhandlingpear->fakeHandleError()
+    --------------------------------------
+testing popErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+testing popErrorHandling
+stack _PEAR_error_handler_stack:
+*******************************************
+testing static error-handling in-class code
+*******************************************
+testing in class setErrorHandling
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_CALLBACK,
+_PEAR_default_error_options:
+Callback: get_error_mode()
+--------------------------------------
+testing in class setErrorHandling array(obj, method)
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_CALLBACK,
+_PEAR_default_error_options:
+Callback: testerrorhandlingpear->fakeHandleError()
+--------------------------------------
+testing in class setErrorHandling array(class, method)
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_CALLBACK,
+_PEAR_default_error_options:
+Callback: (static) testErrorHandlingStatic::fakeHandleError()
+--------------------------------------
+testing in class pushErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+testing in class pushErrorHandling array(class, method)
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+testing in class pushErrorHandling array(obj, method)
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 4:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 5:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: testerrorhandlingpear->fakeHandleError()
+    --------------------------------------
+testing in class popErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+testing in class popErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+testing in class popErrorHandling
+stack _PEAR_error_handler_stack:
+*******************************************
+testing non-static error-handling in-class code
+*******************************************
+testing in PEAR setErrorHandling
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_RETURN,
+_PEAR_default_error_options:
+E_USER_NOTICE
+--------------------------------------
+echoing PEAR error-handling Variables:
+--------------------------------------
+$this->_default_error_mode:
+PEAR_ERROR_CALLBACK,
+$this->_default_error_options:
+Callback: get_error_mode()
+--------------------------------------
+testing in PEAR setErrorHandling array(obj, method)
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_RETURN,
+_PEAR_default_error_options:
+E_USER_NOTICE
+--------------------------------------
+echoing PEAR error-handling Variables:
+--------------------------------------
+$this->_default_error_mode:
+PEAR_ERROR_CALLBACK,
+$this->_default_error_options:
+Callback: testerrorhandlingpear->fakeHandleError()
+--------------------------------------
+testing in PEAR setErrorHandling array(class, method)
+echoing PEAR error-handling Variables:
+--------------------------------------
+_PEAR_default_error_mode:
+PEAR_ERROR_RETURN,
+_PEAR_default_error_options:
+E_USER_NOTICE
+--------------------------------------
+echoing PEAR error-handling Variables:
+--------------------------------------
+$this->_default_error_mode:
+PEAR_ERROR_CALLBACK,
+$this->_default_error_options:
+Callback: (static) testErrorHandlingStatic::fakeHandleError()
+--------------------------------------
+testing in PEAR pushErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+testing in PEAR pushErrorHandling array(class, method)
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+testing in PEAR pushErrorHandling array(obj, method)
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 4:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 5:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: testerrorhandlingpear->fakeHandleError()
+    --------------------------------------
+testing in PEAR popErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 2:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+Index 3:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+testing in PEAR popErrorHandling
+stack _PEAR_error_handler_stack:
+Index 0:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: (static) testErrorHandlingStatic::fakeHandleError()
+    --------------------------------------
+Index 1:
+    echoing PEAR error-handling Variables:
+    --------------------------------------
+    mode:
+    PEAR_ERROR_CALLBACK,
+    options:
+    Callback: get_error_mode()
+    --------------------------------------
+testing in PEAR popErrorHandling
+stack _PEAR_error_handler_stack: