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>