assert_variation.phpt 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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.quiet_eval = 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. function assert($file, $line, $myev)
  26. {
  27. echo "Class assertion failed $line, \"$myev\"\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. $sa = "0 != 0";
  33. var_dump($r2=assert($sa));
  34. echo"\n";
  35. echo "Change callback function using ini.set and test return value \n";
  36. var_dump($rv = ini_set("assert.callback","f2"));
  37. echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
  38. echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
  39. var_dump($r2=assert($sa));
  40. echo"\n";
  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($sa));
  46. echo"\n";
  47. echo "Reset the name of the callback routine to a class method and check that it works\n";
  48. var_dump($rc=assert_options(ASSERT_CALLBACK, "c1"));
  49. echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n";
  50. echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n";
  51. var_dump($r2=assert($sa));
  52. echo"\n";
  53. echo "Reset callback options to use a class method \n";
  54. var_dump($rc = assert_options(ASSERT_CALLBACK,array("c1","assert")));
  55. var_dump($rao=assert_options(ASSERT_CALLBACK));
  56. echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n";
  57. var_dump($r2=assert($sa));
  58. echo"\n";
  59. echo "Reset callback options to use an object method \n";
  60. $o = new c1();
  61. var_dump($rc=assert_options(ASSERT_CALLBACK,array(&$o,"assert")));
  62. var_dump($rao=assert_options(ASSERT_CALLBACK));
  63. echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n";
  64. var_dump($r2=assert($sa));
  65. echo"\n";
  66. --EXPECTF--
  67. Initial values: assert_options(ASSERT_CALLBACK) => [f1]
  68. Initial values: ini.get("assert.callback") => [f1]
  69. f1 called
  70. NULL
  71. Change callback function using ini.set and test return value
  72. string(2) "f1"
  73. assert_options(ASSERT_CALLBACK) => [f2]
  74. ini.get("assert.callback") => [f2]
  75. f2 called
  76. NULL
  77. Change callback function using assert_options and test return value
  78. string(2) "f2"
  79. assert_options(ASSERT_CALLBACK) => [f3]
  80. ini.get("assert.callback") => [f2]
  81. f3 called
  82. NULL
  83. Reset the name of the callback routine to a class method and check that it works
  84. string(2) "f3"
  85. assert_options(ASSERT_CALLBACK) => [c1]
  86. ini.get("assert.callback") => [f2]
  87. NULL
  88. Reset callback options to use a class method
  89. string(2) "c1"
  90. array(2) {
  91. [0]=>
  92. string(2) "c1"
  93. [1]=>
  94. string(6) "assert"
  95. }
  96. ini.get("assert.callback") => [f2]
  97. Strict Standards: Non-static method c1::assert() should not be called statically in %s on line 53
  98. Class assertion failed 53, "0 != 0"
  99. NULL
  100. Reset callback options to use an object method
  101. array(2) {
  102. [0]=>
  103. string(2) "c1"
  104. [1]=>
  105. string(6) "assert"
  106. }
  107. array(2) {
  108. [0]=>
  109. &object(c1)#1 (0) {
  110. }
  111. [1]=>
  112. string(6) "assert"
  113. }
  114. ini.get("assert.callback") => [f2]
  115. Class assertion failed 61, "0 != 0"
  116. NULL