diff --git a/test/sslextensiontest.pl b/test/recipes/70-test_sslextension.t similarity index 85% rename from test/sslextensiontest.pl rename to test/recipes/70-test_sslextension.t index 802bac19a4820d658ee29e4073ed3a840c736343..4aa3f61f7d2b0863fb84bd9591545b428882d388 100755 --- a/test/sslextensiontest.pl +++ b/test/recipes/70-test_sslextension.t @@ -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 { diff --git a/test/sslskewith0ptest.pl b/test/recipes/70-test_sslskewith0p.t similarity index 85% rename from test/sslskewith0ptest.pl rename to test/recipes/70-test_sslskewith0p.t index 63f83980a869b9e5358839015a2e788a09e5f073..d8d74b33e3f2fbaabf8074e06e8e76de8745a56a 100755 --- a/test/sslskewith0ptest.pl +++ b/test/recipes/70-test_sslskewith0p.t @@ -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 { diff --git a/test/sslvertoltest.pl b/test/recipes/70-test_sslvertol.t similarity index 84% rename from test/sslvertoltest.pl rename to test/recipes/70-test_sslvertol.t index 1828a7d1bb42242421a3345dafd9776bd54d29da..9717f80bdb8d8143cdbf9f5916134ca592ecb906 100755 --- a/test/sslvertoltest.pl +++ b/test/recipes/70-test_sslvertol.t @@ -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 { diff --git a/test/run_tests.pl b/test/run_tests.pl index 746b0d192de9eecd4acbac673de156a0d3f3d23f..7e61282f16cad6e69353b4f497ed8729d5faad38 100644 --- a/test/run_tests.pl +++ b/test/run_tests.pl @@ -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) {