On Tue, 21 Feb 2012 22:01:24 +0000, Tim Bunce <tim.bu...@pobox.com>
wrote:

> DBI 1.617_903 has a 100% pass rate on everything except MSWin32, where
> there are three reports so far and 100% failure:
> 
>     http://matrix.cpantesters.org/?dist=DBI%201.617_903;reports=1;os=mswin32
> 
>     Result      Id              OS vers archname                        Perl 
> version
>     FAIL        19976962        5.1     MSWin32-x86-multi-thread        
> 5.12.3  
>     UNKNOWN     20072290        5.2     MSWin32-x86-multi-thread        
> 5.10.1  
>     UNKNOWN     20005629        5.2     MSWin32-x86-multi-thread        
> 5.12.4  
> 
> The first report passes all except gofer tests. Those fail with:
> 
>     No such directory 
> 'C:strawberrycpanbuildDBI-1.617_903-P91t7htest_output_5384'
> 
> which seems rather long and lacking in delimeters.
> http://www.cpantesters.org/cpan/report/2fb308b8-6c8f-1014-bc6b-040f0163837e
> This problem seems to have existed in DBI 1.617, causing it to always
> fail on MSWin32 (along with an error in t/16destroy.t). DBI 1.616 was ok.
> 
> 
> The other two reports are 'UNKNOWN' due to compile-time errors:
> 
>     error C2065: 'my_cxtp' : undeclared identifier
> 
> which seems clearly related to the recent changes.
> 
> Given the minor differences in Perl versions (5.12.3 vs 5.12.4) it seems
> like the "OS vers" (5.1 vs 5.2) may be significant here.
> 
> 
> Can anyone help with either of these?
> 
> Tim.
> 
> p.s. Once these are fixed I'll probably release DBI 1.618 without the
> DBIS change as I've not had time to consider that in the detail it needs.

Analysis and possible fix at the end ...

Tested DBI_1.617_903 on Win7-Pro/64 + Strawberry 5.14.2
           (v5.14.2) built for MSWin32-x64-multi-thread

Test Summary Report
-------------------
t/85gofer.t                   (Wstat: 256 Tests: 57 Failed: 1)
  Failed test:  5
  Non-zero exit status: 1
t/zvg_85gofer.t               (Wstat: 256 Tests: 55 Failed: 1)
  Failed test:  3
  Non-zero exit status: 1
t/zvn_85gofer.t               (Wstat: 256 Tests: 57 Failed: 1)
  Failed test:  5
  Non-zero exit status: 1
t/zvxgn_85gofer.t             (Wstat: 256 Tests: 55 Failed: 1)
  Failed test:  3
  Non-zero exit status: 1
Files=182, Tests=7107, 45 wallclock secs ( 1.58 usr +  0.51 sys =  2.09 CPU)
Result: FAIL
Failed 4/182 test programs. 4/7107 subtests failed.
dmake:  Error code 255, while making 'test_dynamic'


t/85gofer.t ..................... 1/?
#   Failed test 'null: Testing null transport with pedantic policy aborted (No 
such directory 'C:strawberrycpanbuildDBI-1.617_903test_output_5472')
# '
#   at t/85gofer.t line 113.
# Looks like you failed 1 test of 57.
t/85gofer.t ..................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/57 subtests
        (less 4 skipped subtests: 52 okay)


C:\strawberry\cpan\build\DBI-1.617_903>prove -vwb t\85gofer.t
t\85gofer.t ..
# Transports: null pipeone stream stream_ssh
# Policies: pedantic classic rush
# Count: 0
# =============
# Testing null transport with pedantic policy
#  
dbi:Gofer:transport=null;policy=pedantic;dsn=DBI:DBM:f_dir=C\:\strawberry\cpan\build\DBI-1.617_903\test_output_4772;dbm_type=SDBM_File;f_lockfile=0
ok 1 - should connect to 
dbi:Gofer:transport=null;policy=pedantic;dsn=DBI:DBM:f_dir=C\:\strawberry\cpan\build\DBI-1.617_903\test_output_4772;dbm_type=SDBM_File;f_lockfile=0
ok 2
ok 3

ok 4
#   Failed test 'null: Testing null transport with pedantic policy aborted (No 
such directory 'C:strawberrycpanbuildDBI-1.617_903test_output_4772')
not ok 5 - null: Testing null transport with pedantic policy aborted (No such 
directory 'C:strawberrycpanbuildDBI-1.617_903test_output_4772')# '

