Rodent of Unusual Size wrote:
Stas Bekman wrote:
Of course, I thought that's what you want, so you can do a binary and and figure out what has failed.
Okey, how do a bitwise AND in the shell in a portable way?
OK, but harness may fail for different reasons, why do you want to scratch the status code of the failure? Currently you don't care, but someone may want to know the failure status and program the launching program to act accordingly.
Fine. That's an excellent point. Now, if only I can figure out a better way to test this than
STATUS=$? if perl -e "exit (($STATUS & 0xc8) == 0xc8);" ; then harness_failed elif test "x$STATUS" != "x0" ; then test_failed fi
Sorry, I know a little csh programming, much less sh, but I do know Perl :)
#!/usr/bin/perl
use constant TEST_FAILED => 0xC8;
test(q{perl -e 'exit 0xC9'});
test(q{perl -e 'exit 0x01'});sub test {
my $command = shift;
system $command;
$status = $? >> 8;
print $status & TEST_FAILED ? "Test\n" : "Harness\n";
}I realize that you want to do this in pure sh, but then I guess you need to lookup how to perform binary logic in sh. On the other hand why not to code your the scripts in Perl in first place? So much easier...
_____________________________________________________________________ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://ticketmaster.com http://apacheweek.com http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
