From: Richard Levitte Date: Fri, 30 Jan 2015 11:36:13 +0000 (+0100) Subject: VMS exit codes weren't handled well enough and were unclear X-Git-Tag: OpenSSL_1_0_2a~95 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1d5668c25806d4ed631c19c81081c93fc0571d82;p=oweals%2Fopenssl.git VMS exit codes weren't handled well enough and were unclear Making a specific variable $failure_code and a bit of commenting in the VMS section should help clear things up. Reviewed-by: Andy Polyakov (cherry picked from commit e00ab250c878f7a7f0ae908a6305cebf6883a244) --- diff --git a/test/cms-test.pl b/test/cms-test.pl index f55fd69ce8..1c3f00dc5b 100644 --- a/test/cms-test.pl +++ b/test/cms-test.pl @@ -59,23 +59,31 @@ my $redir = " 2> cms.err > cms.out"; if ( $^O eq "VMS" && -f "OSSLX:openssl.exe" ) { $ossl_path = "pipe mcr OSSLX:openssl"; $null_path = "NL:"; + # On VMS, the lowest 3 bits of the exit code indicates severity + # 1 is success (perl translates it to 0 for $?), 2 is error + # (perl doesn't translate it) + $failure_code = 512; # 2 << 8 = 512 } # Make MSYS work elsif ( $^O eq "MSWin32" && -f "../apps/openssl.exe" ) { $ossl_path = "cmd /c ..\\apps\\openssl"; $null_path = "/dev/null"; + $failure_code = 256; } elsif ( -f "../apps/openssl$ENV{EXE_EXT}" ) { $ossl_path = "../util/shlib_wrap.sh ../apps/openssl"; $null_path = "/dev/null"; + $failure_code = 256; } elsif ( -f "..\\out32dll\\openssl.exe" ) { $ossl_path = "..\\out32dll\\openssl.exe"; $null_path = "/dev/null"; + $failure_code = 256; } elsif ( -f "..\\out32\\openssl.exe" ) { $ossl_path = "..\\out32\\openssl.exe"; $null_path = "/dev/null"; + $failure_code = 256; } else { die "Can't find OpenSSL executable"; @@ -97,7 +105,7 @@ if ($? == 0) { $no_ec = 1; } -elsif ($^O eq "VMS" ? $? == 512 : $? == 256) +elsif ($? == $failure_code) { $no_ec = 0; } @@ -111,7 +119,7 @@ if ($? == 0) { $no_ec2m = 1; } -elsif ($? == 256) +elsif ($? == $failure_code) { $no_ec2m = 0; } @@ -125,7 +133,7 @@ if ($? == 0) { $no_ecdh = 1; } -elsif ($? == 256) +elsif ($? == $failure_code) { $no_ecdh = 0; }