On Wed, Jul 25, 2001 at 05:55:35PM -0500, Craig A. Berry wrote: > The following recently added tests: > > lib/Test/Simple/t/exit.t > lib/Test/Simple/t/simple.t May as well throw in t/run/exit.t, too. And lib/Test/Simple/t/simple.t isn't concerned with exit codes. It should work fine. > are currently failing on VMS. At least one of the issues is that some of > the tests expect a non-zero exit status from a child process to be preserved > whole in the parent process upon return from running Perl from a system() > call. That would be the normal order of things on VMS if it weren't for the > fact that the status value is shifted left by 8 bits. My understanding is > that there is some POSIX standard whereby the first byte has to be left free > for the system to talk to itself about what it's doing to your program, so > we emulate this behavior by doing the left shift. I'm just following the instructions in perlfunc/system. The return value is the exit status of the program as returned by the "wait" call. To get the actual exit value divide by 256. perlport doesn't say anything about this not working under VMS or anything else. If system's return value works different under VMS, it should at least be mentioned there. Looking at 'use vmsish "status"', it implies system() should work as documented without it. Sounds like a bug/oversight. -- Michael G. Schwern <schwern@pobox.com> http://www.pobox.com/~schwern/ Perl6 Quality Assurance <perl-qa@perl.org> Kwalitee Is Job One THE CORE RUBBING THE SURFACE PRODUCES TREMENDOUS HEAT AND CAUSES VOCANO RUPTURES. --Alex Chiu, Immortality GuyThread Previous | Thread Next