X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=util%2Fselftest.pl;h=d1d11593fa27f0aea1cb0456df9ca6c50a561418;hp=e9d5aa8938ec3d1f2d3f9fa82d49b68ef0ff86a7;hb=453fc7a0185dcd046a8ab2b029e0807a073f93c2;hpb=69af4faec187b1e589c0328cea79054469ca06d0 diff --git a/util/selftest.pl b/util/selftest.pl index e9d5aa8938..d1d11593fa 100644 --- a/util/selftest.pl +++ b/util/selftest.pl @@ -1,7 +1,12 @@ -#!/usr/local/bin/perl -w +#! /usr/bin/env perl +# Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. # +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + # Run the test suite and generate a report -# if (! -f "Configure") { print "Please run perl util/selftest.pl in the OpenSSL directory.\n"; @@ -49,12 +54,12 @@ if (open(IN,"&1`; -$cversion=`$cc -V 2>&1` if $cversion =~ "usage"; +$cversion=`$cc -V 2>&1` if $cversion =~ "[Uu]sage"; $cversion=`$cc -V |head -1` if $cversion =~ "Error"; $cversion=`$cc --version` if $cversion eq ""; $cversion =~ s/Reading specs.*\n//; $cversion =~ s/usage.*\n//; -chomp $cversion; +$cversion =~ s|\R$||; if (open(IN,") { @@ -78,7 +83,7 @@ print OUT "\n"; print "Checking compiler...\n"; if (open(TEST,">cctest.c")) { - print TEST "#include \n#include \nmain(){printf(\"Hello world\\n\");}\n"; + print TEST "#include \n#include \n#include \nmain(){printf(\"Hello world\\n\");}\n"; close(TEST); system("$cc -o cctest cctest.c"); if (`./cctest` !~ /Hello world/) { @@ -96,7 +101,7 @@ if (open(TEST,">cctest.c")) { print OUT "Can't create cctest.c\n"; } if (open(TEST,">cctest.c")) { - print TEST "#include \nmain(){printf(OPENSSL_VERSION_TEXT);}\n"; + print TEST "#include \n#include \n#include \nmain(){printf(OPENSSL_VERSION_TEXT);}\n"; close(TEST); system("$cc -o cctest -Iinclude cctest.c"); $cctest = `./cctest`; @@ -130,15 +135,21 @@ if (system("make 2>&1 | tee make.log") > 255) { goto err; } -$_=$options; -s/no-asm//; -s/no-shared//; -s/no-krb5//; -if (/no-/) -{ - print OUT "Test skipped.\n"; - goto err; -} +# Not sure why this is here. The tests themselves can detect if their +# particular feature isn't included, and should therefore skip themselves. +# To skip *all* tests just because one algorithm isn't included is like +# shooting mosquito with an elephant gun... +# -- Richard Levitte, inspired by problem report 1089 +# +#$_=$options; +#s/no-asm//; +#s/no-shared//; +#s/no-krb5//; +#if (/no-/) +#{ +# print OUT "Test skipped.\n"; +# goto err; +#} print "Running make test...\n"; if (system("make test 2>&1 | tee maketest.log") > 255) @@ -193,3 +204,4 @@ while () { } print "\nTest report in file $report\n"; +die if $ok != 2;