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>