Craig A. Berry wrote:
At 8:12 AM -0500 9/7/07, John E. Malmberg wrote:
When running ext/Safe/t/safe2.t, I get the following failure on
VMS, but it does not appear to be a VMS specific issue.
not ok 30 # "not a directory" is 20 (expected 2)
X/Open states that "not a directory" (errno = 20) is also a valid
error code for this test of opening a non-existent file in a
non-existent directory.
The test passes for me on OpenVMS Alpha v8.3. The test doesn't care
that errno is 20, it cares that errno is different when sending a
non-existent filename to C<open> versus sending the same filename to
C<do> inside an eval. Whether those two things are really guaranteed
to be the same is a good question; that assumes a lot about the
internals of C<do> and the order in which they happen.
I think that I only have a small difference here. I am testing a fix to
vms.c for a bug in stat() where I found one case of it incorrectly
returning "no such file or directory" when a directory actually did
exist. Depending on what is going on for C<do> or C<open>, it has a
possibility of changing the error status returned.
I will have to run that test with the VMS debugger active to see if the
bug is being tripped and worked around.
I do not remember seeing any changes recently in the Safe module, and I
was not seeing that test fail before I made the change.
I stumbled on the stat() bug while working on the CPANPLUS issues. It
turned out not to affect the problem I was trying to solve, but it
clearly was causing some code that searches for a file in a list of
directories to skip at least one of the directories. I posted a write
up of this in one of my other posts.
-John
[EMAIL PROTECTED]
Personal Opinion Only