The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

class TestCase::IO::Socket::INET6 {
use IO::Socket;
use IO::Socket::INET6;
use IO::Socket::UNIX;
use Go::Sync::WaitGroup;
use Go;
use Fn;
static method basic : int ($port : int) {
# Basic
{
my $host = "::1";
my $socket = IO::Socket::INET6->new({PeerAddr => $host, PeerPort => $port});
unless ($socket is_type IO::Socket::INET6) {
return 0;
}
my $send_buffer = "GET /hello HTTP/1.0\r\nHost: $host\r\n\r\n";
$socket->send($send_buffer);
my $recv_buffer = (mutable string)new_string_len 1000;
my $recv_length = $socket->recv($recv_buffer);
unless ($recv_length > 0 && $recv_length < 1000) {
warn $recv_length;
return 0;
}
Fn->shorten_null_char($recv_buffer);
my $content = $recv_buffer;
unless (Fn->contains($content, "HTTP")) {
warn dump $content;
return 0;
}
unless (Fn->contains($content, "hello")) {
warn dump $content;
return 0;
}
}
return 1;
}
}