Nicholas Clark wrote on 2009-08-28: > On Fri, Aug 28, 2009 at 01:38:42PM +0100, Steve Hay wrote: >> Nicholas Clark wrote on 2009-08-28: > >>> Does anyone have convenient access to Win32 to run this and display >>> the output? >>> >>> Right now you might need to run it as (the Win32 transcription) of cd >>> ext/DynaLoader && ../../perl -I../../t -MTestInit=U2T,NC -T >>> t/DynaLoader.t >>> >>> (or cd t && ./perl harness ../ext/DynaLoader/DynaLoader.t ) >>> >> C:\gitclients\perl\t>..\perl .\harness -v >> ..\ext\DynaLoader\t\DynaLoader.t Not enough arguments for >> DynaLoader::dl_load_file at t/DynaLoader.t line 90, near "() " BEGIN >> not safe after errors--compilation aborted at t/DynaLoader.t line 94. >> ../ext/DynaLoader/t/DynaLoader.t .. No subtests run > > Thanks. Why on earth is it unhappy? On Linux I see this > > ./perl -Ilib -MDynaLoader -lwe 'eval {DynaLoader::dl_load_file()}; > print "The error was $@"' > The error was Usage: DynaLoader::dl_load_file(filename, flags=0) at -e > line 1. > > What is causing DynaLoader::dl_load_file() to have a prototype, all of a > sudden? The line "MODULE = DynaLoader PACKAGE = DynaLoader" in > win32/dl_win32.xs dates from 1997.
Not sure, but running the test directly from ext\DynaLoader, rather than using t\harness, is fine: C:\gitclients\perl\ext\DynaLoader>..\..\perl -T t\DynaLoader.t 1..40 ok 1 - use DynaLoader; ok 2 - DynaLoader->can('bootstrap') ok 3 - DynaLoader->can('dl_load_flags') ok 4 - DynaLoader->can('dl_error') ok 5 - DynaLoader->can('dl_find_symbol') ok 6 - DynaLoader->can('dl_install_xsub') ok 7 - DynaLoader->can('dl_load_file') ok 8 - DynaLoader->can('dl_undef_symbols') ok 9 - DynaLoader->can('dl_unload_file') not ok 10 - DynaLoader->can('dl_expandspec') # TODO Test::More::can_ok() seems to have trouble dealing with AutoLoaded functions # Failed (TODO) test 'DynaLoader->can('dl_expandspec')' # at t\DynaLoader.t line 66. # DynaLoader->can('dl_expandspec') failed not ok 11 - DynaLoader->can('dl_findfile') # TODO Test::More::can_ok() seems to have trouble dealing with AutoLoaded functions # Failed (TODO) test 'DynaLoader->can('dl_findfile')' # at t\DynaLoader.t line 67. # DynaLoader->can('dl_findfile') failed not ok 12 - DynaLoader->can('dl_find_symbol_anywhere') # TODO Test::More::can_ok() seems to have trouble dealing with AutoLoaded functions # Failed (TODO) test 'DynaLoader->can('dl_find_symbol_anywhere')' # at t\DynaLoader.t line 68. # DynaLoader->can('dl_find_symbol_anywhere') failed ok 13 - calling DynaLoader::bootstrap() with no argument ok 14 - calling DynaLoader::bootstrap() with a package without binary object ok 15 - calling DynaLoader::dl_load_file() with no argument ok 16 - calling DynaLoader::dl_load_file() with undefined argument ok 17 - calling DynaLoader::dl_load_file() without an existing library should fail ok 18 - dl_error() returning an error message: 'load_file:The specified module could not be found at t\DynaLoader.t line 99. # ' ok 19 - calling dl_findfile() ok 20 # skip dl_findfile test not appropriate on MSWin32 ok 21 - loading Cwd ok 22 - loading File::Glob ok 23 # skip List::Util not available ok 24 # skip List::Util not available ok 25 # skip List::Util not available ok 26 - loading SDBM_File ok 27 - loading Socket ok 28 - loading Time::HiRes ok 29 - checking number of items in @dl_librefs ok 30 - checking number of items in @dl_modules ok 31 - calling dl_unload_file() for Time::HiRes ok 32 - - unload was successful ok 33 - calling dl_unload_file() for Socket ok 34 - - unload was successful ok 35 - calling dl_unload_file() for SDBM_File ok 36 - - unload was successful ok 37 - calling dl_unload_file() for File::Glob ok 38 - - unload was successful ok 39 - calling dl_unload_file() for Cwd ok 40 - - unload was successful