In article <20100911171359.gb2...@timac.local>,
 tim.bu...@pobox.com (Tim Bunce) wrote:

> On Thu, Sep 09, 2010 at 06:05:09PM -0500, Craig A. Berry wrote:
> > In article <4c88ecbf.8040...@easysoft.com>,
> >  martin.ev...@easysoft.com ("Martin J. Evans") wrote:
> > 
> > > I ran DBI trunk on VMS (perl, v5.8.1 built for VMS_AXP) just to check it 
> > > out. 
> > > There were a lot of failures. 

> > I'm pretty sure DBI passed all tests on VMS sometime in the last year or 
> > two, so hopefully there's nothing too fundamental wrong.  I see what I 
> > can find.
> 
> Wonderful. Many thanks Craig!

I've attached a patch that gets VMS into about the same shape as other 
platforms, which is to say about 4-5 test failures mostly related to 
the z*51_dbmfile.t tests as of tr...@14425.  (The count is approximate 
since things are a bit of a moving target right now -- every time I've 
updated in the past week or so I've gotten new test failures and/or 
merge conflicts with what I've been trying to fix.)

Here's what's in the patch:

1.) On VMS, assignments to %ENV normally persist after Perl exits, so 
when setting something up for a test, they need to be torn down in an 
END block to prevent subsequent tests from getting unintended 
environment settings.

2.)  A couple of the fake modules used for testing depend on readdir() 
returning at least one directory when passed an empty directory (it 
doesn't seem to matter *what* directory as long as there is something). 
 While unixy platforms typically get away with this assumption by 
getting the dot and dot-dot directories, the standard explicitly says 
the presence of these must not be depended on (and they don't exist on 
VMS).  The path of least resistances was to make test_dir() in t/lib.pl 
create its own placeholder directory inside the temp directory it 
creates.

3.)  On VMS, the .dir extension is reserved for directories, so 
SDBM_File creates its dir files with the .sdbm_dir extension.  A 
VMS-specific adjustment to 51dbm_file.t was needed for this.

4.) On VMS, there is no such thing as a file with no extension.  A file 
with zero-length extension is, by default returned from readdir() with 
a trailing dot.  A couple of tweaks were needed in DBD::File to get rid 
of that dot.


The things that still fail look like:

t/zvxgp_50dbm_simple.t ..... ok
Can't store item CODE(0x14284e0) at ../../lib/storable.pm (autosplit 
into [--.lib.auto.Storable]_freeze.al) line 339.
DBD::Gofer::db selectall_arrayref failed: Cannot open 
disk$i64sys:[craig.dbi.test_output_60891]krueger.lck: no such file or 
director
y (2) at /D0/CRAIG/DBI/blib/lib/DBD/File.pm line 690 at 
/D0/CRAIG/DBI/blib/lib/DBI/DBD/SqlEngine.pm line 793; DBD::DBM::st 
execute f
ailed [for Statement "select * from Krueger"] at DBI::PurePerl 
DBI::st::execute line 118. at ./t/51dbm_file.t line 82
Can't use an undefined value as an ARRAY reference at ./t/51dbm_file.t 
line 83.
Compilation failed in require at t/zvxgp_51dbm_file.t line 6.
# Tests were run but no plan was declared and done_testing() was not 
seen.


whereas on Mac OS X they look like:


t/zvxnp_51dbm_file.t ....... 1/? DBD::DBM::db selectall_arrayref failed: 
Cannot open /Users/craig/dbi/test_output_31349/freddy.lck:No such file 
or directory (2) at /Users/craig/dbi/blib/lib/DBD/File.pm line 690 at 
/Users/craig/dbi/blib/lib/DBI/DBD/SqlEngine.pm line 793
 [for Statement "select * from Krueger"] at ./t/51dbm_file.t line 74
Can't use an undefined value as an ARRAY reference at ./t/51dbm_file.t 
line 75.
Compilation failed in require at t/zvxnp_51dbm_file.t line 6.
# Tests were run but no plan was declared and done_testing() was not 
seen.
t/zvxnp_51dbm_file.t ....... Dubious, test returned 2 (wstat 512, 0x200)
All 5 subtests passed


