提交 25be5f44 编写于 作者: R Richard Levitte

Adapt the libssl test harness testing scripts to new testing framework

This involves adding $TOP/util as perl library in test/run_tests.pl.
Reviewed-by: NRich Salz <rsalz@openssl.org>
上级 53520ebe
......@@ -53,18 +53,30 @@
# Hudson (tjh@cryptsoft.com).
use strict;
use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/;
use TLSProxy::Proxy;
my $test_name = "test_sslextension";
setup($test_name);
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ }
grep { /^SHARED_LIBS=/ }
do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
$ENV{OPENSSL_ENGINES} = top_dir("engines");
$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
my $proxy = TLSProxy::Proxy->new(
\&extension_filter,
@ARGV
cmdstr(app(["openssl"])),
top_file("apps", "server.pem")
);
plan tests => 1;
#Test 1: Sending a zero length extension block should pass
$proxy->start();
TLSProxy::Message->success or die "FAILED: Zero extension length test\n";
print "SUCCESS: Extension test\n";
ok(TLSProxy::Message->success, "Zero extension length test");
sub extension_filter
{
......
......@@ -53,21 +53,33 @@
# Hudson (tjh@cryptsoft.com).
use strict;
use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/;
use TLSProxy::Proxy;
my $test_name = "test_sslskewith0p";
setup($test_name);
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ }
grep { /^SHARED_LIBS=/ }
do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
$ENV{OPENSSL_ENGINES} = top_dir("engines");
$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
my $proxy = TLSProxy::Proxy->new(
\&ske_0_p_filter,
@ARGV
cmdstr(app(["openssl"])),
top_file("apps", "server.pem")
);
plan tests => 1;
#We must use an anon DHE cipher for this test
$proxy->cipherc('ADH-AES128-SHA:@SECLEVEL=0');
$proxy->ciphers('ADH-AES128-SHA:@SECLEVEL=0');
$proxy->start();
TLSProxy::Message->fail or die "FAILED: ServerKeyExchange with 0 p\n";
print "SUCCESS: ServerKeyExchange with 0 p\n";
ok(TLSProxy::Message->fail, "ServerKeyExchange with 0 p");
sub ske_0_p_filter
{
......
......@@ -53,24 +53,36 @@
# Hudson (tjh@cryptsoft.com).
use strict;
use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/;
use TLSProxy::Proxy;
my $test_name = "test_sslextension";
setup($test_name);
plan skip_all => "$test_name can only be performed with OpenSSL configured shared"
unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ }
grep { /^SHARED_LIBS=/ }
do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne "";
$ENV{OPENSSL_ENGINES} = top_dir("engines");
$ENV{OPENSSL_ia32cap} = '~0x200000200000000';
my $proxy = TLSProxy::Proxy->new(
\&vers_tolerance_filter,
@ARGV
cmdstr(app(["openssl"])),
top_file("apps", "server.pem")
);
plan tests => 2;
#Test 1: Asking for TLS1.3 should pass
my $client_version = TLSProxy::Record::VERS_TLS_1_3;
$proxy->start();
TLSProxy::Message->success or die "FAILED: Version tolerance test\n";
ok(TLSProxy::Message->success(), "Version tolerance test, TLS 1.3");
#Test 2: Testing something below SSLv3 should fail
$client_version = TLSProxy::Record::VERS_SSL_3_0 - 1;
$proxy->restart();
TLSProxy::Message->success and die "FAILED: Version tolerance test\n";
print "SUCCESS: Version tolerance test\n";
ok(TLSProxy::Message->fail(), "Version tolerance test, SSL < 3.0");
sub vers_tolerance_filter
{
......
......@@ -10,15 +10,17 @@ use Test::Harness qw/runtests $switches/;
my $top = $ENV{TOP};
my $recipesdir = catdir($top, "test", "recipes");
my $testlib = catdir($top, "test", "testlib");
my $utillib = catdir($top, "util");
# It seems that $switches is getting interpretted with 'eval' or something
# like that, and that we need to take care of backslashes or they will
# disappear along the way.
$testlib =~ s|\\|\\\\|g if $^O eq "MSWin32";
$utillib =~ s|\\|\\\\|g if $^O eq "MSWin32";
# Test::Harness provides the variable $switches to give it
# switches to be used when it calls our recipes.
$switches = "-w \"-I$testlib\"";
$switches = "-w \"-I$testlib\" \"-I$utillib\"";
my @tests = ( "alltests" );
if (@ARGV) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册