#   at t\85gofer.t line 113.
#
# =============
# Testing null transport with classic policy
#  
dbi:Gofer:transport=null;policy=classic;dsn=DBI:DBM:f_dir=C\:\strawberry\cpan\build\DBI-1.617_903\test_output_4772;dbm_type=SDBM_File;f_lockfile=0
ok 6 - should connect to 
dbi:Gofer:transport=null;policy=classic;dsn=DBI:DBM:f_dir=C\:\strawberry\cpan\build\DBI-1.617_903\test_output_4772;dbm_type=SDBM_File;f_lockfile=0
ok 7
ok 8
ok 9
ok 10 - The object isa DBI::st
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17 - go_response executed flag should be true
ok 18
ok 19
ok 20
ok 21
# Testing go_request_count and caching of simple values
ok 22
ok 23
ok 24
# use_remote=0 (policy=classic, transport=null) HASH(0x31524c0)
ok 25
ok 26
ok 27
ok 28 # skip caching of metadata methods returning sth not yet implemented
ok 29 # skip caching of metadata methods returning sth not yet implemented
ok 30
ok 31
# =============
# Testing null transport with rush policy
#  
dbi:Gofer:transport=null;policy=rush;dsn=DBI:DBM:f_dir=C\:\strawberry\cpan\build\DBI-1.617_903\test_output_4772;dbm_type=SDBM_File;f_lockfile=0
ok 32 - should connect to 
dbi:Gofer:transport=null;policy=rush;dsn=DBI:DBM:f_dir=C\:\strawberry\cpan\build\DBI-1.617_903\test_output_4772;dbm_type=SDBM_File;f_lockfile=0
ok 33
ok 34
ok 35
ok 36 - The object isa DBI::st
ok 37
ok 38
ok 39
ok 40
ok 41
ok 42
ok 43 - go_response executed flag should be true
ok 44
ok 45
ok 46
ok 47
# Testing go_request_count and caching of simple values
ok 48
ok 49
ok 50
# use_remote=0 (policy=rush, transport=null) HASH(0x3166ab0)
ok 51# Looks like you failed 1 test of 57.

ok 52
ok 53
ok 54 # skip caching of metadata methods returning sth not yet implemented
ok 55 # skip caching of metadata methods returning sth not yet implemented
ok 56
ok 57
1..57
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/57 subtests
        (less 4 skipped subtests: 52 okay)

Test Summary Report
-------------------
t\85gofer.t (Wstat: 256 Tests: 57 Failed: 1)
  Failed test:  5
  Non-zero exit status: 1
Files=1, Tests=57,  0 wallclock secs ( 0.06 usr +  0.02 sys =  0.08 CPU)
Result: FAIL

C:\strawberry\cpan\build\DBI-1.617_903>



I see:

#  
dbi:Gofer:transport=null;policy=rush;dsn=DBI:DBM:f_dir=C\:\strawberry\cpan\build\DBI-1.617_903\test_output_4772;dbm_type=SDBM_File;f_lockfile=0

   f_dir => test_dir (),

test_dir () uses the correct syntax for Windows, and will return

   C:\strawberry\cpan\build\DBI-1.617_903\test_output_6836

or alike, but that should be passed to f_dir with forward slashes?

my @remote_dsns = DBI->data_sources( "dbi:DBM:", {
    dbm_type => $opt_dbm,
    f_lockfile => 0,
    f_dir => test_dir() } );

The first entry is

 
DBI:DBM:f_dir=C\:\strawberry\cpan\build\DBI-1.617_903\test_output_6016;dbm_type=SDBM_File;f_lockfile=0

Is the DSN parser seeing those \'s as escapes to be able to escape
the ':' in C: ?

If you'd move the f_dir assignment from 

my @remote_dsns = DBI->data_sources( "dbi:DBM:", {
    dbm_type => $opt_dbm,
    f_lockfile => 0,
    } );

to

    my $dbh = DBI->connect($dsn, undef, undef, { RaiseError => 1, PrintError => 
0, ShowErrorStatement => 1, f_dir => test_dir() } );
    die "$test_run_tag aborted: $DBI::errstr\n" unless $dbh; # no point 
continuing
    ok $dbh, sprintf "should connect to %s", $dsn;

all tests pass

-- 
H.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/
using perl5.00307 .. 5.14   porting perl5 on HP-UX, AIX, and openSUSE
http://mirrors.develooper.com/hpux/        http://www.test-smoke.org/
http://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/

Reply via email to