diff options
Diffstat (limited to 'ext/standard/tests/assert')
18 files changed, 686 insertions, 0 deletions
diff --git a/ext/standard/tests/assert/assert.phpt b/ext/standard/tests/assert/assert.phpt new file mode 100644 index 0000000..44fb609 --- /dev/null +++ b/ext/standard/tests/assert/assert.phpt @@ -0,0 +1,44 @@ +--TEST-- +assert() +--INI-- +error_reporting = 2039 +assert.active = 0 +assert.warning = 1 +assert.callback = +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +function a($file,$line,$myev) +{ + echo "assertion failed $line,\"$myev\"\n"; +} + +class a +{ + function assert($file,$line,$myev) + { + echo "class assertion failed $line,\"$myev\"\n"; + } +} + +assert_options(ASSERT_ACTIVE,1); +assert_options(ASSERT_QUIET_EVAL,1); +assert_options(ASSERT_WARNING,0); + +$a = 0; + +assert_options(ASSERT_CALLBACK,"a"); +assert('$a != 0'); + +assert_options(ASSERT_CALLBACK,array("a","assert")); +assert('$a != 0'); + +$obj = new a(); +assert_options(ASSERT_CALLBACK,array(&$obj,"assert")); +assert('$a != 0'); +?> +--EXPECT-- +assertion failed 22,"$a != 0" +class assertion failed 25,"$a != 0" +class assertion failed 29,"$a != 0" diff --git a/ext/standard/tests/assert/assert02.phpt b/ext/standard/tests/assert/assert02.phpt new file mode 100644 index 0000000..723eeb9 --- /dev/null +++ b/ext/standard/tests/assert/assert02.phpt @@ -0,0 +1,48 @@ +--TEST-- +catch assert() errors +--INI-- +assert.active=1 +assert.warning=1 +assert.callback= +assert.bail=0 +assert.quiet_eval=0 +--FILE-- +<?php +function handler($errno, $errstr) { + echo "in handler()\n"; + assert(E_RECOVERABLE_ERROR === $errno); + var_dump($errstr); +} + +set_error_handler('handler', E_RECOVERABLE_ERROR); + +assert(1); +assert('1'); +assert('$a'); + +assert('aa=sd+as+safsafasfasafsaf'); + +assert('0'); + +assert_options(ASSERT_BAIL, 1); +assert('aa=sd+as+safsafasfasafsaf'); + +echo "done\n"; + +?> +--EXPECTF-- +Notice: Undefined variable: a in %sassert02.php(12) : assert code on line 1 + +Warning: assert(): Assertion "$a" failed in %sassert02.php on line 12 + +Parse error: %s error%sin %sassert02.php(14) : assert code on line 1 +in handler() +%string|unicode%(%d) "assert(): Failure evaluating code: +aa=sd+as+safsafasfasafsaf" + +Warning: assert(): Assertion "0" failed in %sassert02.php on line 16 + +Parse error: %s error%sin %sassert02.php(19) : assert code on line 1 +in handler() +%string|unicode%(%d) "assert(): Failure evaluating code: +aa=sd+as+safsafasfasafsaf" diff --git a/ext/standard/tests/assert/assert03.phpt b/ext/standard/tests/assert/assert03.phpt new file mode 100644 index 0000000..d839414 --- /dev/null +++ b/ext/standard/tests/assert/assert03.phpt @@ -0,0 +1,39 @@ +--TEST-- +assert() - set callback using ini_set() +--INI-- +assert.active = 1 +assert.warning = 0 +assert.callback = +assert.bail = 0 +assert.quiet_eval = 1 +--FILE-- +<?php +function a($file,$line,$myev) +{ + echo "assertion failed - a - $line,\"$myev\"\n"; +} + +function b($file,$line,$myev) +{ + echo "assertion failed - b - $line,\"$myev\"\n"; +} + +assert_options(ASSERT_ACTIVE,1); +assert_options(ASSERT_QUIET_EVAL,1); +assert_options(ASSERT_WARNING,0); + +$a = 0; + +assert_options(ASSERT_CALLBACK,"a"); +assert('$a != 0'); + + /* Modify call back using ini_set() */ +ini_set("assert.callback", "b"); +assert('$a != 0'); + +?> +==DONE== +--EXPECTF-- +assertion failed - a - %d,"$a != 0" +assertion failed - b - %d,"$a != 0" +==DONE== diff --git a/ext/standard/tests/assert/assert04.phpt b/ext/standard/tests/assert/assert04.phpt new file mode 100644 index 0000000..bffadcb --- /dev/null +++ b/ext/standard/tests/assert/assert04.phpt @@ -0,0 +1,48 @@ +--TEST-- +misc assert() tests tests +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback = +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +/* Assert not active */ +assert_options(ASSERT_ACTIVE, 0); +assert(1); + + +/* Wrong parameter count in assert */ +assert_options(ASSERT_ACTIVE, 1); +assert(2, "failure", 3); + +/* Wrong parameter count in assert_options */ +assert_options(ASSERT_ACTIVE, 0, 2); + +/* Wrong parameter name in assert_options */ +$test="ASSERT_FRED"; +assert_options($test, 1); + +/* Assert false */ +assert(0); + + +/* Assert false and bail*/ +assert_options(ASSERT_BAIL, 1); +assert(0); + +echo "not reached\n"; + +?> +--EXPECTF-- +Warning: assert() expects at most 2 parameters, 3 given in %s on line %d + +Warning: assert_options() expects at most 2 parameters, 3 given in %s on line %d + +Warning: assert_options() expects parameter 1 to be long, %unicode_string_optional% given in %s on line %d + +Warning: assert(): Assertion failed in %s on line %d + +Warning: assert(): Assertion failed in %s on line %d + diff --git a/ext/standard/tests/assert/assert_basic.phpt b/ext/standard/tests/assert/assert_basic.phpt new file mode 100644 index 0000000..ea58e9f --- /dev/null +++ b/ext/standard/tests/assert/assert_basic.phpt @@ -0,0 +1,30 @@ +--TEST-- +assert() - basic - check that assert runs when assert.active is set to 1. +--INI-- +assert.active = 1 +assert.warning = 0 +assert.callback = f1 +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +function f1() +{ + echo "f1 called\n"; +} +//String assert +$sa = "0 != 0"; +var_dump($r2=assert($sa)); +$sa = "0 == 0"; +var_dump($r2=assert($sa)); + +//Non string assert +var_dump($r2=assert(0)); +var_dump($r2=assert(1)); +--EXPECTF-- +f1 called +NULL +bool(true) +f1 called +NULL +bool(true) diff --git a/ext/standard/tests/assert/assert_basic1.phpt b/ext/standard/tests/assert/assert_basic1.phpt new file mode 100644 index 0000000..8aed519 --- /dev/null +++ b/ext/standard/tests/assert/assert_basic1.phpt @@ -0,0 +1,29 @@ +--TEST-- +assert() - basic - check that assert can be switched off +--INI-- +assert.active = 0 +assert.warning = 0 +assert.callback = f1 +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +function f1() +{ + echo "f1 called\n"; +} + +//String assert +$sa = "0 != 0"; +var_dump($r2=assert($sa)); +$sa = "0 == 0"; +var_dump($r2=assert($sa)); + +//Non string assert +var_dump($r2=assert(0)); +var_dump($r2=assert(1)); +--EXPECTF-- +bool(true) +bool(true) +bool(true) +bool(true) diff --git a/ext/standard/tests/assert/assert_basic2.phpt b/ext/standard/tests/assert/assert_basic2.phpt new file mode 100644 index 0000000..277e5ca --- /dev/null +++ b/ext/standard/tests/assert/assert_basic2.phpt @@ -0,0 +1,37 @@ +--TEST-- +assert() - basic - correct call back values before and after assert. +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback=f1 +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +function f2() +{ + echo "f2 called\n"; +} + +function f1() +{ + echo "f1 called\n"; +} + +var_dump($o = assert_options(ASSERT_CALLBACK)); +assert(0); + +var_dump($o= assert_options(ASSERT_CALLBACK, "f2")); +var_dump($n= assert_options(ASSERT_CALLBACK)); +assert(0); +?> +--EXPECTF-- +string(2) "f1" +f1 called + +Warning: assert(): Assertion failed in %s on line 13 +string(2) "f1" +string(2) "f2" +f2 called + +Warning: assert(): Assertion failed in %s on line 17 diff --git a/ext/standard/tests/assert/assert_basic3.phpt b/ext/standard/tests/assert/assert_basic3.phpt new file mode 100644 index 0000000..0ce3266 --- /dev/null +++ b/ext/standard/tests/assert/assert_basic3.phpt @@ -0,0 +1,25 @@ +--TEST-- +assert() - basic - Test that bailout works +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback = f1 +assert.quiet_eval = 1 +assert.bail = 0 +--FILE-- +<?php +function f1() +{ + echo "f1 called\n"; +} + +//bail out on error +var_dump($rao=assert_options(ASSERT_BAIL, 1)); +$sa = "0 != 0"; +var_dump($r2=assert($sa)); +echo "If this is printed BAIL hasn't worked"; +--EXPECTF-- +int(0) +f1 called + +Warning: assert(): Assertion "0 != 0" failed in %s on line 10 diff --git a/ext/standard/tests/assert/assert_basic4.phpt b/ext/standard/tests/assert/assert_basic4.phpt new file mode 100644 index 0000000..2f11234 --- /dev/null +++ b/ext/standard/tests/assert/assert_basic4.phpt @@ -0,0 +1,37 @@ +--TEST-- +assert() - basic - test initial values using ini.get and assert_options +--INI-- +assert.active = 0 +assert.warning = 0 +assert.bail = 0 +assert.quiet_eval = 0 +assert.callback = f1 +--FILE-- +<?php +// Check the initial settings for all assert_options + +//Using assert_options; +echo "Initial values: assert_options(ASSERT_ACTIVE) => [".assert_options(ASSERT_ACTIVE)."]\n"; +echo "Initial values: assert_options(ASSERT_WARNING) => [".assert_options(ASSERT_WARNING)."]\n"; +echo "Initial values: assert_options(ASSERT_BAIL) => [".assert_options(ASSERT_BAIL)."]\n"; +echo "Initial values: assert_options(ASSERT_QUIET_EVAL) => [".assert_options(ASSERT_QUIET_EVAL)."]\n"; +echo "Initial values: assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n"; + +//Using ini.get; +echo "Initial values: ini.get(\"assert.active\") => [".ini_get("assert.active")."]\n"; +echo "Initial values: ini.get(\"assert.warning\") => [".ini_get("assert.warning")."]\n"; +echo "Initial values: ini.get(\"assert.bail\") => [".ini_get("assert.bail")."]\n"; +echo "Initial values: ini.get(\"assert.quiet_eval\") => [".ini_get("assert.quiet_eval")."]\n"; +echo "Initial values: ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n"; + +--EXPECTF-- +Initial values: assert_options(ASSERT_ACTIVE) => [0] +Initial values: assert_options(ASSERT_WARNING) => [0] +Initial values: assert_options(ASSERT_BAIL) => [0] +Initial values: assert_options(ASSERT_QUIET_EVAL) => [0] +Initial values: assert_options(ASSERT_CALLBACK) => [f1] +Initial values: ini.get("assert.active") => [0] +Initial values: ini.get("assert.warning") => [0] +Initial values: ini.get("assert.bail") => [0] +Initial values: ini.get("assert.quiet_eval") => [0] +Initial values: ini.get("assert.callback") => [f1] diff --git a/ext/standard/tests/assert/assert_basic5.phpt b/ext/standard/tests/assert/assert_basic5.phpt new file mode 100644 index 0000000..737f902 --- /dev/null +++ b/ext/standard/tests/assert/assert_basic5.phpt @@ -0,0 +1,32 @@ +--TEST-- +assert() - basic - check switch on warnings using assert_options. +--INI-- +assert.active = 1 +assert.warning = 0 +assert.callback = f1 +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +function f1() +{ + echo "f1 called\n"; +} + +//switch warning on and test return value +var_dump($rao=assert_options(ASSERT_WARNING, 1)); +$sa = "0 != 0"; +var_dump($r2=assert($sa)); +$sa = "0 == 0"; +var_dump($r2=assert($sa)); + +//switch warning on and test return value +var_dump($rao=assert_options(ASSERT_WARNING, 0)); +--EXPECTF-- +int(0) +f1 called + +Warning: assert(): Assertion "0 != 0" failed in %s on line 10 +NULL +bool(true) +int(1) diff --git a/ext/standard/tests/assert/assert_basic6.phpt b/ext/standard/tests/assert/assert_basic6.phpt new file mode 100644 index 0000000..2a73713 --- /dev/null +++ b/ext/standard/tests/assert/assert_basic6.phpt @@ -0,0 +1,26 @@ +--TEST-- +assert() - basic - Test that bailout works +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback = f1 +assert.quiet_eval = 1 +assert.bail = 0 +--FILE-- +<?php +function f1($message) +{ + echo "f1 called\n"; +} + +//bail out on error +var_dump($rao = assert_options(ASSERT_BAIL, 1)); +$sa = "0 != 0"; +var_dump($r2 = assert($sa, "0 is 0")); +echo "If this is printed BAIL hasn't worked"; +--EXPECTF-- +int(0) +f1 called + +Warning: assert(): 0 is 0: "0 != 0" failed in %s on line 10 + diff --git a/ext/standard/tests/assert/assert_closures.phpt b/ext/standard/tests/assert/assert_closures.phpt new file mode 100644 index 0000000..e01c11a --- /dev/null +++ b/ext/standard/tests/assert/assert_closures.phpt @@ -0,0 +1,16 @@ +--TEST-- +assert() - basic - accept closures as callback. +--INI-- +assert.active = 1 +assert.warning = 1 +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +assert_options(ASSERT_CALLBACK, function () { echo "Hello World!\n"; }); +assert(0); +?> +--EXPECTF-- +Hello World! + +Warning: assert(): Assertion failed in %s on line %d diff --git a/ext/standard/tests/assert/assert_error.phpt b/ext/standard/tests/assert/assert_error.phpt new file mode 100644 index 0000000..28655be --- /dev/null +++ b/ext/standard/tests/assert/assert_error.phpt @@ -0,0 +1,27 @@ +--TEST-- +assert() - error - give assert nonsense string with quiet_eval on then off +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback = f1 +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +function f1() +{ + echo "f1 called\n"; +} + +$sa = "threemeninaboat"; + +var_dump($r2=assert($sa)); + +var_dump($ra0 = assert_options(ASSERT_QUIET_EVAL, 1)); + +var_dump($r2=assert($sa)); +--EXPECTF-- +Notice: Use of undefined constant threemeninaboat - assumed 'threemeninaboat' in %s(9) : assert code on line 1 +bool(true) +int(0) +bool(true) diff --git a/ext/standard/tests/assert/assert_error1.phpt b/ext/standard/tests/assert/assert_error1.phpt new file mode 100644 index 0000000..657b411 --- /dev/null +++ b/ext/standard/tests/assert/assert_error1.phpt @@ -0,0 +1,45 @@ +--TEST-- +assert() - error - invalid params +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback = f1 +assert.quiet_eval = 1 +assert.bail = 0 +--FILE-- +<?php +function f1() +{ + echo "f1 called\n"; +} +function handler($errno, $errstr) { + echo "in handler()\n\n"; + assert(E_RECOVERABLE_ERROR === $errno); + var_dump($errstr); +} + +//Wrong number of parameters for assert_options() +assert_options(ASSERT_WARNING, 1); +var_dump($rao = assert_options(ASSERT_CALLBACK, "f1", 1)); + + +//Unknown option for assert_options() +var_dump($rao=assert_options("F1", "f1")); + +//Wrong number of parameters for assert() +$sa="0 != 0"; +var_dump($r2 = assert($sa, "message", 1)); + + +//Catch recoverable error with handler +var_dump($rc = assert('aa=sd+as+safsafasfaçsafçsafç')); +--EXPECTF-- +Warning: assert_options() expects at most 2 parameters, 3 given in %s on line %d +NULL + +Warning: assert_options() expects parameter 1 to be long, string given in %s on line %d +NULL + +Warning: assert() expects at most 2 parameters, 3 given in %s on line %d +NULL + diff --git a/ext/standard/tests/assert/assert_error2.phpt b/ext/standard/tests/assert/assert_error2.phpt new file mode 100644 index 0000000..da7c3d9 --- /dev/null +++ b/ext/standard/tests/assert/assert_error2.phpt @@ -0,0 +1,30 @@ +--TEST-- +assert() - basic - Test that bailout works +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback = f1 +assert.quiet_eval = 1 +assert.bail = 0 +error_reporting = -1 +display_errors = 1 +--FILE-- +<?php +function f1($script, $line, $message, $user_message) +{ + echo "f1 called\n"; +} + +//bail out on error +var_dump($rao = assert_options(ASSERT_BAIL, 1)); +$sa = "0 != 0"; +var_dump($r2 = assert($sa)); +echo "If this is printed BAIL hasn't worked"; +--EXPECTF-- +int(0) + +Warning: Missing argument 4 for f1() in %s on line 2 +f1 called + +Warning: assert(): Assertion "0 != 0" failed in %s on line 10 + diff --git a/ext/standard/tests/assert/assert_error3.phpt b/ext/standard/tests/assert/assert_error3.phpt new file mode 100644 index 0000000..54b91ed --- /dev/null +++ b/ext/standard/tests/assert/assert_error3.phpt @@ -0,0 +1,21 @@ +--TEST-- +assert() - basic - Test recoverable error +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback = f1 +assert.quiet_eval = 0 +assert.bail = 0 +error_reporting = -1 +display_errors = 1 +--FILE-- +<?php +$sa = "0 $ 0"; +var_dump($r2 = assert($sa)); +--EXPECTF-- + +Parse error: syntax error, unexpected '$' in %s(3) : assert code on line 1 + +Catchable fatal error: assert(): Failure evaluating code: +0 $ 0 in %s on line 3 + diff --git a/ext/standard/tests/assert/assert_error4.phpt b/ext/standard/tests/assert/assert_error4.phpt new file mode 100644 index 0000000..264cc8f --- /dev/null +++ b/ext/standard/tests/assert/assert_error4.phpt @@ -0,0 +1,21 @@ +--TEST-- +assert() - basic - Test recoverable error +--INI-- +assert.active = 1 +assert.warning = 1 +assert.callback = f1 +assert.quiet_eval = 0 +assert.bail = 0 +error_reporting = -1 +display_errors = 1 +--FILE-- +<?php +$sa = "0 $ 0"; +var_dump($r2 = assert($sa, "Describing what was asserted")); +--EXPECTF-- + +Parse error: syntax error, unexpected '$' in %s(3) : assert code on line 1 + +Catchable fatal error: assert(): Failure evaluating code: +Describing what was asserted:"0 $ 0" in %s on line 3 + diff --git a/ext/standard/tests/assert/assert_variation.phpt b/ext/standard/tests/assert/assert_variation.phpt new file mode 100644 index 0000000..c49feea --- /dev/null +++ b/ext/standard/tests/assert/assert_variation.phpt @@ -0,0 +1,131 @@ +--TEST-- +assert() - variation - test callback options using ini_get/ini_set/assert_options +--INI-- +assert.active = 1 +assert.warning = 0 +assert.callback = f1 +assert.bail = 0 +assert.quiet_eval = 0 +--FILE-- +<?php +function f1() +{ + echo "f1 called\n"; +} +function f2() +{ + echo "f2 called\n"; +} +function f3() +{ + echo "f3 called\n"; +} +class c1 +{ + function assert($file, $line, $myev) + { + echo "Class assertion failed $line, \"$myev\"\n"; + } +} +echo "Initial values: assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n"; +echo "Initial values: ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n"; +$sa = "0 != 0"; +var_dump($r2=assert($sa)); +echo"\n"; + +echo "Change callback function using ini.set and test return value \n"; +var_dump($rv = ini_set("assert.callback","f2")); +echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n"; +echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n"; +var_dump($r2=assert($sa)); +echo"\n"; + +echo "Change callback function using assert_options and test return value \n"; +var_dump($rv=assert_options(ASSERT_CALLBACK, "f3")); +echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n"; +echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n"; +var_dump($r2=assert($sa)); +echo"\n"; + + +echo "Reset the name of the callback routine to a class method and check that it works\n"; +var_dump($rc=assert_options(ASSERT_CALLBACK, "c1")); +echo "assert_options(ASSERT_CALLBACK) => [".assert_options(ASSERT_CALLBACK)."]\n"; +echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n"; +var_dump($r2=assert($sa)); +echo"\n"; + +echo "Reset callback options to use a class method \n"; +var_dump($rc = assert_options(ASSERT_CALLBACK,array("c1","assert"))); +var_dump($rao=assert_options(ASSERT_CALLBACK)); +echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n"; +var_dump($r2=assert($sa)); +echo"\n"; + +echo "Reset callback options to use an object method \n"; +$o = new c1(); +var_dump($rc=assert_options(ASSERT_CALLBACK,array(&$o,"assert"))); +var_dump($rao=assert_options(ASSERT_CALLBACK)); +echo "ini.get(\"assert.callback\") => [".ini_get("assert.callback")."]\n\n"; +var_dump($r2=assert($sa)); +echo"\n"; + +--EXPECTF-- +Initial values: assert_options(ASSERT_CALLBACK) => [f1] +Initial values: ini.get("assert.callback") => [f1] +f1 called +NULL + +Change callback function using ini.set and test return value +string(2) "f1" +assert_options(ASSERT_CALLBACK) => [f2] +ini.get("assert.callback") => [f2] +f2 called +NULL + +Change callback function using assert_options and test return value +string(2) "f2" +assert_options(ASSERT_CALLBACK) => [f3] +ini.get("assert.callback") => [f2] +f3 called +NULL + +Reset the name of the callback routine to a class method and check that it works +string(2) "f3" +assert_options(ASSERT_CALLBACK) => [c1] +ini.get("assert.callback") => [f2] +NULL + +Reset callback options to use a class method +string(2) "c1" +array(2) { + [0]=> + string(2) "c1" + [1]=> + string(6) "assert" +} +ini.get("assert.callback") => [f2] + + +Strict Standards: Non-static method c1::assert() should not be called statically in %s on line 53 +Class assertion failed 53, "0 != 0" +NULL + +Reset callback options to use an object method +array(2) { + [0]=> + string(2) "c1" + [1]=> + string(6) "assert" +} +array(2) { + [0]=> + &object(c1)#1 (0) { + } + [1]=> + string(6) "assert" +} +ini.get("assert.callback") => [f2] + +Class assertion failed 61, "0 != 0" +NULL |