blob: d471f9c5fe15a046df029c4f909a5a0b70702ecc [file] [log] [blame]
use strict;
use warnings;
use Test::More 0.88;
use constant NON_EXISTENT_OS => 'titanix'; #the system they said could not go down...
#--------------------------------------------------------------------------#
# API tests
#--------------------------------------------------------------------------#
require_ok( 'Perl::OSType' );
can_ok( 'Perl::OSType', 'os_type' );
my @functions = qw/os_type is_os_type/ ;
for my $sub ( @functions ) {
ok( eval { Perl::OSType->import($sub); 1 }, "importing $sub()" );
can_ok( 'main', $sub );
}
my $test_pkg = "testpackage$$";
ok( eval "package $test_pkg; use Perl::OSType ':all'; 1",
"Testing 'use Perl::OSType qw/:all/'"
);
can_ok( $test_pkg, @functions );
#--------------------------------------------------------------------------#
# os_type
#--------------------------------------------------------------------------#
{
my $fcn = 'os_type()';
ok( my $current_type = os_type(), "$fcn: without arguments" );
is( $current_type, os_type( $^O ), "... matches os_type($^O)" );
is(os_type( NON_EXISTENT_OS ), '', "$fcn: unknown OS returns empty string");
is(os_type( '' ), '', "$fcn: empty string returns empty string");
local $^O = 'linux';
is(os_type( undef ), 'Unix', "$fcn: explicit undef uses $^O");
}
#--------------------------------------------------------------------------#
# is_os_type
#--------------------------------------------------------------------------#
{
my $fcn = 'is_os_type()';
is(is_os_type(NON_EXISTENT_OS), '', "$fcn: non-existent type is false");
is(is_os_type(''), undef, "$fcn: empty string type is false");
is(is_os_type('Unix', NON_EXISTENT_OS), '', "$fcn: non-existent OS is false");
local $^O = 'VOS';
ok( ! is_os_type( 'Unix' ), "$fcn: false" );
ok( is_os_type( 'VOS' ), "$fcn: true" );
ok( ! is_os_type(), "$fcn: false if no type provided" );
}
done_testing;