#!perl
use strict;
use warnings;
use Linux::Sysfs;
BEGIN {
require 't/common.pl';
}
plan tests => 25;
# close
{
my $bus = Linux::Sysfs::Bus->open($val_bus_name);
isa_ok( $bus, 'Linux::Sysfs::Bus' );
lives_ok(sub {
$bus->close;
}, 'close');
}
{
my $bus = bless \(my $s), 'Linux::Sysfs::Bus';
lives_ok(sub {
$bus->close;
}, 'close on invalid bus');
}
# open
{
my $bus = Linux::Sysfs::Bus->open($val_bus_name);
isa_ok( $bus, 'Linux::Sysfs::Bus' );
debug(sprintf 'Bus = %s, path = %s', $bus->name, $bus->path);
$bus->close;
}
{
my $bus = Linux::Sysfs::Bus->open($inval_name);
ok( !defined $bus, 'open with invalid name' );
}
# get_device
{
my $bus = Linux::Sysfs::Bus->open($val_bus_name);
isa_ok( $bus, 'Linux::Sysfs::Bus' );
my $dev = $bus->get_device($val_bus_id);
isa_ok( $dev, 'Linux::Sysfs::Device' ); #TODO: errno?
show_device($dev);
$dev = $bus->get_device($inval_name);
ok( !defined $dev, 'get_device with invalid id' );
{
no warnings 'uninitialized';
$dev = $bus->get_device(undef);
ok( !defined $dev, 'get_device with undefined id' );
}
$bus->close;
}
{
my $bus = bless \(my $s), 'Linux::Sysfs::Bus';
my $dev = $bus->get_device($val_bus_name);
ok( !defined $dev, 'get_device on invalid bus' );
$dev = $bus->get_device($inval_name);
ok( !defined $dev, 'get_device on invalid bus with invalid id' );
{
no warnings 'uninitialized';
$dev = $bus->get_device(undef);
ok( !defined $dev, 'get_device on invalid bus with undefined id' );
}
}
# get_driver
{
my $bus = Linux::Sysfs::Bus->open($val_bus_name);
isa_ok( $bus, 'Linux::Sysfs::Bus' );
my $drv = $bus->get_driver($val_drv_name);
isa_ok( $drv, 'Linux::Sysfs::Driver' ); #TODO: errno?
$drv = $bus->get_driver($inval_name);
ok( !defined $drv, 'get_driver with invalid name' );
TODO: {
local $TODO = 'will fail in future';
no warnings 'uninitialized';
$drv = $bus->get_driver(undef);
ok( !defined $drv, 'get_driver with undefined name' );
}
}
{
my $bus = bless \(my $s), 'Linux::Sysfs::Bus';
my $drv = $bus->get_driver($val_drv_name);
ok( !defined $drv, 'get_driver on invalid bus' );
$drv = $bus->get_driver($inval_name);
ok( !defined $drv, 'get_driver on invalid bus with invalid name' );
{
no warnings 'uninitialized';
$drv = $bus->get_driver(undef);
ok( !defined $drv, 'get_driver on invalid bus with undefined name' );
}
}
# get_drivers
{
my $bus = Linux::Sysfs::Bus->open($val_bus_name);
isa_ok( $bus, 'Linux::Sysfs::Bus' );
my @drivers = $bus->get_drivers;
ok( scalar @drivers > 0, 'get_drivers' ); #TODO: errno
show_driver_list(\@drivers);
$bus->close;
}
{
my $bus = bless \(my $s), 'Linux::Sysfs::Bus';
my @drivers = $bus->get_drivers;
ok( scalar @drivers == 0, 'get_drivers on invalid bus' );
}
# get_devices
{
my $bus = Linux::Sysfs::Bus->open($val_bus_name);
isa_ok( $bus, 'Linux::Sysfs::Bus' );
my @devices = $bus->get_devices;
ok( scalar @devices > 0, 'get_devices' ); #TODO: errno
show_device_list(\@devices);
$bus->close;
}
{
my $bus = bless \(my $s), 'Linux::Sysfs::Bus';
my @devices = $bus->get_devices;
ok( scalar @devices == 0, 'get_devices on invalid bus' );
}