#!perl
use strict;
use warnings;
use Linux::Sysfs;
BEGIN {
require 't/common.pl';
}
plan tests => 16;
# close
{
my $class = Linux::Sysfs::Class->open($val_class);
isa_ok( $class, 'Linux::Sysfs::Class' );
lives_ok(sub {
$class->close;
}, 'close');
}
{
my $class = bless \(my $s), 'Linux::Sysfs::Class';
lives_ok(sub {
$class->close;
}, 'close on invalid class');
}
# open
{
my $class = Linux::Sysfs::Class->open($val_class);
isa_ok( $class, 'Linux::Sysfs::Class' );
debug(sprintf 'Class %s is at %s', $class->name, $class->path);
$class->close;
}
{
my $class = Linux::Sysfs::Class->open($inval_name);
ok( !defined $class, 'open with invalid name' );
}
TODO: {
local $TODO = 'Will fail in future';
no warnings 'uninitialized';
my $class = Linux::Sysfs::Class->open(undef);
ok( !defined $class, 'open with undefined name' );
}
# get_devices
{
my $class = Linux::Sysfs::Class->open($val_class);
isa_ok( $class, 'Linux::Sysfs::Class' );
my @devices = $class->get_devices;
ok( scalar @devices > 0, 'get_devices' ); # TODO: errno
show_device_list(\@devices);
$class->close;
}
{
my $class = bless \(my $s), 'Linux::Sysfs::Class';
my @devices = $class->get_devices;
ok( scalar @devices == 0, 'get_devices on invalid class' );
}
# get_device
{
my $class = Linux::Sysfs::Class->open($val_class);
isa_ok( $class, 'Linux::Sysfs::Class' );
my $classdev = $class->get_device($val_class_dev);
isa_ok( $classdev, 'Linux::Sysfs::ClassDevice' ); # TODO: errno
show_class_device($classdev);
$classdev = $class->get_device($inval_name);
ok( !defined $classdev, 'get_device with invalid name' );
TODO: {
local $TODO = 'Will fail in future';
no warnings 'uninitialized';
$classdev = $class->get_device(undef);
ok( !defined $classdev, 'get_device with undefined name' );
}
$class->close;
}
{
my $class = bless \(my $s), 'Linux::Sysfs::Class';
my $classdev = $class->get_device($val_class_dev);
ok( !defined $classdev, 'get_device on invalid class' );
$classdev = $class->get_device($inval_name);
ok( !defined $classdev, 'get_device on invalid class with invalid name' );
{
no warnings 'uninitialized';
$classdev = $class->get_device(undef);
ok( !defined $classdev, 'get_device on invalid class with undefined name' );
}
}