Annotation of embedaddon/php/ext/filter/tests/046.phpt, revision 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>