Blame t/07io.t

Packit 153c79
#!/usr/bin/perl
Packit ef9df4
Packit ef9df4
use Convert::ASN1 qw(:io);
Packit ef9df4
use IO::Socket;
Packit 30152b
use File::Temp ();
Packit ef9df4
Packit ef9df4
print "1..11\n";
Packit ef9df4
Packit ef9df4
my  $result = pack("C*", 0x30, 0x3D, 0x04, 0x04, 0x46, 0x72, 0x65, 0x64,
Packit ef9df4
			 0x30, 0x13, 0x04, 0x11, 0x41, 0x20, 0x73, 0x74,
Packit ef9df4
			 0x72, 0x69, 0x6E, 0x67, 0x20, 0x66, 0x6F, 0x72,
Packit ef9df4
			 0x20, 0x66, 0x72, 0x65, 0x64, 0x04, 0x03, 0x4A,
Packit ef9df4
			 0x6F, 0x65, 0x30, 0x1B, 0x04, 0x03, 0x68, 0x61,
Packit ef9df4
			 0x73, 0x04, 0x01, 0x61, 0x04, 0x04, 0x6C, 0x69,
Packit ef9df4
			 0x73, 0x74, 0x04, 0x02, 0x6F, 0x66, 0x04, 0x07,
Packit ef9df4
			 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x73);
Packit ef9df4
Packit 30152b
$fd = File::Temp->new('UNLINK' => 0);
Packit 30152b
$file = $fd->filename;
Packit 30152b
asn_write($fd, $result);
Packit 30152b
asn_write($fd, $result);
Packit 30152b
$fd->close;
Packit ef9df4
Packit ef9df4
open(IN,"< $file");
Packit ef9df4
sysread(IN,$buffer,1024);
Packit ef9df4
close(IN);
Packit ef9df4
Packit ef9df4
print "not " unless $buffer eq $result x 2;
Packit ef9df4
print "ok 1\n";
Packit ef9df4
Packit ef9df4
open(IN,"< $file");
Packit ef9df4
asn_read(*IN, $input);
Packit ef9df4
close(IN);
Packit ef9df4
Packit ef9df4
print "not " unless $input eq $result;
Packit ef9df4
print "ok 2\n";
Packit ef9df4
Packit ef9df4
open(IN,"< $file");
Packit ef9df4
Packit ef9df4
undef $input;
Packit ef9df4
$input = asn_get(*IN);
Packit ef9df4
print "not " unless $input eq $result;
Packit ef9df4
print "ok 3\n";
Packit ef9df4
Packit ef9df4
print "not " unless asn_ready(*IN);
Packit ef9df4
print "ok 4\n";
Packit ef9df4
Packit ef9df4
undef $input;
Packit ef9df4
$input = asn_get(*IN);
Packit ef9df4
print "not " unless $input eq $result;
Packit ef9df4
print "ok 5\n";
Packit ef9df4
Packit ef9df4
print "not " if asn_ready(*IN);
Packit ef9df4
print "ok 6\n";
Packit ef9df4
Packit ef9df4
close(IN);
Packit ef9df4
Packit ef9df4
unlink($file);
Packit ef9df4
Packit ef9df4
my $src = IO::Socket::INET->new(Proto => 'udp');
Packit ef9df4
my $dst = IO::Socket::INET->new(Proto => 'udp');
Packit ef9df4
bind($dst, pack_sockaddr_in(0, INADDR_ANY));
Packit ef9df4
my $host = $dst->sockhost eq '0.0.0.0' ? '127.0.0.1' : $dst->sockhost;
Packit ef9df4
my $addr = pack_sockaddr_in($dst->sockport, inet_aton($host));
Packit ef9df4
Packit ef9df4
asn_send($src,$result,0,$addr) or print "not ";
Packit ef9df4
print "ok 7\n";
Packit ef9df4
Packit ef9df4
asn_recv($dst, $in2, 0) or print "not ";
Packit ef9df4
print "ok 8\n";
Packit ef9df4
Packit ef9df4
print "not " unless $in2 && $in2 eq $result;
Packit ef9df4
print "ok 9\n";
Packit ef9df4
  
Packit ef9df4
open(IN,"t/07input.dat") or die "Cannot open 07input.dat: $!\n";
Packit ef9df4
undef $input;
Packit ef9df4
my $n = asn_read(*IN,$input);
Packit ef9df4
print "not " unless $n and $n == length($input);
Packit ef9df4
print "ok 10\n";
Packit ef9df4
print "not " unless $n == 1283;
Packit ef9df4
print "ok 11\n";
Packit ef9df4