so there is a slightly different subset of the z*51dbm_file.t tests 
that don't pass but for similar-sounding reasons.  On VMS, it seems to 
be all the ones that set DBI_AUTOPROXY in the environment.  I have not 
had any success at peeling back the layers upon layers of indirection 
that Gofer and friends perform to do whatever it is they do, so I'm 
punting on this.

begin 644 dbi_vms_20100918.patch
m26y...@z(&QI8B]$0D0O1FEL92YP;0H]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M"BTM+2!L:6(O1$)$+T9I;&4N<&T)*')E=FES:6]N(#$T-#(U*0HK*RL@;&EB
M+T1"1"]&:6QE+G!M"2AW;W)K:6YG(&-O<'DI"D!`("TQ-#$L,3...@*s$t,2PV
M($!`"B`@("`@)&1R:79E<B`]("1D<f...@m/GM);7!L96UE;G1O<D-L87-S?2`]
M?B!M+UYD8F1<.EPZ*%M>7#I=*RE<.EPZ+VD@/R`D,2`Z(")&:6QE(CL*(`H@
M("`@('=H:6QE("AD969I;F5D("@D9FEL92`](')E861D:7(@*"1D:7)H*2DI
M('L*+0EI9B`H)%Y/(&5Q(")635,B*2!["BT)("`@(",@:68@;v...@5du3('1H
m...@879o:6...@=v%r;FEN9W,@9G)O;2!C871D:7(@:68@>6]U('5S92!A(&9I
M;&4*+0D@("`@(R`H;F]T(&$...@9&ER*2!A<R!T:&4...@9fel92!b96qo=phm"2`@
M("`D9FEL92`A?B!M+UPN9&ER)"]O:2!A;F0@;F5X=#L*+0D@("`...@?0h@"6UY
M("1D(#...@1fel93hz4w!e8rt^8v%t9&ER("@D9&ER+"`D9FEL92D["B`)(R!A
M;&QO=R!C=7)R96YT(&1I<B`N+BX@:7...@8v%n(&)E(&$...@9&%T85]S;W5R8V4@
M=&]O"B`))&9I;&4@;f...@1fel93hz4w!e8rt^=7!d:7(@*"D@)b...@+60@)&0@
M86YD"D!`("TW-S8L-B`K-S<Q+#<@0$`*(`EI9B`H)')E<W!E8W1?8V%S92D@
M>PH@"2`@("`D8VUP<W5B(#T@<W5B('L*(`D);7...@*"1F;b...@=6yd968l("1S
m...@i(#...@1fel93hz0f%s96ya;64Z.F9I;&5P87)S92`H)%\L("1F;E]A;GE?
M97AT7W)E9V5X*3L**PD))'-F>"`]("<G(&EF("1>3R!E<2`G5DU3)R!A;F0@
M)'-F>"!E<2`G+B<[("`C(&YO(&5X=&5N<VEO;B!T=7)N<R!U<"!A<R!A(&1O
M=`H@"0dd...@97$@)&)A<V5N86UE(&%N9`H@"0D@("`@<F5T=7)N("AL8R`D
M<V9X(&5Q(&QC("1E>'0@;W(@(21R97$@)B8@(21...@i.ph@"0ER971U<FX@
M,#l*...@+3<X-"PV("LW.#`L-R!`0`H@"65L<V4@>PH@"2`@("`D8VUP<W5B
M(#T@<W5B('L*(`D);7...@*"1F;b...@=6yd968l("1...@i(#...@1fel93hz0f%s
M96YA;64Z.F9I;&5P87)S92`H)%\L("1F;E]A;GE?97AT7W)E9V5X*3L**PD)
M)'-F>"`]("<G(&EF("1>3R!E<2`G5DU3)R!A;F0@)'-F>"!E<2`G+B<[("`C
M(&YO(&5X=&5N<VEO;B!T=7)N<R!U<"!A<R!A(&1O=`H@"0el8r`d...@97$@
M;&,@)&)A<V5N86UE(&%N9`H@"0D@("`@<F5T=7)N("AL8R`D<V9X(&5Q(&QC
M("1E>'0@;W(@(21R97$@)B8@(21...@i.ph@"0ER971U<FX@,#l*26y...@z
M(&QI8B]$0DDO1$)$+G!M"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*+2TM(&QI
M8B]$0DDO1$)$+G!M"2AR979I<VEO;B`Q-#0R-2D**RLK(&QI8B]$0DDO1$)$
M+G!M"2AW;W)K:6YG(&-O<'DI"D!`("TS,S(T+#$U("LS,S(T+#$X($!`"B`@
M("`@;7D@)71E<W1?=F%R:6%N=',@/2`H"B`)<"`]/B!["6YA;64@/3X@(D1"
M23HZ4'5R95!E<FPB+`H@"0EM871C:"`]/B!Q<B]>7&0O+`HM"0EA9&0@/3X@
M6R`G)$5.5GM$0DE?4%5215!%4DQ](#T@,B<@72P**PD)861D(#T^(%L@)R1%
M3E9[1$))7U!54D5015),?2`](#(G+`HK"0D)("=%3D0@>R!D96QE=&4@)$5.
M5GM$0DE?4%5215!%4DQ].R!])R!=+`H@"7TL"B`)9R`]/B!["6YA;64@/3X@
M(D1"1#HZ1V]F97(B+`H@"0EM871C:"`]/B!Q<B]>7&0O+`HM"0EA9&0@/3X@
M6R!Q>R1%3E9[1$))7T%55$]04D]867T@/2`G9&)I.D=O9F5R.G1R86YS<&]R
M=#UN=6QL.W!O;&EC>3UP961A;G1I8R=](%TL"BL)"6%D9"`]/B!;('%[)$5.
M5GM$0DE?05543U!23UA9?2`]("=D8FDZ1V]F97(Z=')A;G-P;W)T/6YU;&P[
M<&]L:6-Y/7!E9&%N=&EC)WTL"BL)"0D@<7Q%3D0@>R!D96QE=&4@)$5.5GM$
m0de?05543u!23ua9...@?7p@72P*(`E]+`H@"6X@/3X@>PEN86UE(#T^(")$
M0DDZ.E-13#HZ3F%N;R(L"B`)"6UA=&-H(#T^('%R+UXH/SHT.61B9%]F:6QE
M?#5<9&1B;5]<=RM\.#5G;V9E<BE<+G0D+RP*+0D)861D(#T^(%L@<7LD14Y6
M>T1"25]344Q?3D%.3WT@/2`Q?2!=+`HK"0EA9&0@/3...@6r!q>R1%3E9[1$))
M7U-13%].04Y/?2`](#%]+`HK"0D)('%\14Y$('l...@9&5L971E("1%3E9[1$))
M7U-13%].04Y/?...@?7p@72P*(`E]+`H@("`@(",@("!M>"`]/B!["6YA;64@
M/3X@(D1"1#HZ375L=&EP;&5X(BP*("`@("`C("`@("`@("`@("!A9&0@/3X@
M6R!Q>VQO8V%L("1%3E9[1$))7T%55$]04D]867T@/2`G9&)I.DUU;'1I<&QE
M>#hg...@72p*26yd97@Z('0O;&EB+G!L"CT]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T*+2TM('0O;&EB+G!L"2AR979I<VEO;B`Q-#0R-2D**RLK('0O;&EB+G!L
M"2AW;W)K:6YG(&-O<'DI"D!`("TR,BPV("LR,BPY($!`"B`))'1E<W1?9&ER
M(#...@5du3.ci&:6QE<W!E8SHZ=6YI>&EF>2...@d=&5S=%]D:7(I(&EF("1>3R!E
M<2`G5DU3)SL*(`ER;71R964@)'1E<W1?9&ER.PH@"6UK<&%T:"`D=&5S=%]D
M:7(["BL)(R!4:&5R92!M=7-T(&)E(&%T(&QE87-T(&]N92!D:7)E8W1O<GD@
M:6...@=&AE('1E<w...@9&ER96-T;W)Y+`HK"2,@86YD(&YO=&AI;F<@9W5A<F%N
M=&5E<R!T:&%T(&1O="!O<B!D;W0M9&]T(&1I<F5C=&]R:65S('=I;&p...@97ai
M<W0N"BL);6MP871H("@@1FEL93HZ4W!E8RT^8V%T9&ER*"`D=&5S=%]D:7(L
M("<P,#!?:G5S=%]T97-T:6YG)R`I("D["B`@("`...@?0h@"B`@("`@<F5T=7)N
M("1T97-T7V1I<cl*26y...@z('0O-#ED8F1?9FEL92YT"CT]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T*+2TM('0O-#ED8F1?9FEL92YT"2AR979I<VEO;B`Q-#0R
M-2D**RLK('0O-#ED8F1?9FEL92YT"2AW;W)K:6YG(&-O<'DI"D!`("TY.2PW
M("LY.2PW($!`"B!M>2!`=&9H;#L*(`H@(R!.;W<@=&5S="!S;VUE(&)A<VEC
M(%-13"!S=&%T96UE;G1S"BUM>2`D=&)L7V9I;&4@/2!&:6QE.CI3<&5C+3YC
M871F:6QE("@D9&ER+"`B)'1B;"YT>'0B*3L**VUY("1T8FQ?9FEL92`]($9I
M;&4Z.E-P96,M/F-A=&9I;&4...@*$-w9#hz86)S7W!A=&@H("1D:7(@*2P@(B1T
M8FPN='AT(BD["B!O:R`H)&1B:"T^9&\...@*")C<F5A=&4...@=&%B;&4@)'1B;"`H
M='AT('9A<F-H87(@*#(P*2DB*2P@(D-R96%T92!T86)L92`D=&)L(BD@;W(@
M9&EA9R`D9&)H+3YE<G)S='(["B!O:R`H+68@)'1B;%]F:6QE+"`B5&5S="!T
M86)L92!E>&ES=',B*3L*(`I);F1E>#...@="\U,61B;5]F:6QE+G0*/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/0hm...@="\U,61B;5]F:6QE+G0)*')E=FES:6]N
M(#$T-#(u*0hk...@="\U,61B;5]F:6QE+G0)*'=O<FMI;F<@8V]P>2D*0$`@
M+3(U+#@@*S(U+#$P($!`"B`*(&]K*"`D9&)H+3YD;RAQ+V1R;w...@=&%B;&4@
M:6...@97ai<W1S($92140O*2P@)V1R;w...@=&%B;&4G("D["B`**VUY("1D:7)F
M97AT(#T@)%Y/(&5Q("=635,G(#\@)RYS9&)M7V1I<B<@.B`G+F1I<B<["BL*
M("1...@m/F1O*'$O8W)E871E('1A8FQE(&9r...@*&$@:6YT96=E<b...@8b!i
M;G1E9V5R*2\I.PHM;VLH("UF($9I;&4Z.E-P96,M/F-A=&9I;&4H("1D:7(L
M(")&4D5$+F1I<B(@*2P@(D92140N9&ER(&5X:7-T<R(@*3L**V]K*"`M9B!&
M:6QE.CI3<&5C+3YC871F:6QE*"`D9&ER+"`B1E)%1"1D:7)F97AT(B`I+"`B
M1E)%1"1D:7)F97AT(&5X:7-T<R(@*3L*(`H@<FUT<F5E("1D:7(["B!M:W!A
M=&@@)&1I<cl*...@+30x+#<@*S4P+#<@0$`*('T*(`H@)&1B:"T^9&\H<2]C
M<F5A=&4...@=&%B;&4...@1e)%1"`H82!I;G1E9V5R+"!B(&EN=&5G97(I+RD["BUO
M:R@@+...@1fel93hz4w!e8rt^8v%t9fel92@@)&1I<BP@(F9R960N9&ER(B`I
M+"`B9G)E9"YD:7(@97AI<W1S(B`I.PHK;VLH("UF($9I;&4Z.E-P96,M/F-A
M=&9I;&4H("1D:7(L(")F<F5D)&1I<F9E>'0B("DL(")F<F5D)&1I<F9E>'0@
M97AI<W1S(B`I.PH@"B!O:R@@)&1B:"T^9&\H<2]I;G-E<G0@:6YT;R!F4D5$
M("AA+&(I('9A;'5E<r...@q+#(I+RDL("=I;G-E<G0@:6YT;R!M:7AE9"!C87-E
-('1A8FQE)R`I.PH@"@==
`
end

Reply via email to