File: OSType.t

package info (click to toggle)
perl 5.14.2-21%2Bdeb7u3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 89,728 kB
  • sloc: perl: 421,086; ansic: 195,186; sh: 37,852; pascal: 8,746; cpp: 3,893; makefile: 2,346; xml: 1,972; yacc: 1,602
file content (71 lines) | stat: -rw-r--r-- 1,891 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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;