Subject: | local $ENV{'bin'} = '[.bin]'; # is a noop on VMS. |
If the logical name BIN is present, many tests including basic.t will fail.
In this case, the line:
local $ENV{'bin'} = '[.bin]' does absolutely nothing to fix the issue.
The reason is that the local $ENV{'bin'} is not seen by the file system,
but the logical name BIN that is a problem still is.
So if we are just going to follow the lead of closed bug 44933, then we
should just remove this code.
Otherwise the fix is something like:
if ($^O eq 'VMS') {
my $foo = $ENV{'BIN'};
if ((defined $foo) && ($foo !~ /\[\.bin\]/i)) {
$ENV{'BIN'} = '[.bin]';
}
}
This code checks to see if the logical name BIN exists, and if it does,
creates a new logical name BIN compatible with what basic.t or the test
usually needs.
Unfortunately it leaves that BIN logical name behind, because we have no
way of determining from inside perl what logical name table and mode the
existing logical name BIN was in, so we do not know if the replacement
logical name wiped it out, or just hid it.
So what may be the best course of action is to abort the test with an
error if $ENV{'bin'} exists on VMS with a message explaining why.
The ultimate fix is to have the tool GNV not define the BIN logical, but
that issue has some hidden dragons in it.
Subject: | extutils_t_basic_t.gdiff |
Message body not shown because it is not plain text.