assert_variation.phpt 3.6 KB

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