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