|
Packit |
6427f8 |
#!/usr/bin/perl -w
|
|
Packit |
6427f8 |
use strict;
|
|
Packit |
6427f8 |
use warnings;
|
|
Packit |
6427f8 |
use Test::More tests => 10;
|
|
Packit |
6427f8 |
use constant NO_SUCH_FILE => 'THIS_FILE_HAD_BETTER_NOT_EXIST';
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval {
|
|
Packit |
6427f8 |
use autodie qw(:1.994);
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
open(my $fh, '<', 'this_file_had_better_not_exist.txt');
|
|
Packit |
6427f8 |
};
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
isa_ok($@, 'autodie::exception', "Basic version tags work");
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
# Expanding :1.00 should fail, there was no autodie :1.00
|
|
Packit |
6427f8 |
eval { my $foo = autodie->_expand_tag(":1.00"); };
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
isnt($@,"","Expanding :1.00 should fail");
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
my $version = $autodie::VERSION;
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
SKIP: {
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
if (not defined($version) or $version =~ /_/) {
|
|
Packit |
6427f8 |
skip "Tag test skipped on dev release", 1;
|
|
Packit |
6427f8 |
}
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
# Expanding our current version should work!
|
|
Packit |
6427f8 |
eval { my $foo = autodie->_expand_tag(":$version"); };
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
is($@,"","Expanding :$version should succeed");
|
|
Packit |
6427f8 |
}
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval {
|
|
Packit |
6427f8 |
use autodie qw(:2.07);
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
# 2.07 didn't support chmod. This shouldn't throw an
|
|
Packit |
6427f8 |
# exception.
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
chmod(0644,NO_SUCH_FILE);
|
|
Packit |
6427f8 |
};
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
is($@,"","chmod wasn't supported in 2.07");
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval {
|
|
Packit |
6427f8 |
use autodie;
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
chmod(0644,NO_SUCH_FILE);
|
|
Packit |
6427f8 |
};
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
isa_ok($@, 'autodie::exception', 'Our current version supports chmod');
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval {
|
|
Packit |
6427f8 |
use autodie qw(:2.13);
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
# 2.13 didn't support chown. This shouldn't throw an
|
|
Packit |
6427f8 |
# exception.
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
chown(12345, 12345, NO_SUCH_FILE);
|
|
Packit |
6427f8 |
};
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
is($@,"","chown wasn't supported in 2.13");
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
SKIP: {
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
if ($^O eq "MSWin32") { skip("chown() on Windows always succeeds.", 1) }
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval {
|
|
Packit |
6427f8 |
use autodie;
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
chown(12345, 12345, NO_SUCH_FILE);
|
|
Packit |
6427f8 |
};
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
isa_ok($@, 'autodie::exception', 'Our current version supports chown');
|
|
Packit |
6427f8 |
}
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
# The patch in RT 46984 would have utime being set even if an
|
|
Packit |
6427f8 |
# older version of autodie semantics was requested. Let's see if
|
|
Packit |
6427f8 |
# it's coming from outside the eval context below.
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval { utime undef, undef, NO_SUCH_FILE; };
|
|
Packit |
6427f8 |
is($@,"","utime is not autodying outside of any autodie context.");
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
# Now do our regular versioning checks for utime.
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval {
|
|
Packit |
6427f8 |
use autodie qw(:2.13);
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
utime undef, undef, NO_SUCH_FILE;
|
|
Packit |
6427f8 |
};
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
is($@,"","utime wasn't supported in 2.13");
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval {
|
|
Packit |
6427f8 |
use autodie;
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
utime undef, undef, NO_SUCH_FILE;
|
|
Packit |
6427f8 |
};
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
isa_ok($@, 'autodie::exception', 'Our current version supports utime');
|