From e00ab250c878f7a7f0ae908a6305cebf6883a244 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Fri, 30 Jan 2015 12:36:13 +0100 Subject: [PATCH] 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 --- test/cms-test.pl | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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; } -- 2.25.1