use strict;
$^W = 1;
use Test::More tests => 14;
BEGIN { use_ok('Devel::CheckOS'); }
use File::Spec;
use lib File::Spec->catdir(qw(t lib));
eval 'Devel::CheckOS::os_is("[broken]")';
ok($@ =~ /isn't a legal OS name/, "os_is whines about illegal names");
ok(Devel::CheckOS::os_is('AnOperatingSystem'),
"a single valid OS detected by os_is");
ok(!Devel::CheckOS::os_is('NotAnOperatingSystem'),
"a single invalid OS detected by os_is");
ok(Devel::CheckOS::os_isnt('NotAnOperatingSystem'),
"a single invalid OS detectedby os_isnt");
ok(!Devel::CheckOS::os_isnt('AnOperatingSystem'),
"a single valid OS detectedby os_isnt");
eval { Devel::CheckOS::die_if_os_isnt('AnOperatingSystem') };
ok(!$@, "a single valid OS detected using die_if_os_isnt");
eval { Devel::CheckOS::die_if_os_is('AnOperatingSystem') };
ok($@ =~ /OS unsupported/i, "a single valid OS detected using die_if_os_is");
eval { Devel::CheckOS::die_if_os_is('NotAnOperatingSystem') };
ok(!$@, "a single invalid OS detected using die_if_os_is");
eval { Devel::CheckOS::die_if_os_isnt('NotAnOperatingSystem') };
ok($@ =~ /OS unsupported/i, "a single invalid OS detected using die_if_os_isnt");
eval { Devel::CheckOS::die_unsupported() };
ok($@ =~ /OS unsupported/i, "die_unsupported works");
ok((grep { /^AnOperatingSystem$/i } Devel::CheckOS::list_platforms()) &&
(grep { /^NotAnOperatingSystem$/i } Devel::CheckOS::list_platforms()),
"list_platforms works");
eval "use lib File::Spec->catdir(qw(t otherlib))";
sleep(2);
utime time(), time(), File::Spec->catfile(qw(t otherlib Devel AssertOS AnOperatingSystem.pm));
ok(1 == (grep { /^AnOperatingSystem$/i } Devel::CheckOS::list_platforms()),
"A platform is listed only once");
ok(Devel::CheckOS::list_platforms->{AnOperatingSystem} eq
File::Spec->catfile(qw(t otherlib Devel AssertOS AnOperatingSystem.pm)),
"scalar list_platforms gives the most recent module for an OS");