Wed Oct 26 03:34:19 2016: Request 107450 was acted upon. Transaction: Correspondence added by KMX Queue: Win32-API Subject: long double troubles with 5.22.0 Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: k...@cpan.org Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=107450 >
Hi, here is an update with Win32-API-0.84 on perl 5.022003(RC4) built for MSWin32-x64-multi-thread-ld ##### FAILURE 1 ##### t/02_Callback.t ...... 1/20 # Compiler name:gcc # Compiler version:0 # $^E= # Failed test 'do_callback_void_d was successful' # at t/02_Callback.t line 199. # got: '9876.54320000000007' # expected: '9876.5432' # Looks like you failed 1 test of 20. t/02_Callback.t ...... Dubious, test returned 1 (wstat 256, 0x100) Failed 1/20 subtests (less 5 skipped subtests: 14 okay) ##### FAILURE 2 ##### t\00_API.t .. 1..58 ok 1 - use Encode; ok 2 - use Win32::API; # 00_API.t entered RUN phase ok 3 - use Win32; ok 4 - loaded # API test dll found at (API_test64.dll) ok 5 - found API test dll ok 6 - GetCurrentProcessId() function found# $test_dll abs path is "C:\tmpld\data\.cpanm\work\1477466704.26464\Win32-API-0.84\API_test64.dll" ok 7 - GetCurrentProcessId() result ok ok 8 - GetCurrentProcessId() result ok ok 9 - Import of GetCurrentProcessId() function from kernel32.dll ok 10 - GetCurrentProcessId() result ok ok 11 - Import of IsBadReadPtr function from kernel32.dll ok 12 - API test dll was freed ok 13 # skip ULONG is an 8 byte integer on x64 on old api ok 14 # skip ULONG is an 8 byte integer on x64 on old api# Failed test 'function call with double arguments' ok 15 - GetHandle operates correctly# at t\00_API.t line 193. ok 16 - FreeHandle operates correctly ok 17 - sum_integers() function defined ok 18 - function call with integer arguments and return value (Call) ok 19 - function call with negative integer arguments and return value (Call) \#94906 ok 20 - Import() on sum_integers worked ok 21 - function call with integer arguments and return value (Import) ok 22 - sum_integers_ref() function defined ok 23 - sum_integers_ref() returns the expected value ok 24 - sum_integers_ref() correctly modifies its ref argument ok 25 - short as return type croak because they are structs on old API ok 26 - sum_shorts_ref() function defined ok 27 - shorts croak as struct objs on old API ok 28 - API_test.dll sum_doubles function defined not ok 29 - function call with double arguments ad Callback.t perhaps a patch like this might help: - is($result, 9876.5432, "do_callback_void_d was successful"); + ok(abs($result - 9876.5432) < 0.0001, "do_callback_void_d was successful"); ad 00_API.t - ok($function->Call(2.5, 3.2) == 5.7, 'function call with double arguments'); + ok(abs($function->Call(2.5, 3.2) - 5.7) < 0.1, 'function call with double arguments');