in reply to Testing Time::Piece on Windows/VC

I got the following test failures using:

C:\Perl64\packages\Time-Piece-1.16>cl Microsoft (R) C/C++ Optimizing Compiler Version 15.00.21022.08 for x64 Copyright (C) Microsoft Corporation. All rights reserved. usage: cl [ option... ] filename... [ /link linkoption... ] C:\Perl64\packages\Time-Piece-1.16>perl -v This is perl, v5.10.1 built for MSWin32-x64-multi-thread (with 2 registered patches, see perl -V for more detail) Copyright 1987-2009, Larry Wall Binary build 1006 [291086] provided by ActiveState http://www.ActiveSt +ate.com Built Aug 24 2009 13:45:20 Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using "man perl" or "perldoc perl". If you have access to + the Internet, point your browser at http://www.perl.org/, the Perl Home Pa +ge.

Console log from build:

C:\Perl64\packages>gunzip Time-Piece-1.16.tar.gz C:\Perl64\packages>tar -xvf Time-Piece-1.16.tar Time-Piece-1.16/ Time-Piece-1.16/Changes Time-Piece-1.16/Makefile.PL Time-Piece-1.16/MANIFEST Time-Piece-1.16/MANIFEST.SKIP Time-Piece-1.16/META.yml Time-Piece-1.16/Piece.pm Time-Piece-1.16/Piece.xs Time-Piece-1.16/README Time-Piece-1.16/Seconds.pm Time-Piece-1.16/t/ Time-Piece-1.16/t/01base.t Time-Piece-1.16/t/02core.t Time-Piece-1.16/t/03compare.t Time-Piece-1.16/t/04mjd.t Time-Piece-1.16/t/05overload.t Time-Piece-1.16/t/06subclass.t Time-Piece-1.16/t/07arith.t C:\Perl64\packages>cd Time-Piece-1.16 C:\Perl64\packages\Time-Piece-1.16>makefile Checking if your kit is complete... Looks good Writing Makefile for Time::Piece C:\Perl64\packages\Time-Piece-1.16>nmake Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. cp Seconds.pm blib\lib\Time\Seconds.pm cp Piece.pm blib\lib\Time\Piece.pm C:\Perl64\bin\perl.exe C:\Perl64\lib\ExtUtils\xsubpp -typemap + C:\Perl64\lib\ExtUtils\typemap Piece.xs > Piece.xsc && C:\Perl64\bi +n\perl.exe -MExtUtils::Command -e "mv" -- Piece.xsc Piece.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -Ox -GL -Wp64 -fp:pr +ecise -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DCONS +ERVATIVE -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CO +NTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi +-DNDEBUG -Ox -GL -Wp64 -fp:precise -DVERSION=\"1.16\" -DXS_VERSIO +N=\"1.16\" "-IC:\Perl64\lib\CORE" Piece.c cl : Command line warning D9035 : option 'Wp64' has been deprecated an +d will be removed in a future release cl : Command line warning D9035 : option 'Wp64' has been deprecated an +d will be removed in a future release Piece.c Piece.xs(145) : warning C4996: 'getenv': This function or variable may + be unsafe. Consider using _dupenv_s instead. To disable deprecation, + use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdlib.h(447) : see declaration of 'getenv' Piece.xs(153) : warning C4996: 'sprintf': This function or variable ma +y be unsafe. Consider using sprintf_s instead. To disable deprecation +, use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdio.h(366) : see declaration of 'sprintf' Piece.xs(154) : warning C4996: 'putenv': The POSIX name for this item +is deprecated. Instead, use the ISO C++ conformant name: _putenv. See + online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +stdlib.h(864) : see declaration of 'putenv' Piece.xs(178) : warning C4996: 'tzset': The POSIX name for this item i +s deprecated. Instead, use the ISO C++ conformant name: _tzset. See o +nline help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +time.h(284) : see declaration of 'tzset' Piece.xs(671) : warning C4267: '=' : conversion from 'size_t' to 'int' +, possible loss of data Piece.xs(672) : warning C4996: 'strnicmp': The POSIX name for this ite +m is deprecated. Instead, use the ISO C++ conformant name: _strnicmp. + See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(217) : see declaration of 'strnicmp' Piece.xs(681) : warning C4267: '=' : conversion from 'size_t' to 'int' +, possible loss of data Piece.xs(682) : warning C4996: 'strnicmp': The POSIX name for this ite +m is deprecated. Instead, use the ISO C++ conformant name: _strnicmp. + See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(217) : see declaration of 'strnicmp' Piece.xs(697) : warning C4267: '=' : conversion from 'size_t' to 'int' +, possible loss of data Piece.xs(700) : warning C4996: 'strnicmp': The POSIX name for this ite +m is deprecated. Instead, use the ISO C++ conformant name: _strnicmp. + See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(217) : see declaration of 'strnicmp' Piece.xs(703) : warning C4267: '=' : conversion from 'size_t' to 'int' +, possible loss of data Piece.xs(706) : warning C4996: 'strnicmp': The POSIX name for this ite +m is deprecated. Instead, use the ISO C++ conformant name: _strnicmp. + See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(217) : see declaration of 'strnicmp' Piece.xs(792) : warning C4267: '=' : conversion from 'size_t' to 'int' +, possible loss of data Piece.xs(795) : warning C4996: 'strnicmp': The POSIX name for this ite +m is deprecated. Instead, use the ISO C++ conformant name: _strnicmp. + See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(217) : see declaration of 'strnicmp' Piece.xs(800) : warning C4267: '=' : conversion from 'size_t' to 'int' +, possible loss of data Piece.xs(803) : warning C4996: 'strnicmp': The POSIX name for this ite +m is deprecated. Instead, use the ISO C++ conformant name: _strnicmp. + See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(217) : see declaration of 'strnicmp' Piece.xs(806) : warning C4267: '=' : conversion from 'size_t' to 'int' +, possible loss of data Piece.xs(809) : warning C4996: 'strnicmp': The POSIX name for this ite +m is deprecated. Instead, use the ISO C++ conformant name: _strnicmp. + See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(217) : see declaration of 'strnicmp' Piece.xs(878) : warning C4996: 'strncpy': This function or variable ma +y be unsafe. Consider using strncpy_s instead. To disable deprecation +, use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +string.h(157) : see declaration of 'strncpy' Piece.xs(978) : warning C4267: '=' : conversion from 'size_t' to 'int' +, possible loss of data Piece.xs(997) : warning C4267: 'initializing' : conversion from 'size_ +t' to 'int', possible loss of data Piece.xs(1004) : warning C4267: '=' : conversion from 'size_t' to 'int +', possible loss of data Piece.xs(1041) : warning C4996: 'gmtime': This function or variable ma +y be unsafe. Consider using gmtime_s instead. To disable deprecation, + use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +time.inl(101) : see declaration of 'gmtime' Piece.xs(1081) : warning C4996: 'gmtime': This function or variable ma +y be unsafe. Consider using gmtime_s instead. To disable deprecation, + use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\ +time.inl(101) : see declaration of 'gmtime' Running Mkbootstrap for Time::Piece () C:\Perl64\bin\perl.exe -MExtUtils::Command -e "chmod" -- 644 P +iece.bs C:\Perl64\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists( +'NAME'=>\"Time::Piece\", 'DLBASE' => 'Piece', 'DL_FUNCS' => { }, 'FU +NCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" link -out:blib\arch\auto\Time\Piece\Piece.dll -dll -nologo -no +defaultlib -debug -opt:ref,icf -ltcg -libpath:"C:\Perl64\lib\CORE" +-machine:AMD64 Piece.obj C:\Perl64\lib\CORE\perl510.lib oldnames.li +b kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi +32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_ +32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib buffero +verflowU.lib msvcrt.lib -def:Piece.def Creating library blib\arch\auto\Time\Piece\Piece.lib and object bli +b\arch\auto\Time\Piece\Piece.exp Generating code Finished generating code if exist blib\arch\auto\Time\Piece\Piece.dll.manifest mt -nolo +go -manifest blib\arch\auto\Time\Piece\Piece.dll.manifest -outputreso +urce:blib\arch\auto\Time\Piece\Piece.dll;2 if exist blib\arch\auto\Time\Piece\Piece.dll.manifest del blib +\arch\auto\Time\Piece\Piece.dll.manifest C:\Perl64\bin\perl.exe -MExtUtils::Command -e "chmod" -- 755 b +lib\arch\auto\Time\Piece\Piece.dll C:\Perl64\bin\perl.exe -MExtUtils::Command -e "cp" -- Piece.bs + blib\arch\auto\Time\Piece\Piece.bs C:\Perl64\bin\perl.exe -MExtUtils::Command -e "chmod" -- 644 b +lib\arch\auto\Time\Piece\Piece.bs C:\Perl64\packages\Time-Piece-1.16>nmake test Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. C:\Perl64\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_ha +rness(0, 'blib\lib', 'blib\arch')" t/*.t t/01base.t ...... ok t/02core.t ...... 1/95 # Failed test at t/02core.t line 60. # got: '0' # expected: '-18000' # Looks like you failed 1 test of 95. t/02core.t ...... Dubious, test returned 1 (wstat 256, 0x100) Failed 1/95 subtests (less 5 skipped subtests: 89 okay) t/03compare.t ... ok t/04mjd.t ....... ok t/05overload.t .. ok t/06subclass.t .. ok t/07arith.t ..... ok Test Summary Report ------------------- t/02core.t (Wstat: 256 Tests: 95 Failed: 1) Failed test: 38 Non-zero exit status: 1 Files=7, Tests=156, 2 wallclock secs ( 0.17 usr + 0.08 sys = 0.25 C +PU) Result: FAIL Failed 1/7 test programs. 1/156 subtests failed. NMAKE : fatal error U1077: 'C:\Perl64\bin\perl.exe' : return code '0xf +f' Stop.

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"I'd rather go naked than blow up my ass"

Replies are listed 'Best First'.
Re^2: Testing Time::Piece on Windows/VC
by ikegami (Patriarch) on Jan 27, 2010 at 19:54 UTC

    Using Visual C++ 2008 Express Edition like BrowserUk, I get some of the warnings he gets ("The POSIX name for this item is deprecated", and "This function or variable may be unsafe") but neither the "conversion from 'size_t' to 'int'" warnings nor the test failures.

    I have a newer build of the compiler (15.00.30729.01) but I suspect the problem is related in BrowserUk's 64-bit setup. I run WinXP on a 32-bit machine. If so, the conversion warnings probably point to the problem.

    ( Or maybe not. cdarke has the problem on a 32-bit setup )

    Visual C++ 2008 Express Edition:

    Visual Studio 6: