Annotation of embedaddon/php/ext/filter/tests/046.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Integer overflow
3: --SKIPIF--
4: <?php if (!extension_loaded("filter")) die("skip"); ?>
5: --FILE--
6: <?php
7: $max = sprintf("%d", PHP_INT_MAX);
8: switch($max) {
9: case "2147483647": /* 32-bit systems */
10: $min = "-2147483648";
11: $overflow = "2147483648";
12: $underflow = "-2147483649";
13: break;
14: case "9223372036854775807": /* 64-bit systems */
15: $min = "-9223372036854775808";
16: $overflow = "9223372036854775808";
17: $underflow = "-9223372036854775809";
18: break;
19: default:
20: die("failed: unknown value for PHP_MAX_INT");
21: break;
22: }
23:
24: function test_validation($val, $msg) {
25: $f = filter_var($val, FILTER_VALIDATE_INT);
26: echo "$msg filtered: "; var_dump($f); // filtered value (or false)
27: echo "$msg is_long: "; var_dump(is_long($f)); // test validation
28: echo "$msg equal: "; var_dump($val == $f); // test equality of result
29: }
30:
31: // PHP_INT_MAX
32: test_validation($max, "max");
33: test_validation($overflow, "overflow");
34: test_validation($min, "min");
35: test_validation($underflow, "underflow");
36: ?>
37: --EXPECTF--
38: max filtered: int(%d)
39: max is_long: bool(true)
40: max equal: bool(true)
41: overflow filtered: bool(false)
42: overflow is_long: bool(false)
43: overflow equal: bool(false)
44: min filtered: int(-%d)
45: min is_long: bool(true)
46: min equal: bool(true)
47: underflow filtered: bool(false)
48: underflow is_long: bool(false)
49: underflow equal: bool(false)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>