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

Reply via email to