summaryrefslogtreecommitdiff
path: root/Zend/tests/bug50383.phpt
blob: 2f72ea51f8530eabadfe3a6ecb6f450998c4bb8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
--TEST--
Bug #50383 (Exceptions thrown in __call / __callStatic do not include file and line in trace)
--FILE--
<?php

class myClass {
    public static function __callStatic($method, $args) {
        throw new Exception("Missing static method '$method'\n");
    }
    public function __call($method, $args) {
        throw new Exception("Missing method '$method'\n");
    }
}

function thrower() {
    myClass::ThrowException();
}
function thrower2() {
    $x = new myClass;
    $x->foo();
}

try {
    thrower();
} catch(Exception $e) {
    print $e->getMessage();
    print_r($e->getTrace());
}

try {
    thrower2();
} catch (Exception $e) {
    print $e->getMessage();
    print_r($e->getTrace());
}

?>
--EXPECTF--
Missing static method 'ThrowException'
Array
(
    [0] => Array
        (
            [file] => %s
            [line] => 13
            [function] => __callStatic
            [class] => myClass
            [type] => ::
            [args] => Array
                (
                    [0] => ThrowException
                    [1] => Array
                        (
                        )

                )

        )

    [1] => Array
        (
            [file] => %s
            [line] => 21
            [function] => thrower
            [args] => Array
                (
                )

        )

)
Missing method 'foo'
Array
(
    [0] => Array
        (
            [file] => %s
            [line] => 17
            [function] => __call
            [class] => myClass
            [type] => ->
            [args] => Array
                (
                    [0] => foo
                    [1] => Array
                        (
                        )

                )

        )

    [1] => Array
        (
            [file] => %s
            [line] => 28
            [function] => thrower2
            [args] => Array
                (
                )

        )

)