Rafael Garcia-Suarez wrote:
On 9/19/05, John E. Malmberg <[EMAIL PROTECTED]> wrote:
When I enable hard links on VMS, it exposed that the t/io/fs.t is not
testing what the comments indicate that it is testing.
The correct test would be to see if the $mode of the third link matched
the $mode for the original file.
What the test is actually doing is testing to see if the umask function
is behaving according to the UNIX definition.
With VMS, setting the umask and related behaviors into the UNIX mode is
not the default behavior.
It appears that the behavior I was seeing before was an artifact of a
pre-release version of OpenVMS that was fixed in a released version.
I am trying to reproduce the failure now, and can not.
As soon as a program calls umask() in the C library, the C library
assumes that they want to use the UNIX mode. It is only if umask() is
not called that the OpenVMS defaults are used instead of the UNIX defaults.
One option is to fix the test to actually test what it claims to be
testing. This could affect other platforms, but really should not.
I'd like to have a patch for that.
I can look into that. First, I want to submit the changes for enabling
hard links and other VMS 8.2 features.
Now should the test be testing for a UNIX compliant umask()? And since
VMS by default is not set to UNIX compliant, it would need to know when
that pass would be expected to pass, or to when to put VMS into that mode.
And, moreover, and optionnally, we could add a new test for testing
umask() (there's no such test, at a first glance.) But of course it
would make sense to skip it on non-UNIX platforms, including VMS.
If it is has hard links enabled and is passing test 5 of the io/fs.t
test then it already is passing the Posix compliance.
If nothing else, I will probably want to submit a patch so that the
comments actually document what is being tested as I was very confused
when I first saw the failure.
-John
[EMAIL PROTECTED]
Personal Opinion Only