#!perl
use strict;
use warnings;
use Linux::Sysfs;
BEGIN {
require 't/common.pl';
}
plan tests => 36;
# close
{
my $module = Linux::Sysfs::Module->open_path($val_mod_path);
isa_ok( $module, 'Linux::Sysfs::Module' );
lives_ok(sub {
$module->close;
}, 'close');
}
{
my $module = bless \(my $s), 'Linux::Sysfs::Module';
lives_ok(sub {
$module->close;
}, 'close on invalid module');
}
# open_path
{
my $module = Linux::Sysfs::Module->open_path($val_mod_path);
isa_ok( $module, 'Linux::Sysfs::Module' );
show_module($module);
$module->close;
}
{
my $module = Linux::Sysfs::Module->open_path($inval_path);
ok( !defined $module, 'open_path with invalid path' );
}
{
no warnings 'uninitialized';
my $module = Linux::Sysfs::Module->open_path(undef);
ok( !defined $module, 'open_path with undefined path' );
}
# open
{
my $module = Linux::Sysfs::Module->open($val_mod_name);
isa_ok( $module, 'Linux::Sysfs::Module' );
show_module($module);
$module->close;
}
{
my $module = Linux::Sysfs::Module->open($inval_name);
ok( !defined $module, 'open with invalid name' );
}
TODO: {
local $TODO = 'will fail in future';
no warnings 'uninitialized';
my $module = Linux::Sysfs::Module->open(undef);
ok( !defined $module, 'open with undefined name' );
}
# get_attr
{
my $module = Linux::Sysfs::Module->open_path($val_mod_path);
isa_ok( $module, 'Linux::Sysfs::Module' );
my $attr = $module->get_attr($val_mod_attr_name);
isa_ok( $attr, 'Linux::Sysfs::Attribute' ); #TODO: errno
show_attribute($attr);
$attr = $module->get_attr($inval_name);
ok( !defined $attr, 'get_attr with invalid name' );
{
no warnings 'uninitialized';
$attr = $module->get_attr(undef);
ok( !defined $attr, 'get_attr with undefined name' );
}
$module->close;
}
# get_attributes
{
my $module = Linux::Sysfs::Module->open_path($val_mod_path);
isa_ok( $module, 'Linux::Sysfs::Module' );
my @attrs = $module->get_attributes;
ok( scalar @attrs > 0, 'get_attributes' );
show_attribute_list(\@attrs);
$module->close;
}
{
my $module = bless \(my $s), 'Linux::Sysfs::Module';
my @attrs = $module->get_attributes;
ok( scalar @attrs == 0, 'get_attributes on invalid module' );
}
# get_parms
{
my $module = Linux::Sysfs::Module->open_path($val_mod_path);
isa_ok( $module, 'Linux::Sysfs::Module' );
my @parms = $module->get_parms;
ok( scalar @parms > 0, 'get_parms' );
show_parm_list(\@parms);
$module->close;
}
{
my $module = bless \(my $s), 'Linux::Sysfs::Module';
my @parms = $module->get_parms;
ok( scalar @parms == 0, 'get_parms on invalid module' );
}
# get_sections
{
my $module = Linux::Sysfs::Module->open_path($val_mod_path);
isa_ok( $module, 'Linux::Sysfs::Module' );
my @sects = $module->get_sections;
ok( scalar @sects > 0, 'get_sections' );
show_section_list(\@sects);
$module->close;
}
{
my $module = bless \(my $s), 'Linux::Sysfs::Module';
my @sects = $module->get_sections;
ok( scalar @sects == 0, 'get_sections on invalid module' );
}
# get_parm
{
my $module = Linux::Sysfs::Module->open_path($val_mod_path);
isa_ok( $module, 'Linux::Sysfs::Module' );
my $parm = $module->get_parm($val_mod_parm);
isa_ok( $parm, 'Linux::Sysfs::Attribute' ); #TODO: errno
show_attribute($parm);
$parm = $module->get_parm($inval_name);
ok( !defined $parm, 'get_parm with invalid name' );
{
no warnings 'uninitialized';
$parm = $module->get_parm(undef);
ok( !defined $parm, 'get_parm with undefined name' );
}
$module->close;
}
{
my $module = bless \(my $s), 'Linux::Sysfs::Module';
my $parm = $module->get_parm($val_mod_parm);
ok( !defined $parm, 'get_parm on invalid module' );
$parm = $module->get_parm($inval_name);
ok( !defined $parm, 'get_parm on invalid module with invalid name' );
{
no warnings 'uninitialized';
$parm = $module->get_parm(undef);
ok( !defined $parm, 'get_parm on invalid module with undefined name' );
}
}
# get_section
{
my $module = Linux::Sysfs::Module->open_path($val_mod_path);
isa_ok( $module, 'Linux::Sysfs::Module' );
my $sect = $module->get_section($val_mod_section);
isa_ok( $sect, 'Linux::Sysfs::Attribute' ); #TODO: errno
show_attribute($sect);
$sect = $module->get_section($inval_name);
ok( !defined $sect, 'get_section with invalid name' );
{
no warnings 'uninitialized';
$sect = $module->get_section(undef);
ok( !defined $sect, 'get_section with undefined name' );
}
$module->close;
}
{
my $module = bless \(my $s), 'Linux::Sysfs::Module';
my $sect = $module->get_section($val_mod_section);
ok( !defined $sect, 'get_section on invalid module' );
$sect = $module->get_section($inval_name);
ok( !defined $sect, 'get_section on invalid module with invalid name' );
{
no warnings 'uninitialized';
$sect = $module->get_section(undef);
ok( !defined $sect, 'get_section on invalid module with undefined name' );
}
}