GlusterFS-GFAPI-FFI
view release on metacpan or search on metacpan
t/lib/TestVolume.pm view on Meta::CPAN
};
${GlusterFS::GFAPI::FFI::}{glfs_set_logging} = $mock_set_log;
throws_ok {
$v->set_logging('/dev/null', 7);
} qr/glfs_set_logging\(undef, 7\) failed/;
ok($mock_info{call_count} == 1
&& $mock_info{args}->[0][0] eq $v->fs
&& !defined($mock_info{args}->[0][1])
&& $mock_info{args}->[0][2] == 7
, "glfs_fini() called once with [${\$self->_mock_glfs_new()}]");
${GlusterFS::GFAPI::FFI::}{glfs_set_logging} = $glfs_set_log;
}
sub test_chmod_success : Test(1)
{
my $self = shift;
my $mock_chmod = sub
{
return 0;
};
my $glfs_chmod = \&GlusterFS::GFAPI::FFI::glfs_chmod;
no warnings 'redefine';
${GlusterFS::GFAPI::FFI::}{glfs_chmod} = $mock_chmod;
ok($self->{vol}->chmod(path => 'file.txt', mode => 0600) == 0
, '$vol->chmod has returned with 0');
${GlusterFS::GFAPI::FFI::}{glfs_chmod} = $glfs_chmod;
}
sub test_chmod_fail_exception : Test(1)
{
my $self = shift;
my $mock_chmod = sub
{
return -1;
};
my $glfs_chmod = \&GlusterFS::GFAPI::FFI::glfs_chmod;
no warnings 'redefine';
${GlusterFS::GFAPI::FFI::}{glfs_chmod} = $mock_chmod;
throws_ok {
$self->{vol}->chmod(path => 'file.txt', mode => 0600);
} qr/glfs_chmod\(${\$self->_mock_glfs_new()}, file.txt, 0600\) failed/;
${GlusterFS::GFAPI::FFI::}{glfs_chmod} = $glfs_chmod;
}
sub test_chown_success : Test
{
my $self = shift;
my $mock_chown = sub
{
return 0;
};
my $glfs_chown = \&GlusterFS::GFAPI::FFI::glfs_chown;
no warnings 'redefine';
${GlusterFS::GFAPI::FFI::}{glfs_chown} = $mock_chown;
ok($self->{vol}->chown(path => 'file.txt', uid => 9, gid => 11) == 0
, '$vol->chown has returned with 0');
${GlusterFS::GFAPI::FFI::}{glfs_chown} = $glfs_chown;
}
sub test_chown_fail_exception : Test
{
my $self = shift;
my $mock_chown = sub
{
return -1;
};
my $glfs_chown = \&GlusterFS::GFAPI::FFI::glfs_chown;
no warnings 'redefine';
${GlusterFS::GFAPI::FFI::}{glfs_chown} = $mock_chown;
throws_ok {
$self->{vol}->chown(path => 'file.txt', uid => 9, gid => 11);
} qr/glfs_chown\(${\$self->_mock_glfs_new()}, file\.txt, 9, 11\) failed/;
${GlusterFS::GFAPI::FFI::}{glfs_chown} = $glfs_chown;
}
sub test_creat_success : Test(2)
{
my $self = shift;
my %mock_info = (
call_count => 0,
args => [],
);
no warnings 'redefine';
my $glfs_creat = \&GlusterFS::GFAPI::FFI::glfs_creat;
try
{
my $mock_creat = sub
{
$mock_info{call_count}++;
push(@{$mock_info{args}}, [@_]);
return 2;
};
${GlusterFS::GFAPI::FFI::}{glfs_creat} = $mock_creat;
my $f = GlusterFS::GFAPI::FFI::File->new(
fd => $self->{vol}->open(
path => 'file.txt',
flags => &POSIX::O_CREAT,
mode => 0644));
isa_ok($f, 'GlusterFS::GFAPI::FFI::File'
, '$f is a instance of GlusterFS::GFAPI::FFI::File');
ok($mock_info{call_count} == 1
&& $mock_info{args}->[0][0] eq ${\$self->_mock_glfs_new()}
&& $mock_info{args}->[0][1] eq 'file.txt'
&& $mock_info{args}->[0][2] == &POSIX::O_CREAT
&& $mock_info{args}->[0][3] == 0644
, sprintf("glfs_creat() called once with [%s, %s, %s, %s]"
, $self->_mock_glfs_new()
, 'file.txt'
, 'O_CREAT'
, '0644'));
}
finally
{
${GlusterFS::GFAPI::FFI::}{glfs_creat} = $glfs_creat;
};
}
sub test_exists_true : Test
{
my $self = shift;
my $mock_stat = sub
{
return 0;
( run in 0.907 second using v1.01-cache-2.11-cpan-71847e10f99 )