Subject: | Test failure with -Duselongdouble |
If perl is compiled with increased floating point accuracy (-Duselongdouble), then the test suite fails.
On a linux system:
# Failed test 'TEST/dbcolstats_stddev_instability.cmd'
# at t/test_command.t line 210.
# test TEST/dbfilealter_compress_gzip.cmd skipped (disabled in .cmd)
# #### output of some failed tests
# # TEST/dbcolstats_stddev_instability
# *** TEST/dbcolstats_stddev_instability.out Fri Nov 22 17:20:12 2019
# --- TEST/dbcolstats_stddev_instability.trial Fri Nov 22 18:17:31 2019
# ***************
# *** 1,5 ****
# #fsdb mean stddev pct_rsd conf_range conf_low conf_high conf_pct sum sum_squared min max n
# ! 0.9995 0 0 0 0.9995 0.9995 0.95 99.95 99.899 0.999496774037648 0.999496975509876 100
# # | csv_to_db
# # | dbrow '_Sport > 9300 && _Sport < 9400'
# # | dbsort Sport
# --- 1,5 ----
# #fsdb mean stddev pct_rsd conf_range conf_low conf_high conf_pct sum sum_squared min max n
# ! 0.9995 2.0098e-08 2.0108e-06 3.9881e-09 0.9995 0.9995 0.95 99.95 99.899 0.999496774037648 0.999496975509876 100
# # | csv_to_db
# # | dbrow '_Sport > 9300 && _Sport < 9400'
# # | dbsort Sport
# Looks like you failed 1 test of 318.
t/test_command.t ..
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/318 subtests
On an old freebsd 10 system additionally:
# Failed test 'dbfilediff::_find_epsilon on 0.123456, case epsilon'
# at t/find_epsilon.t line 34.
# got: '9.99999999999999955e-07'
# expected: '1e-06'
# Failed test 'dbfilediff::_find_epsilon on 123.456, case epsilon'
# at t/find_epsilon.t line 34.
# got: '0.00100000000000000002'
# expected: '0.001'
# Failed test 'dbfilediff::_find_epsilon on 123.000, case epsilon'
# at t/find_epsilon.t line 34.
# got: '0.00100000000000000002'
# expected: '0.001'
# Failed test 'dbfilediff::_find_epsilon on 123.0, case epsilon'
# at t/find_epsilon.t line 34.
# got: '0.100000000000000006'
# expected: '0.1'
# Failed test 'dbfilediff::_find_epsilon on 0.9, case epsilon'
# at t/find_epsilon.t line 34.
# got: '0.100000000000000006'
# expected: '0.1'
# Failed test 'dbfilediff::_find_epsilon on 0.09, case epsilon'
# at t/find_epsilon.t line 34.
# got: '0.0100000000000000002'
# expected: '0.01'
# Looks like you failed 6 tests of 24.
t/find_epsilon.t ..
Dubious, test returned 6 (wstat 1536, 0x600)
Failed 6/24 subtests