#!perl use strict; use warnings; use Linux::Sysfs; BEGIN { require 't/common.pl'; } plan tests => 27; # close { my $driver = Linux::Sysfs::Driver->open_path($val_drv_path); isa_ok( $driver, 'Linux::Sysfs::Driver' ); lives_ok(sub { $driver->close; }, 'close'); } { my $driver = bless \(my $s), 'Linux::Sysfs::Driver'; lives_ok(sub { $driver->close; }, 'close'); } # open_path { my $driver = Linux::Sysfs::Driver->open_path($val_drv_path); isa_ok( $driver, 'Linux::Sysfs::Driver' ); show_driver($driver); $driver->close; } { my $driver = Linux::Sysfs::Driver->open_path($inval_path); ok( !defined $driver, 'open_path with invalid path' ); } { no warnings 'uninitialized'; my $driver = Linux::Sysfs::Driver->open_path(undef); ok( !defined $driver, 'open_path with undefined path' ); } # open { my @opts = ( [ $val_drv_bus_name, $val_drv_name, 1 ], [ $val_drv_bus_name, $inval_name, 0 ], #TODO [ $val_drv_bus_name, undef, 0 ], [ $inval_name, $val_drv_name, 0 ], [ $inval_name, $inval_name, 0 ], [ $inval_name, undef, 0 ], [ undef, $val_drv_name, 0 ], [ undef, $inval_name, 0 ], [ undef, undef, 0 ], ); for my $opt (@opts) { my ($bus_name, $drv_name, $ret) = @{$opt}; no warnings 'uninitialized'; my $driver = Linux::Sysfs::Driver->open($bus_name, $drv_name); if ($ret) { isa_ok( $driver, 'Linux::Sysfs::Driver' ); show_driver($driver); $driver->close; } else { ok( !defined $driver, 'open with invalid arguments' ); } } } # get_attr { my $driver = Linux::Sysfs::Driver->open_path($val_drv_path); isa_ok( $driver, 'Linux::Sysfs::Driver' ); my $attr = $driver->get_attr($val_drv_attr_name); isa_ok( $attr, 'Linux::Sysfs::Attribute' ); show_attribute($attr); $attr = $driver->get_attr($inval_name); ok( !defined $attr, 'get_attr with invalid name' ); { no warnings 'uninitialized'; $attr = $driver->get_attr(undef); ok( !defined $attr, 'get_attr with undefined name' ); } $driver->close; } { my $driver = bless \(my $s), 'Linux::Sysfs::Driver'; my $attr = $driver->get_attr($val_drv_attr_name); ok( !defined $attr, 'get_attr on invalid driver' ); $attr = $driver->get_attr($inval_name); ok( !defined $attr, 'get_attr on invalid driver with invalid name' ); { no warnings 'uninitialized'; $attr = $driver->get_attr(undef); ok( !defined $attr, 'get_attr on invalid driver with undefined name' ); } } # get_attributes { my $driver = Linux::Sysfs::Driver->open_path($val_drv_path); isa_ok( $driver, 'Linux::Sysfs::Driver' ); my @attrs = $driver->get_attributes; ok( scalar @attrs > 0, 'get_attributes' ); #TODO: errno show_attribute_list(\@attrs); $driver->close; } { my $driver = bless \(my $s), 'Linux::Sysfs::Driver'; my @attrs = $driver->get_attributes; ok( scalar @attrs == 0, 'get_attributes on invalid driver' ); } # get_devices { my $driver = Linux::Sysfs::Driver->open_path($val_drv_path); isa_ok( $driver, 'Linux::Sysfs::Driver' ); my @devices = $driver->get_devices; ok( scalar @devices > 0, 'get_devices' ); #TODO: errno show_device_list(\@devices); $driver->close; } { my $driver = bless \(my $s), 'Linux::Sysfs::Driver'; my @devices = $driver->get_devices; ok( scalar @devices == 0, 'get_devices on invalid driver' ); }