]> granicus.if.org Git - php/blob
7b550b36d1
[php] /
1 --TEST--
2 assert() - variation  - test callback options using ini_get/ini_set/assert_options
3 --INI--
4 assert.active = 1
5 assert.warning = 0
6 assert.callback = f1
7 assert.bail = 0
8 --FILE--
9 <?php
10 function f1()
11 {
12     echo "f1 called\n";
13 }
14 function f2()
15 {
16     echo "f2 called\n";
17 }
18 function f3()
19 {
20     echo "f3 called\n";
21 }
22 class c1
23 {
24     static function assert($file, $line, $unused, $desc)
25     {
26         echo "Class assertion failed $line, \"$desc\"\n";
27     }
28 }
29 echo "Initial values: assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
30 echo "Initial values: ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
31 var_dump($r2=assert(0 != 0));
32 echo"\n";
33
34 echo "Change callback function using ini.set and test return value \n";
35 var_dump($rv = ini_set("assert.callback","f2"));
36 echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
37 echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
38 var_dump($r2=assert(0 != 0));
39 echo"\n";
40
41 echo "Change callback function using assert_options and test return value \n";
42 var_dump($rv=assert_options(ASSERT_CALLBACK, "f3"));
43 echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
44 echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
45 var_dump($r2=assert(0 != 0));
46 echo"\n";
47
48
49 echo "Reset the name of the callback routine to a class method and check that it works\n";
50 var_dump($rc=assert_options(ASSERT_CALLBACK, "c1"));
51 echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
52 echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
53 var_dump($r2=assert(0 != 0));
54 echo"\n";
55
56 echo "Reset callback options to use a class method \n";
57 var_dump($rc = assert_options(ASSERT_CALLBACK,array("c1","assert")));
58 var_dump($rao=assert_options(ASSERT_CALLBACK));
59 echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n";
60 var_dump($r2=assert(0 != 0));
61 echo"\n";
62
63 echo "Reset callback options to use an object method \n";
64 $o = new c1();
65 var_dump($rc=assert_options(ASSERT_CALLBACK,array(&$o,"assert")));
66 var_dump($rao=assert_options(ASSERT_CALLBACK));
67 echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n";
68 var_dump($r2=assert(0 != 0));
69 echo"\n";
70 --EXPECT--
71 Initial values: assert_options(ASSERT_CALLBACK) => [f1]
72 Initial values: ini.get("assert.callback") => [f1]
73 f1 called
74 bool(false)
75
76 Change callback function using ini.set and test return value 
77 string(2) "f1"
78 assert_options(ASSERT_CALLBACK) => [f2]
79 ini.get("assert.callback") => [f2]
80 f2 called
81 bool(false)
82
83 Change callback function using assert_options and test return value 
84 string(2) "f2"
85 assert_options(ASSERT_CALLBACK) => [f3]
86 ini.get("assert.callback") => [f2]
87 f3 called
88 bool(false)
89
90 Reset the name of the callback routine to a class method and check that it works
91 string(2) "f3"
92 assert_options(ASSERT_CALLBACK) => [c1]
93 ini.get("assert.callback") => [f2]
94 bool(false)
95
96 Reset callback options to use a class method 
97 string(2) "c1"
98 array(2) {
99   [0]=>
100   string(2) "c1"
101   [1]=>
102   string(6) "assert"
103 }
104 ini.get("assert.callback") => [f2]
105
106 Class assertion failed 52, "assert(0 != 0)"
107 bool(false)
108
109 Reset callback options to use an object method 
110 array(2) {
111   [0]=>
112   string(2) "c1"
113   [1]=>
114   string(6) "assert"
115 }
116 array(2) {
117   [0]=>
118   &object(c1)#1 (0) {
119   }
120   [1]=>
121   string(6) "assert"
122 }
123 ini.get("assert.callback") => [f2]
124
125 Class assertion failed 60, "assert(0 != 0)"
126 bool(false)