Subject: | t/file.t fails if $ENV{"HOME"} is not set on Windows |
Distribution: AppConfig-1.55 and AppConfig-1.56
Perl Version: 5.8.7
Operating System: Windows 2000
The nmake command completed successfuly, but if I try to test the module using:
nmake test
I get the following error:
C:\.cpan\build\AppConfig-1.56>nmake test
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
cp lib/AppConfig/Args.pm blib\lib\AppConfig\Args.pm
cp lib/AppConfig/CGI.pm blib\lib\AppConfig\CGI.pm
cp lib/AppConfig/File.pm blib\lib\AppConfig\File.pm
cp lib/AppConfig.pm blib\lib\AppConfig.pm
cp lib/AppConfig/Getopt.pm blib\lib\AppConfig\Getopt.pm
cp lib/AppConfig/State.pm blib\lib\AppConfig\State.pm
cp lib/AppConfig/Sys.pm blib\lib\AppConfig\Sys.pm
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'bl
ib\lib', 'blib\arch')" t\appconfig.t t\args.t t\block.t t\cgi.t t\compact.t t\co
nst.t t\default.t t\file.t t\flag.t t\getopt.t t\multi.t t\novars.t t\state.t t\
sys.t
t\appconfig....ok
t\args.........ok
t\block........ok
t\cgi..........ok
t\compact......ok
t\const........ok
t\default......ok
t\file.........ok 1/43Usage: POSIX::getpwuid(uid) at lib/AppConfig/File.pm line
410
# Looks like you planned 43 tests but only ran 3.
# Looks like your test died just after 3.
t\file.........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 4-43
Failed 40/43 tests, 6.98% okay
t\flag.........ok
t\getopt.......ok
t\multi........ok
t\novars.......ok
t\state........ok
t\sys..........ok
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t\file.t 255 65280 43 80 186.05% 4-43
Failed 1/14 test scripts, 92.86% okay. 40/253 subtests failed, 84.19% okay.
NMAKE : fatal error U1077: 'C:\Perl\bin\perl.exe' : return code '0xff'
Stop.
Running just t/file.t gives:
1..43
ok 1
ok 2 - state defined
ok 3 - cfgfile defined
Usage: POSIX::getpwuid(uid) at ../lib/AppConfig/File.pm line 410
# Looks like you planned 43 tests but only ran 3.
# Looks like your test died just after 3.
POSIX::getpwuid() is not implemented on Windows 2000.
If I define a HOME environment variable, myself, all the tests pass.
C:\SET HOME=.
1..43
ok 1
ok 2 - state defined
ok 3 - cfgfile defined
ok 4 - parsed
ok 5
ok 6
ok 7
ok 8 - one is two
ok 9 - same split
ok 10 - verbose
ok 11 - not debuggin
ok 12 - not crufty
ok 13 - nocruft
ok 14 - there is a chance
ok 15 - there is not no chance
ok 16 - there is hope
ok 17 - there is not no hope
ok 18 - user is abw
ok 19 - home is /home/abw
ok 20 - chez is /chez/abw
ok 21 - choz is set
ok 22 - chuz is set
ok 23 - five keys
ok 24 - varlist
ok 25 - five stripped keys
ok 26 - stripped varlist
ok 27 - coffee
ok 28 - beer
ok 29 - water
ok 30
ok 31
ok 32
ok 33
ok 34
ok 35
ok 36 - chaz defined
ok 37 - choz defined
ok 38 - chuz defined
ok 39 - empty here-doc
ok 40 - line breaks
ok 41 - heredoc in quotes
ok 42 - heredoc with EOF
ok 43 - hash with here-doc values
and the prove output:
C:\.cpan\build\AppConfig-1.56\t>prove
.\appconfig....ok
.\args.........ok
.\block........ok
.\cgi..........ok
.\compact......ok
.\const........ok
.\default......ok
.\file.........ok
.\flag.........ok
.\getopt.......ok
.\multi........ok
.\novars.......ok
.\state........ok
.\sys..........ok
All tests successful.
Files=14, Tests=253, 1 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
I suggest avoiding the POSIX calls, or at least warning the users of this issue.