At 11:26 AM 11/29/2000 -0500, Charles Lane wrote:
>Okay, here's a patch that seems to fix the t/lib/filter-util.t tests
>on VMS.
>
>And (as somewhat prematurely predicted), it's a "add quotes to the
>command line" fix.  So maybe we're getting the error messages emitted
>when we really need them, after all.

The patch looks like a good thing to me whether it solves all our problems 
or not; it certainly cleans up after itself better.  For me on VMS 7.1, the 
error messages now appear to be successfully suppressed when the test is run 
in the test suite:

$ @[.vms]test .exe "" "-v" [.lib]filter-util.t
<snip>
[.LIB]FILTER-UTIL.......1..28
ok 1
ok 2
ok 3
ok 4
<snip>
All tests successful.
u=6.28  s=0  cu=0  cs=0  scripts=1  tests=28

When the test is run on its own, nothing has changed (this is how I was 
testing before when I tried double quoting the command-line arguments):

$ perl [.lib]filter-util.t
1..28
%RMS-E-FNF, file not found
%RMS-E-FNF, file not found
ok 1
ok 2
%RMS-E-FNF, file not found
%RMS-E-FNF, file not found
ok 3
<snip>

So, the patch has somehow made the parent process obey the current SET 
MESSAGE settings, no doubt in some way related to the searching of @INC.  I 
don't understand why this would be the case, but somehow it is.  We've 
probably just slightly changed the order of where the error gets raised.

The patch has no effect on the child process's writing to the SYS$ERROR of 
the parent process even when its own SYS$ERROR has been redirected to 
SYS$OUTPUT.

The various twisty things that have come up really have nothing to do with 
the filter-util test, so perhaps we should go with Chuck's patch since we 
can now run that test successfully.  I'd still like to know why 
cando_by_name() needs to set errno, and it'd still be nice to find a way to 
get a child process to leave the parent's SYS$ERROR alone when its own has 
been redirected.


Reply via email to