File: compatibility.t

package info (click to toggle)
libio-socket-ssl-perl 1.33-1%2Bsqueeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 364 kB
  • ctags: 100
  • sloc: perl: 2,998; makefile: 2
file content (83 lines) | stat: -rw-r--r-- 2,070 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!perl -w
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl t/compatibility.t'

use IO::Socket::SSL;
use Socket;
eval {require "t/ssl_settings.req";} ||
eval {require "ssl_settings.req";};

$|=1;

foreach ($^O) {
    if (/MacOS/ or /VOS/ or /vmesa/ or /riscos/ or /amigaos/) {
	print "1..0 # Skipped: fork not implemented on this platform\n";
	exit;
    }
}

$SIG{'CHLD'} = "IGNORE";

print "1..9\n";
IO::Socket::SSL::context_init(SSL_verify_mode => 0x01, SSL_version => 'TLSv1' );


my $server = IO::Socket::INET->new(
    LocalAddr => $SSL_SERVER_ADDR,
    Listen => 1,
    Proto => 'tcp', ReuseAddr => 1, Timeout => 15
);

if (!$server) {
    print "Bail out! ";
    print("Setup of test IO::Socket::INET client and server failed.  All the rest of ",
	  "the tests in this suite will fail also unless you change the values in ",
	  "ssl_settings.req in the t/ directory.");
    exit;
}

my ($SSL_SERVER_PORT) = unpack_sockaddr_in( $server->sockname );

print "ok\n";

unless (fork) {
    close $server;
    $MyClass::client = new IO::Socket::INET("$SSL_SERVER_ADDR:$SSL_SERVER_PORT");
    package MyClass;
    use IO::Socket::SSL;
    @ISA = "IO::Socket::SSL";
    MyClass->start_SSL($client) || print "not ";
    print "ok\n";
    (ref($client) eq "MyClass") || print "not ";
    print "ok\n";
    $client->issuer_name || print "not ";
    print "ok\n";
    $client->subject_name || print "not ";
    print "ok\n";
    $client->opened || print "not ";
    print "ok\n";
    print $client "Ok to close\n";
    close $client;
    exit(0);
}

my $contact = $server->accept;

IO::Socket::SSL::socketToSSL($contact,
			     {SSL_server => 1,
			      SSL_verify_mode => 0}) || print "not ";
print "ok\n";
<$contact>;
close $contact;
close $server;

bless $contact, "MyClass";
print "not " if IO::Socket::SSL::socket_to_SSL($contact, SSL_server => 1);
print "ok\n";

print "not " unless (ref($contact) eq "MyClass");
print "ok\n";

sub bail {
	print "Bail Out! $IO::Socket::SSL::ERROR";
}