class TestCase::Sys::Poll::PollfdArray {
use Sys::Poll::PollfdArray;
# Fields
static method fields : int () {
# length
{
my $pollfds = Sys::Poll::PollfdArray->new(2, 3);
unless ($pollfds->length == 2) {
return 0;
}
}
# capacity
{
my $pollfds = Sys::Poll::PollfdArray->new(2, 3);
unless ($pollfds->capacity == 3) {
return 0;
}
}
return 1;
}
# Class Methods
static method new : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new;
unless ($pollfds is_type Sys::Poll::PollfdArray) {
return 0;
}
unless ($pollfds->length == 0) {
return 0;
}
unless ($pollfds->capacity == 1) {
return 0;
}
}
{
my $pollfds = Sys::Poll::PollfdArray->new(0, -1);
unless ($pollfds is_type Sys::Poll::PollfdArray) {
return 0;
}
unless ($pollfds->length == 0) {
return 0;
}
unless ($pollfds->capacity == 1) {
return 0;
}
}
{
my $pollfds = Sys::Poll::PollfdArray->new(1, -1);
unless ($pollfds is_type Sys::Poll::PollfdArray) {
return 0;
}
unless ($pollfds->length == 1) {
return 0;
}
unless ($pollfds->capacity == 1) {
return 0;
}
}
{
my $pollfds = Sys::Poll::PollfdArray->new(2, -1);
unless ($pollfds is_type Sys::Poll::PollfdArray) {
return 0;
}
unless ($pollfds->length == 2) {
return 0;
}
unless ($pollfds->capacity == 2) {
return 0;
}
}
{
my $pollfds = Sys::Poll::PollfdArray->new(2, 3);
unless ($pollfds is_type Sys::Poll::PollfdArray) {
return 0;
}
unless ($pollfds->length == 2) {
return 0;
}
unless ($pollfds->capacity == 3) {
return 0;
}
}
return 1;
}
# Instance Methods
static method fd : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new(2);
{
my $index = 0;
$pollfds->set_fd($index, 10);
}
{
my $index = 1;
$pollfds->set_fd($index, 20);
}
unless ($pollfds->fd(0) == 10) {
return 0;
}
unless ($pollfds->fd(1) == 20) {
return 0;
}
}
return 1;
}
static method set_fd : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new(2);
{
my $index = 0;
$pollfds->set_fd($index, 10);
}
{
my $index = 1;
$pollfds->set_fd($index, 20);
}
unless ($pollfds->fd(0) == 10) {
return 0;
}
unless ($pollfds->fd(1) == 20) {
return 0;
}
}
return 1;
}
static method events : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new(2);
{
my $index = 0;
$pollfds->set_events($index, 10);
}
{
my $index = 1;
$pollfds->set_events($index, 20);
}
unless ($pollfds->events(0) == 10) {
return 0;
}
unless ($pollfds->events(1) == 20) {
return 0;
}
}
return 1;
}
static method set_events : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new(2);
{
my $index = 0;
$pollfds->set_events($index, 10);
}
{
my $index = 1;
$pollfds->set_events($index, 20);
}
unless ($pollfds->events(0) == 10) {
return 0;
}
unless ($pollfds->events(1) == 20) {
return 0;
}
}
return 1;
}
static method revents : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new(2);
{
my $index = 0;
$pollfds->set_revents($index, 10);
}
{
my $index = 1;
$pollfds->set_revents($index, 20);
}
unless ($pollfds->revents(0) == 10) {
return 0;
}
unless ($pollfds->revents(1) == 20) {
return 0;
}
}
return 1;
}
static method set_revents : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new(2);
{
my $index = 0;
$pollfds->set_revents($index, 10);
}
{
my $index = 1;
$pollfds->set_revents($index, 20);
}
unless ($pollfds->revents(0) == 10) {
return 0;
}
unless ($pollfds->revents(1) == 20) {
return 0;
}
}
return 1;
}
static method push : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new;
my $fd = 10;
$pollfds->push($fd);
unless ($pollfds->length == 1) {
return 0;
}
unless ($pollfds->capacity == 1) {
return 0;
}
unless ($pollfds->fd(0) == 10) {
return 0;
}
unless ($pollfds->events(0) == 0) {
return 0;
}
unless ($pollfds->revents(0) == 0) {
return 0;
}
}
{
my $pollfds = Sys::Poll::PollfdArray->new;
my $fd0 = 10;
my $fd1 = 20;
$pollfds->push($fd0);
$pollfds->push($fd1);
unless ($pollfds->length == 2) {
return 0;
}
unless ($pollfds->capacity >= 2) {
return 0;
}
}
return 1;
}
static method remove : int () {
{
my $pollfds = Sys::Poll::PollfdArray->new;
my $fd0 = 10;
my $fd1 = 20;
my $fd2 = 30;
$pollfds->push($fd0);
$pollfds->push($fd1);
$pollfds->push($fd2);
unless ($pollfds->length == 3) {
return 0;
}
my $index = 1;
$pollfds->remove($index);
unless ($pollfds->length == 2) {
return 0;
}
unless ($pollfds->fd(0) == 10) {
return 0;
}
unless ($pollfds->fd(1) == 30) {
return 0;
}
}
{
my $pollfds = Sys::Poll::PollfdArray->new;
for (my $fd = 0; $fd < 100; $fd++) {
$pollfds->push($fd);
}
unless ($pollfds->length == 100) {
return 0;
}
for (my $fd = 0; $fd < 100; $fd++) {
$pollfds->remove(0);
}
for (my $fd = 0; $fd < 50; $fd++) {
$pollfds->push($fd);
}
unless ($pollfds->length == 50) {
return 0;
}
}
return 1;
}
}