Blame t/version_tag.t

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');