|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
Patches0001-Tolerate-var_dump-printing-floats-in-exponential-not.patch (last revision 2020-08-25 20:52 UTC by jamieliu at google dot com)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
[2020-08-25 20:32 UTC] cmb@php.net
[2020-08-25 20:50 UTC] jamieliu at google dot com
[2020-08-25 20:52 UTC] jamieliu at google dot com
[2020-08-31 07:51 UTC] nikic@php.net
[2020-08-31 07:51 UTC] nikic@php.net
-Status: Open
+Status: Closed
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 22:00:01 2025 UTC |
Description: ------------ Many tests parse the result of var_dump() on a float and expect the result to be an integer: $ find . -name '*.phpt' | xargs grep 'float(%d)' ./Zend/tests/cast_to_double.phpt:float(%d) ./Zend/tests/settype_double.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_basic.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_basic.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_basic.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk.phpt:float(%d) ./ext/standard/tests/file/disk.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_error.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_error.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_error.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_basic.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_basic.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_basic.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_basic.phpt:float(%d) ./ext/standard/tests/file/disk_free_space_basic.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/file/disk_total_space_variation.phpt:float(%d) ./ext/standard/tests/general_functions/type.phpt:float(%d) ./ext/standard/tests/general_functions/type.phpt:float(%d) ./ext/standard/tests/general_functions/type.phpt:float(%d) ./ext/standard/tests/general_functions/gettype_settype_basic.phpt:float(%d) ./ext/standard/tests/general_functions/gettype_settype_basic.phpt:float(%d) ./ext/standard/tests/general_functions/gettype_settype_basic.phpt:float(%d) ./ext/standard/tests/general_functions/gettype_settype_basic.phpt:float(%d) This is problematic because var_dump() will print sufficiently large numbers in exponential notation. An example in Linux: $ mkdir tmp $ sudo mount -t tmpfs -o size=$((1 << 62)) tmpfs tmp $ ~/src/php-src/sapi/cli/php --version PHP 8.0.0-dev (cli) (built: Aug 25 2020 12:55:38) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies $ ~/src/php-src/sapi/cli/php -r 'var_dump(disk_total_space("tmp"));' float(4.611686018427388E+18) I think every instance of "float(%d)" in such tests could simply be converted to use "float(%E)" instead. Test script: --------------- See description.